1

この質問は以前にもあったかもしれませんが、答えがどこにも見つからず、Amazon IAP SDK で可能かどうかもわかりません。購入をキャンセルすると、購入応答からFAILEDとして受信されます。もしそうなら、どうすればFAILEDを表示できますか?

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);
    }
}
4

1 に答える 1

1

キャンセルとその他のタイプの失敗を区別する方法はありません。

ただし、 Amazon IAP UX ガイドラインに従って:

アプリは、トランザクションの状態やステータスを顧客に伝えようとすべきではありません。In-App Purchasing API は、トランザクションの成功と失敗のメッセージを含む、すべての確認と顧客へのメッセージを処理します。

于 2013-08-13T05:30:20.320 に答える