zee*_*han 9 android subscription in-app-billing
随着时间的推移,更多的故障排除表明我有一个特定的订阅,处于卡住状态,这意味着我无法取消它,这就是以某种方式导致所有问题.无论是在浏览器上还是在手机或平板电脑上试图取消它都会出现同样的错误:
我尝试了三个帐户.没有这个旧订阅的两个新帐户对我的调试工作正常.我以前订阅此项目的主要帐户是问题发生的地方.所以如果我能以某种方式取消这个订阅,我会很好.
我总共有三个订阅项目.我可以在测试和常规帐户上轻松订阅和取消其他两个没有问题.但是,这个特别的一个,这是一年多了,我无法取消.这导致IabHelper查询中的所有错误.
我该如何取消?不幸的是,由于一些神秘的原因谷歌不允许删除订阅项目.
我的单笔购买工作正常,但没有订阅.在过去的很多天里,我遇到了这个问题,我无法获得我的应用程序的订阅信息,但它失败了:
if (result.isFailure()) {
Log.v(Constants.TAG, "Failed to query inventory: " + result);
return;
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了所有与应用程序结算相关的帖子,并尝试了在我的应用程序的多个版本上的多个设备,Alpha和生产版本上可以完成的所有内容,但无法摆脱此错误:
Failed to query inventory: IabResult: Error refreshing inventory (querying owned subscriptions). (response: -1003:Purchase signature verification failed)
Run Code Online (Sandbox Code Playgroud)
我理解空白签名的问题,但现在应用程序已在生产中发布,但在我的设备上安装时,我的日志中仍会出现相同的错误.所以我现在在Play商店中有一个生产应用程序,订阅不起作用.这是我希望获得签名价值的最后一个绝望的步骤.非常不幸的是,没有真正简单的方法来调试应用内代码.
在以下的verifyPurchases中,Security.java中的代码失败(这似乎是许多人失败的常见地方):
if (TextUtils.isEmpty(signedData) || TextUtils.isEmpty(base64PublicKey) ||
TextUtils.isEmpty(signature)) {
Log.e(TAG, "Purchase verification failed: missing data.");
return false;
}
Run Code Online (Sandbox Code Playgroud)
可悲的是,订阅的在线帮助很少甚至没有.我尝试了人们提出的其他代码,但无济于事.没有专门针对订阅的教程或示例.我能找到的所有答案都只针对单次购买.
我的base64键很好.新的IabHelper初始化没问题.但是当它进入订阅查询时,它很可能会失败.这是日志:
Querying owned items, item type: subs
10-25 13:52:16.957 7850-7915/com.lifelog24.main D/IabHelper: Package name: com.lifelog24.main
10-25 13:52:16.957 7850-7915/com.lifelog24.main D/IabHelper: Calling getPurchases with continuation token: null
10-25 13:52:16.962 7850-7915/com.lifelog24.main D/IabHelper: Owned items response: 0
10-25 13:52:16.965 7850-7915/com.lifelog24.main E/IABUtil/Security: Purchase verification failed: missing data.
10-25 13:52:16.966 7850-7915/com.lifelog24.main W/IabHelper: In-app billing warning: Purchase signature verification **FAILED**. Not adding item.
10-25 13:52:16.966 7850-7915/com.lifelog24.main D/IabHelper: Purchase data:
10-25 13:52:16.966 7850-7915/com.lifelog24.main D/IabHelper: Signature:
10-25 13:52:16.984 7850-7915/com.lifelog24.main D/IabHelper: Sku is owned: bus04
10-25 13:52:16.985 7850-7915/com.lifelog24.main D/IabHelper: Continuation token: null
10-25 13:52:16.985 7850-7915/com.lifelog24.main D/IabHelper: Ending async operation: refresh inventory
10-25 13:52:16.993 7850-7850/com.lifelog24.main D/LL24: Query inventory finished.
10-25 13:52:16.993 7850-7850/com.lifelog24.main V/LL24: Failed to query inventory: IabResult: Error refreshing inventory (querying owned subscriptions). (response: -1003:Purchase signature verification failed)
Run Code Online (Sandbox Code Playgroud)
在这个时间点,我没有选择,并将非常感谢任何可以解决这个问题的帮助.
2016年5月23日更新
我和谷歌开了一张故障单.有几周的来回电子邮件,并从一个代表跳到另一个代表,但这个问题无法解决.我的一个帐户陷入无法从订阅中删除的状态.最后一位代表承认了这一点,并且围绕着提及Google In-App计费是一个复杂的系统并且这些问题很难解决.我会在一两年后尝试联系他们,我想.我的开发受到了这个问题的严重影响,因为我没有从他们的端部返回正确的JSON消息来进行我的测试和调试.
在回答我自己的问题时,我发现我的主帐户的 Google 端出现了问题。一年多前,我作为测试人员订阅了自己的订阅,不知何故,该订阅陷入了我无法取消订阅的状态。这就是造成所有麻烦的原因。从任何其他帐户登录都可以正常工作,并且我的代码的行为完全符合我想要的行为。
在这种情况下,唯一的解决方案是卸载该应用程序,然后从其他帐户安装它。等待谷歌修复其损坏的应用内订阅功能。
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |