我已经在我的应用程序的购买应用程序中实现了Android。购买时有问题。一些用户无需购买即可获得奖励。因此,我如何理解用户是否成功购买。如果购买成功,他将获得奖励。
谁能检查我的工具是否正常?我还需要添加更多内容来了解用户购买是否成功。请帮我解决问题。
mBillingClient = BillingClient.newBuilder(this).setListener(this).build();
mBillingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(int responseCode) {
List skuList = new ArrayList<>();
skuList.add(ITEM_S);
skuList.add(ITEM_G);
skuList.add(ITEM_D);
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 skuDetailsList) {
// Process the result.
if (responseCode != BillingClient.BillingResponse.OK && skuDetailsList == null) {
}
});
Purchase.PurchasesResult purchasesResult = mBillingClient.queryPurchases(BillingClient.SkuType.INAPP);
for (Purchase purchase : purchasesResult.getPurchasesList()) {
consumePurchase(purchase);
}
}
@Override
public void onBillingServiceDisconnected() {
}
});
@Override
public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK
&& purchases != null) {
for (Purchase purchase : purchases) {
consumePurchase(purchase);
}
}
}
最佳答案
在消费现有购买商品时,请勿奖励您的用户。
从handlePurchase(purchase);
方法中删除consumePurchase
方法调用。
如果购买成功,则奖励您的用户。您将在onPurchasesUpdated
方法中获得与购买相关的回调。
您的实现将如下所示:
@Override
public void onPurchasesUpdated(
BillingResult billingResult,
List<Purchase> purchases) {
if (responseCode == BillingClient.BillingResponse.OK
&& purchases != null) {
for (Purchase purchase : purchases) {
handlePurchase(purchase);
consumePurchase(purchase);
}
}
}
B.N.这不是一个可靠的实现,这只是一个sudo代码。
关于java - 如何检查用户是否成功购买,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57643285/