应用内结算,不能使RESULT_DEVELOPER_ERROR走开(In-app billing,

2019-06-26 08:11发布

我试图让应用内结算在Android上工作,但保留在试图初始化交易得到以下logcat的输出:

// from logcat, BillingService:
Billing service connected
CheckBillingSupported
CheckBillingSupported response code: RESULT_OK
RestoreTransactions 
   restoreTransactions received RESULT_OK
     request id: 12345
     request id: -1
handleCommand() action: [com.android.vending.billing.RESPONSE_CODE].
RestoreTransactions: RESULT_DEVELOPER_ERROR

我的设置:

  1. 我在清单计费的许可。
  2. 计费服务和接收器在清单中定义。
  3. 我的应用程序没有发布 ,我只是有过的稿子。
  4. 我创建了一个单一的应用程序内的项目,并公布它。
  5. 我添加了一个测试帐户,但不知道它使得在这一点上的差异。
  6. 无论是在市场上的APK草稿,我的手机上的APK中使用相同的密钥释放模式签署,并具有相同的versionCode。

我已经得到了应用内购买的其他应用程序的工作,但在这种情况下,我已经有一个版本发布的应用程序。 在(如在#3提到的)这种情况下,我从来没有出版的APK一次。 我们要不要发布应用程序,一旦这个工作? 我认为不是,

谢谢

Answer 1:

你并不需要对谷歌公布的Play应用程式,就足够了草案。

你提到的6点是好的,但我想你需要检查如DOC提到的额外要求:

RESULT_DEVELOPER_ERROR:

表示一个应用程序试图让一个应用内结算请求,但申请尚未宣布在其清单的com.android.vending.BILLING许可。 还可以指示应用程序未签妥,或者您请求格式错误,如缺少捆绑键或使用一个无法识别的请求类型的请求的请求。



Answer 2:

它看起来像您已按照文档的所有要求,所以我认为解决办法是简单地等待,直到谷歌播放服务器迎头赶上。

我有同样的问题,当我试图上传APK的新版本的应用程序,以谷歌播放不久后恢复交易。 它似乎需要一些用于向谷歌服务器上完全处理的新的APK,使其正确响应所有类型的计费请求的时间(也许几个小时)。 例如,我得到响应CHECK_BILLING_SUPPORTED RESULT_OK无需等待太长时间,但有问题RESTORE_TRANSACTIONS(RESULT_DEVELOPER_ERROR作为异步响应)。 但是,当我在几个小时内再次尝试与相同版本的APK,我响应RESTORE_TRANSACTIONS也得到了RESULT_OK,而无需对代码进行任何更改。



Answer 3:

你可能会得到这个错误的另一个原因是,如果你试图在同一时间获取超过20个单品。 这种限制是在AIDL文件中。



文章来源: In-app billing, can't make RESULT_DEVELOPER_ERROR go away