继开发人员网站上的文档后,我最近在我的应用程序中实施了InAppBilling v3。我已经使用TRIVIAL DRIVE示例中提供的utils包中的类。InAppBilling v3 IabResult响应代码BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED
我现在面临的问题是,如果一个用户在应用内产品的购买已经在开展purchse另一台设备上再次流动Play商店对话框显示项目已拥有但IabResult返回的响应码不匹配到常量IabHelper.BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED。返回的响应代码实际上是IabHelper类中的错误代码之一(-1005用户取消)。
我真的很想知道如何得到实际的响应代码而不是错误代码。任何帮助,将不胜感激。
下面是回调代码
// Callback for when a purchase is finished
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener =
new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (result.isFailure()) {
if (result.getResponse() ==
IabHelper.BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED) {
//already owned
boolean isPremium = true;
SharedPrefsUtils.setPremium(BaseActivity.this, isPremium);
EventBus.getDefault().post(new InAppBillingUiUpdateEvent(isPremium));
//setWaitScreen(false);
return;
}
//handle error
complain(result.getResponse() + " " + "Error purchasing: " + result);
//setWaitScreen(false);
return;
}
if (!verifyDeveloperPayload(purchase)) {
//corrupted
complain("Error purchasing. Authenticity verification failed.");
//setWaitScreen(false);
return;
}
//successful
if (purchase.getSku().equals(NO_ADS_PRODUCT_ID)) {
// bought the premium upgrade!
alert("Thank you for upgrading to premium!");
boolean isPremium = true;
SharedPrefsUtils.setPremium(BaseActivity.this, isPremium);
EventBus.getDefault().post(new InAppBillingUiUpdateEvent(isPremium));
//setWaitScreen(false);
}
}
};