之前可能已经问过这个问题,但我无法在任何地方找到答案,我不知道亚马逊IAP SDK是否可行。 当我取消购买时,我将从购买回复中收到 FAILED 。 如果是这样,我如何显示 FAILED是由取消或其他无关环境错误造成的?
This question might have been asked before, but I can't find the answer anywhere and I don't know if it is possible for the Amazon IAP SDK. When I canceled a purchase, I will be received as FAILED from purchase response. If so, how can I display the FAILED is caused by cancellation or other extraneous circumstance error?
private class PurchaseAsyncTask extends AsyncTask<PurchaseResponse, Void, Boolean> { private String [] purchaseResult = null; @Override protected Boolean doInBackground(final PurchaseResponse... params) { final PurchaseResponse purchaseResponse = params[0]; final String userId = microTrans.getCurrentUser(); switch (purchaseResponse.getPurchaseRequestStatus()) { case SUCCESSFUL: /* * You can verify the receipt and fulfill the purchase on * successful responses. */ final Receipt receipt = purchaseResponse.getReceipt(); switch (receipt.getItemType()) { case CONSUMABLE: break; case ENTITLED: break; case SUBSCRIPTION: break; } return true; case ALREADY_ENTITLED: /* * If the customer has already been entitled to the item, a * receipt is not returned. Fulfillment is done unconditionally, * we determine which item should be fulfilled by matching the * request id returned from the initial request with the request * id stored in the response. */ // TODO handle already entitled Log.v(TAG, "already entitled!"); return true; case FAILED: /* * If the purchase failed for some reason, (The customer * canceled the order, or some other extraneous circumstance * happens) the application ignores the request and logs the * failure. */ // TODO handle failed of purchase Log.v(TAG, "Failed purchase for request" + purchaseResponse.getRequestId()); return false; case INVALID_SKU: /* * If the sku that was purchased was invalid, the application * ignores the request and logs the failure. This can happen * when there is a sku mismatch between what is sent from the * application and what currently exists on the dev portal. */ // TODO handle invalid sku Log.v(TAG, "Invalid Sku for request " + purchaseResponse.getRequestId()); return false; } return false; } @Override protected void onPostExecute(final Boolean success) { super.onPostExecute(success); } }推荐答案
那里无法区分取消和其他类型的失败。
There is no way to distinguish between cancellation and other type of failures.
但是,每亚马逊IAP用户体验指南:
您的应用不应尝试向客户发送任何交易状态或状态。 In-App Purchasing API将处理所有确认和向客户发送消息,包括交易成功和失败消息。
Your app should not attempt to message any transaction state or status to the customer. In-App Purchasing API will handle all confirmations and messaging to the customer, including transaction success and failure messages.
更多推荐
如何检测用户是否在点燃火上取消了IAP?
发布评论