如何检测用户是否在点燃火上取消了IAP? [英] How to detect that user has canceled the IAP on kindle fire?

查看:142
本文介绍了如何检测用户是否在点燃火上取消了IAP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

之前可能已经问过这个问题,但我无法在任何地方找到答案,我不知道亚马逊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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆