gpt4 book ai didi

android - 如果我想消费或确认购买,Google Play 结算库开发人员错误代码 5

转载 作者:行者123 更新时间:2023-11-29 23:03:41 26 4
gpt4 key购买 nike

我添加了最新的 Google Play 结算库:

implementation 'com.android.billingclient:billing:2.0.1'

如果我使用“缓慢的测试卡,它总是在几分钟后获得批准”(这是来自 Google 的用于测试应用内购买的测试卡)进行购买:

val params = BillingFlowParams
.newBuilder()
.setSkuDetails(skuId)
.build()

billingClient.launchBillingFlow(activity, params)

一切顺利,直到我尝试确认或消费该产品:

val consumeParams = ConsumeParams
.newBuilder()
.setPurchaseToken(purchase.purchaseToken)
.build()

billingClient.consumeAsync(consumeParams, this)

我在回调中收到以下错误:

/**
* Invalid arguments provided to the API. This error can also indicate that the application was
* not correctly signed or properly set up for In-app Billing in Google Play, or does not have
* the necessary permissions in its manifest
*/
int DEVELOPER_ERROR = 5;

我还收到一条调试消息,指出购买处于无效状态 (PENDING)。可能我无法消费/确认没有“成功”状态的购买。

根据 Google 的说法,我有 3 天的时间来消费或确认购买,否则将被退款。

但是,如果他们不允许我在购买后立即购买,我该如何消费或确认购买?

  1. 我没有服务器,消费/确认应该在手机上进行
  2. 在验证购买时(获取 SUCCESS 状态),我无法让用户在应用程序中看到加载进度对话框/ View 。使用测试帐户,我会在 5 到 6 分钟内获得新的“SUCCESS ”状态通过 onPurchasesUpdated(billingResult: BillingResult?, purchases: MutableList<Purchase>?) )

我正在使用 MVVM体系结构 ( Activity - ViewModel ) 和 Activity 内我保留了 Billing Client 库(因为该库需要 Context )并在 ViewModel 中业务逻辑。

看起来 Google 不希望我们将计费客户端库“绑定(bind)”到 Activity/ View 模型,而是在 Service 中使用它并在 Application 中实例化它类(class)。可能与 Observers 通信或 BroadcastReceivers并收听购买更新。而一旦Purchase验证或拒绝我应该更新用户的个人资料。这已经会导致问题,因为我无法启动 Service没有不可关闭的粘滞通知,因为这是一个前台服务,我应该通知用户该应用程序正在后台运行。这会吓坏用户。

这个新的购买流程打破了很多东西。这不应该是异步的。在现实生活中,当我买东西时,我把钱交给收银员,然后我在 5 分钟后就收到了我的产品/服务!我该如何处理?用户购买,然后我通知用户他/她将在 Google 确认后的 5 分钟内拿到产品?这应该是即时的。

你们如何处理应用内购买?

最佳答案

答案很简单。告诉用户购买请求已发生,但付款或请求尚未确认或处理。

这种情况应该而且必须是异步的,因为它可能发生在某些场景中,并且正是现实生活中发生的情况,例如当用户使用非即时支付方式时。某些付款方式可能需要数天才能处理 - 不是每个人都使用信用卡/借记卡或礼品卡进行在线支付,也不是每个人都可以!例如,在巴西有 Boleto 支付系统,支付简单但处理时间长。人们为他们的元素付款,打印收据,然后在某些地方排队付款。这样做是因为获得国际在线卡非常困难,尤其是在非常贫穷的人群中。

因此,您需要做的是购买新商品。检查其状态。如果成功,则您的付款已完成并告诉用户。如果是 PENDING,则告诉用户付款请求已经完成,正在等待 Google 的付款确认。

如果您的购买处于 PENDING 状态,当付款结清时,您将通过您的应用程序流程收到新的购买请求,但这次它会说购买成功。

如果这不适合您当前的架构,那么您必须更改您的架构。

关于android - 如果我想消费或确认购买,Google Play 结算库开发人员错误代码 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56744971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com