private void cancelIfTestPurchase(Transaction transaction) { if (isTestPurchase(transaction)) { try { int result = consumePurchaseToken(transaction.getTransactionData()); Log.d(LOG_TAG, "cancelTestPurchase " + transaction + " response code: " + result); } catch (RemoteException e) { Log.e(LOG_TAG, "Failed to cancel transaction: " + transaction, e); } } }
@Override public boolean isValid (Transaction transaction) { String receipt = transaction.getTransactionData();
private static ArrayList<String> makeStringArrayListForTransaction(Transaction transaction) { ArrayList<String> list = new ArrayList<>(); JSONObject jsonObject = new JSONObject(); try { jsonObject.put(ORDER_ID, transaction.getOrderId()); jsonObject.put(PACKAGE_NAME, PACKAGE_NAME_GOOD); jsonObject.put(ORDER_ID, transaction.getOrderId()); jsonObject.put(PRODUCT_ID, transaction.getIdentifier()); jsonObject.put(PURCHASE_TIME, System.currentTimeMillis()); jsonObject.put(PURCHASE_TOKEN, transaction.getTransactionData()); list.add(jsonObject.toString()); } catch (JSONException e) { throw new RuntimeException(e); } return list; }
@Override public void run() { try { Log.d(LOG_TAG, "Purchase consumer starting"); final int result = consumePurchaseToken(transaction.getTransactionData()); if (result == 0) { observer.handlePurchase(transaction); } else { ResponseCode responseCode = ResponseCode.findByCode(result); String productId = transaction.getIdentifier(); String error = "Consuming " + productId + " failed, " + responseCode; observer.handlePurchaseError(new ConsumeException(error, transaction)); } } catch (final RemoteException e) { applicationProxy.postRunnable(new Runnable() { @Override public void run() { String message = "Failed consuming product: " + transaction.getIdentifier(); observer.handlePurchaseError(new ConsumeException(message, transaction, e)); } }); } } }