Android计费库V3
也许我做错了什么,但如果是这样的话,我就想不出来了。我正在尝试购买一种产品,无论出于何种原因,购买过程都不正确。当我点击购买一件物品时,它会给我一个计费过程。然后在付款后,我必须再次单击它才能收到我购买的芯片。任何帮助都会很棒,谢谢!如果你不熟悉这个工具,这里有一个链接,如果你需要更多的细节,请告诉我Android计费库V3,android,google-play,in-app-billing,android-billing,Android,Google Play,In App Billing,Android Billing,也许我做错了什么,但如果是这样的话,我就想不出来了。我正在尝试购买一种产品,无论出于何种原因,购买过程都不正确。当我点击购买一件物品时,它会给我一个计费过程。然后在付款后,我必须再次单击它才能收到我购买的芯片。任何帮助都会很棒,谢谢!如果你不熟悉这个工具,这里有一个链接,如果你需要更多的细节,请告诉我 bp = new BillingProcessor(this, base64EncodedPublicKey, new BillingProcessor.IBill
bp = new BillingProcessor(this, base64EncodedPublicKey,
new BillingProcessor.IBillingHandler() {
@Override
public void onProductPurchased(String productId,
TransactionDetails details) {
Log.v("chip", productId + " purchased");
if (bp.consumePurchase(productId)){
if(productId=="itemOne" || productId=="one_chip")
ChipUpdate.updateChipCount(2500);
if(productId=="itemTwo"|| productId=="five_chip")
ChipUpdate.updateChipCount(15000);
if(productId=="itemThree"|| productId=="ten_chip")
ChipUpdate.updateChipCount(35000);
if(productId=="itemFour"|| productId=="fifty_chip")
ChipUpdate.updateChipCount(200000);
}
}
@Override
public void onBillingError(int errorCode, Throwable error) {
Log.v("chip", "Error code: " + errorCode);
Log.v("chip", "Error: " + error);
}
@Override
public void onBillingInitialized() {
Log.v("chip", "billing initialized");
readyToPurchase = true;
}
@Override
public void onPurchaseHistoryRestored() {
for (String sku : bp.listOwnedProducts())
Log.v("chip", "Owned Managed Product: " + sku);
for (String sku : bp.listOwnedSubscriptions())
Log.v("chip", "Owned Subscription: " + sku);
}
});
public void oneChip(String noVal) {
Log.v("oneChip", "Calling launch purchase flow");
bp.purchase(this, itemOne);
Log.v("oneChip", "made it through launch purchase flow");
}
public void fiveChip(String noVal) {
Log.v("fiveChip", "Calling launch purchase flow");
bp.purchase(this, itemTwo);
Log.v("fiveChip", "made it through launch purchase flow");
}
public void tenChip(String noVal) {
Log.v("tenChip", "Calling launch purchase flow");
bp.purchase(this, itemThree);
Log.v("tenChip", "made it through launch purchase flow");
}
public void fiftyChip(String noVal) {
Log.v("fiftyChip", "Calling launch purchase flow");
bp.purchase(this, itemFour);
Log.v("fiftyChip", "made it through launch purchase flow");
}
我想你不应该在
onProductPurchased
中调用consumerpurchase
。我尝试忽略它,但我遇到了一个错误,在购买物品后,你可以获得无限的筹码。我还尝试移动if语句,但仍然没有成功。您应该使用调用bp.purchase
的相同方法进行消费,而不是在我最初调用的计费回调中。我知道了为什么会这样。以下是原因的链接: