与Google Play结算的首次连接始终失败

时间:2019-02-22 18:48:07

标签: android google-play in-app-billing android-billing

official guide之后,我开发了以下代码以连接到Google Play结算:

BillingManager(Context context, BillingListener listener) {
    this.listener = listener;
    billingClient = BillingClient.newBuilder(context).setListener(this).build();
    startConnection(null);
}

private void startConnection(final Runnable runnable) {
    billingClient.startConnection(new BillingClientStateListener() {
        @Override
        public void onBillingSetupFinished(int responseCode) {
            switch (responseCode) {
                case BillingClient.BillingResponse.OK:
                    connected = true;
                    executeRequest(runnable);
                    break;
                default:
                    listener.onError(STAGE.CONNECTION, responseCode);
            }
        }

        @Override
        public void onBillingServiceDisconnected() {
            connected = false;
        }
    });
}

此代码在“活动”的onCreate()方法中调用。我得到的回应总是:

BILLING_RESPONSE_RESULT_DEVELOPER_ERROR

但是,当用户提出购买请求时,将执行相同的代码。这样,响应始终为OK。我正在使用onCreate()方法启动连接,以恢复用户之前可能进行的购买。来自official guide

  

在您的代码中至少两次调用queryPurchases():

     

每次启动应用程序时,您都可以恢复自上次停止应用程序以来用户进行的所有购买。

使用onCreate()方法启动连接太早了吗?如果是这样,我什么时候应该这样做?如果没有,我的代码是否有问题?

0 个答案:

没有答案