我有这样处理的应用内结算购买:
mHelper.launchPurchaseFlow(
activity, itemID, 12345, mPurchaseFinishedListener, "myrandomtoken"
);
// snip snip
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener =
new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
int purchaseResult = result.getResponse();
}
}
Google在此页面上列出了服务器响应代码:http://developer.android.com/google/play/billing/billing_reference.html但问题是我得到了一些奇怪的代码,例如-1005(用户取消)而不是1,并且当应用不是时,相同的响应我应该得到回复时(故意)正确签名5. Google Play会显示一个带有错误的对话框,然后当用户退出该对话框时Google Play会返回响应-1005。
所以我的问题是我如何/在哪里获得http://developer.android.com/google/play/billing/billing_reference.html列出的回复代码?
答案 0 :(得分:0)
问题是Google的IabHelper.java
(错误与否)将响应视为已取消,无论它从服务器获取的原因是什么。在IabHelper.java
我刚刚更换了:
result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled.");
带
result = new IabResult(responseCode, "Actual reason description.");
所以现在IabHelper返回购买不成功的实际原因。