应用内结算奇怪的响应代码

时间:2014-09-06 19:18:09

标签: android

我有这样处理的应用内结算购买:

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列出的回复代码?

1 个答案:

答案 0 :(得分:0)

问题是Google的IabHelper.java(错误与否)将响应视为已取消,无论它从服务器获取的原因是什么。在IabHelper.java我刚刚更换了:

result = new IabResult(IABHELPER_USER_CANCELLED, "User canceled.");

result = new IabResult(responseCode, "Actual reason description.");

所以现在IabHelper返回购买不成功的实际原因。