public Transaction convertToTransaction(Intent responseData) { String purchaseDataString = responseData.getStringExtra(GoogleBillingConstants.INAPP_PURCHASE_DATA); try { Transaction transaction = convertJSONPurchaseToTransaction(purchaseDataString); transaction.setTransactionDataSignature(responseData.getStringExtra(GoogleBillingConstants.INAPP_DATA_SIGNATURE)); String productId = transaction.getIdentifier(); setInformationFields(transaction, productId); return transaction; } catch (JSONException e) { throw new GdxPayException("JSON Exception while parsing: " + purchaseDataString, e); } }
@Override public void requestDidFinish(SKRequest r) { // Receipt refresh request finished. if (r.equals(request)) { NSURL receiptURL = NSBundle.mainBundle() .appStoreReceiptURL(); NSData receipt = NSData.dataWithContentsOfURL(receiptURL); String encodedReceipt = receipt .base64EncodedStringWithOptions(0); // FIXME: parse out actual receipt for this IAP purchase: t.setTransactionDataSignature(encodedReceipt); log(LOGTYPELOG, "Receipt was fetched!"); } else { log(LOGTYPEERROR, "Receipt fetching failed: Request " + "doesn't equal initial request!"); } log(LOGTYPELOG, "Transaction was completed: " + getOriginalTxID(transaction)); observer.handlePurchase(t); // Finish transaction. ((SKPaymentQueue) SKPaymentQueue.defaultQueue()) .finishTransaction(transaction); }
transactionDataSignature = null; transaction.setTransactionDataSignature(transactionDataSignature);
t.setTransactionDataSignature(encodedReceipt);