querySkuDetailsAsync 在尝试测试 Android 的应用内购买时收到 -1 的 responseCode
querySkuDetailsAsync receives responseCode of -1 while trying to test in-app purchasing for Android
我正在开发一个 Android 应用程序并且想要进行应用程序内购买。为了测试这些,我发布了一个仅供我自己使用的 Alpha 版本。当我尝试查询产品详细信息时,得到的响应代码为 -1,根据文档,这意味着服务已断开连接。我的相关代码:
mBillingClient = BillingClient.newBuilder(getContext()).setListener(new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
Log.d(TAG, "Purchase Updated!");
}
}).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(int billingResponseCode) {
if (billingResponseCode == BillingClient.BillingResponse.OK) {
Log.d(TAG, "Billing setup complete!");
}
}
@Override
public void onBillingServiceDisconnected() {
Log.d(TAG, "DISCONNECTED!");
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
List skuList = new ArrayList<> ();
skuList.add("plaque001");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
mBillingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
Log.d(TAG, "details response received!");
Log.d(TAG, Integer.toString(responseCode));
}
});
每次我打开这个片段,我都会在日志中看到:
details response received!
-1
Billing setup complete!
当我使用从 Play 商店下载的 Alpha 版本时会发生这种情况,我在 Play 管理中心上有一个 ID "plaque001" 标记为有效的产品。
我究竟做错了什么?
我是否错过了设置和发布应用内购买的步骤?
我如何测试以确保产品正常工作?
startConnection
是一个异步调用,您正尝试在 BillingClient
连接之前 querySkuDetailsAsync
。
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished ( int billingResponseCode){
if (billingResponseCode == BillingClient.BillingResponse.OK) {
Log.d(TAG, "Billing setup complete!");
//TODO query here. (extract into a separate method)
}
}
});
我正在开发一个 Android 应用程序并且想要进行应用程序内购买。为了测试这些,我发布了一个仅供我自己使用的 Alpha 版本。当我尝试查询产品详细信息时,得到的响应代码为 -1,根据文档,这意味着服务已断开连接。我的相关代码:
mBillingClient = BillingClient.newBuilder(getContext()).setListener(new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
Log.d(TAG, "Purchase Updated!");
}
}).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(int billingResponseCode) {
if (billingResponseCode == BillingClient.BillingResponse.OK) {
Log.d(TAG, "Billing setup complete!");
}
}
@Override
public void onBillingServiceDisconnected() {
Log.d(TAG, "DISCONNECTED!");
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
List skuList = new ArrayList<> ();
skuList.add("plaque001");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
mBillingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
Log.d(TAG, "details response received!");
Log.d(TAG, Integer.toString(responseCode));
}
});
每次我打开这个片段,我都会在日志中看到:
details response received!
-1
Billing setup complete!
当我使用从 Play 商店下载的 Alpha 版本时会发生这种情况,我在 Play 管理中心上有一个 ID "plaque001" 标记为有效的产品。 我究竟做错了什么? 我是否错过了设置和发布应用内购买的步骤? 我如何测试以确保产品正常工作?
startConnection
是一个异步调用,您正尝试在 BillingClient
连接之前 querySkuDetailsAsync
。
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished ( int billingResponseCode){
if (billingResponseCode == BillingClient.BillingResponse.OK) {
Log.d(TAG, "Billing setup complete!");
//TODO query here. (extract into a separate method)
}
}
});