我正在尝试在Android应用程序中的应用计费中实现。我已经阅读了文档,我已经完成了应用程序计费的实现,除了处理错误代码的部分。文档说明了以下内容
“服务器响应代码 下表列出了从Google Play发送到您的应用程序的所有服务器响应代码。 Google Play会将响应代码作为映射到响应捆绑包中的RESPONSE_CODE键的整数同步发送。您的应用程序必须处理所有这些响应代码。
表1.应用内结算API调用的响应代码摘要。“
所以我必须处理所有这些错误代码。我已经搜索了一个如何做的例子,但我还没找到。
任何人都可以提供处理所有错误代码的示例,以便我可以关注它吗?
这是接收响应错误代码的方法(可能是上表中的错误之一)
public void onError(int response, Exception e) {
// handle errors here
Log.w(LOG," in onError"+ "response is" + response);
}
因此,只要我从谷歌文档中了解到这里,我就必须处理上述所有错误代码。
所以我想看一个例子。最好的方法是什么?
答案 0 :(得分:0)
因为Google说您必须处理所有错误并不意味着您必须这样做。
它只是首选项。我创建了20多个具有完整计费功能的应用程序,并且以相同的方式处理错误。对我来说最重要的永远是BILLING_RESPONSE_RESULT_OK
。其余的我只是用else来将它们组合在一起(因为我的用户不需要特定的错误)。
这是我的工作方式:
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
//do my response is OK code here
return;
}
//do my response is an ERROR code here
}
但是,如果您要处理所有错误,则可以轻松完成此操作
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
//do my response is OK code here
return;
} else if (billingResult.getResponseCode() ==
BillingClient.BillingResponseCode.USER_CANCELED) {
//do user cancelled here
}
else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
//do user cancelled here
} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE) {
//do SERVICE_UNAVAILABLE here
} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.BILLING_UNAVAILABLE) {
//do BILLING_UNAVAILABLE here
}}
依此类推。
PS。使用切换案例,可以更快,更优化地完成上述操作。