GMG*_*GMG 6 android in-app-purchase in-app-billing google-play-developer-api play-billing-library
我认为已正确遵循文档中的所有步骤,但我无法到达 querySkuDetailsAsync 的回调,没有报告错误。该应用程序可以与 IAB 正常工作,现在我只是从旧库迁移到新的“com.android.billingclient:billing:2.0.3”,但存在很多问题。另一个问题,在新库中还需要使用 Play Console 中的许可证密钥吗?我没有找到有关在新库中使用它的文档。
我可以正确无误地到达这条线billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
Sku ID 正确
private void setupIab()
{
billingClient = BillingClient.newBuilder(getApplicationContext()).enablePendingPurchases().setListener(this).build();
billingClient.startConnection(new BillingClientStateListener()
{
@Override
public void onBillingSetupFinished(BillingResult billingResult)
{
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK)
{
List<String> skuList = new ArrayList<> ();
skuList.add("test_sku_1");
SkuDetailsParams params = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
{
// Process the result.
if (billingResult2.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null)
{
}
});
}
}
@Override
public void onBillingServiceDisconnected()
{
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
});
}
Run Code Online (Sandbox Code Playgroud)
此致
该代码对我来说似乎是正确的,并且与我使用的类似,但我不调用querySkuDetailsAsyncinside onBillingSetupFinished,我仅在用户购买东西时才调用它。
也许在onBillingSetupFinished运行时,设置还没有真正完成,你可以尝试使用它,所以稍后会调用它:
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
new Handler().post(() -> {
List<String> skuList = new ArrayList<>();
skuList.add("test_sku_1");
SkuDetailsParams params = SkuDetailsParams.newBuilder().setSkusList(skuList).setType(BillingClient.SkuType.INAPP).build();
billingClient.querySkuDetailsAsync(params, (billingResult2, skuDetailsList) ->
{
// Process the result.
if (billingResult2.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
}
});
});
}
Run Code Online (Sandbox Code Playgroud)