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);
}
}
}