Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 未显示启动计费流程_Android_Google Play_In App Billing - Fatal编程技术网

Android 未显示启动计费流程

Android 未显示启动计费流程,android,google-play,in-app-billing,Android,Google Play,In App Billing,在应用程序内计费的实现方面存在问题,特别是在测试计费流启动方面 它已成功连接到计费服务 它以前工作过,但只是第一次,然后我就有了 从订单管理中手动删除采购订单 我还注意到onPurchasesUpdated没有被调用 进行内部审查 在更新的兼容设备上进行测试 查询产品详细信息 任何提示都将不胜感激,因为我已经在这上面停留了一段时间 public void queryProducts() { List<String> skuList = new ArrayList&

在应用程序内计费的实现方面存在问题,特别是在测试计费流启动方面

  • 它已成功连接到计费服务
  • 它以前工作过,但只是第一次,然后我就有了 从订单管理中手动删除采购订单
  • 我还注意到onPurchasesUpdated没有被调用
  • 进行内部审查 在更新的兼容设备上进行测试
查询产品详细信息 任何提示都将不胜感激,因为我已经在这上面停留了一段时间

public void queryProducts() {
        List<String> skuList = new ArrayList<>();
        skuList.add(COINS_5);
        skuList.add(COINS_15);
        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
        params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);

        billingClient.querySkuDetailsAsync(params.build(),
                new SkuDetailsResponseListener() {
                    @Override
                    public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {
                        if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && skuDetailsList != null) {
                            for (SkuDetails skuDetails : skuDetailsList) {
                                String sku = skuDetails.getSku();
                                String price = skuDetails.getPrice();

                                flowParams = BillingFlowParams.newBuilder().setSkuDetails(skuDetails).build();

                                if ("coins_5".equals(sku)) {
                                    coins5Price = price;
                                } else if ("coins_15".equals(sku)) {
                                    coins15Price = price;
                                }
                            }
                        }
                    }
                });
}
@Override
public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) {
        if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK && purchases != null) {
            for (Purchase purchase : purchases) {
                handlePurchase(purchase);
            }
        } 
        else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
        }

        else {
        }

    }

public void handlePurchase(Purchase purchase) {
        Toast.makeText(CoinsActivity.this, "Handle purchase" , Toast.LENGTH_LONG).show();
        if (purchase.getPurchaseState() == Purchase.PurchaseState.PURCHASED) {
            // Grant entitlement to the user.

            // Acknowledge the purchase if it hasn't already been acknowledged.
            if (!purchase.isAcknowledged()) {
                AcknowledgePurchaseParams acknowledgePurchaseParams =
                        AcknowledgePurchaseParams.newBuilder()
                                .setPurchaseToken(purchase.getPurchaseToken())
                                .build();
                client.acknowledgePurchase(acknowledgePurchaseParams, acknowledgePurchaseResponseListener);

            }
        }
    }