5

我正在使用版本 3 计费 API 实现订阅计费。付款对话框关闭后(付款成功),控制权返回给我的活动

调用方法

        String payload = UUID.randomUUID().toString();
        bundle = mService.getBuyIntent(3, getPackageName(), mProduct, "subs", payload);

        int responseCode = bundle.getInt("RESPONSE_CODE");
        if (responseCode == 0) {
             PendingIntent pendingIntent = bundle.getParcelable("BUY_INTENT");
             startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0));
        } else if (responseCode == 1) {
                mErrorMessage.setText(getResources().getString(R.string.purchase_cancelled));
                mErrorMessage.setVisibility(View.VISIBLE);
        } else if (responseCode == 7) {
                mErrorMessage.setText(getResources().getString(R.string.payment_twice));
                mErrorMessage.setVisibility(View.VISIBLE);
        } else {
                mErrorMessage.setText(getResources().getString(R.string.payment_general_error));
                mErrorMessage.setVisibility(View.VISIBLE);
        }

我的活动

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            // Null
            String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"
        }
    }

问题是 purchaseData 字符串为空。这可能是因为我已经购买了这个订阅(测试时一百万次) - 我应该先检查 getPurchases()。

如果用户在 1) 当前订阅者或 2) 在取消后但服务到期之前的时期内尝试付款,是否知道购买“通过 - 显然是成功的”?

4

1 回答 1

7

我有同样的问题,我发现我正在使用ITEM_TYPE_SUBS = "subs"而不是 ITEM_TYPE_INAPP = "inapp".

当我输入正确的参数时,它按预期工作。

于 2014-02-26T08:44:33.800 回答