- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了最新的 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 天的时间来消费或确认购买,否则将被退款。
但是,如果他们不允许我在购买后立即购买,我该如何消费或确认购买?
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/
我有一个 MySQL 数据库,其中包含订单表和具有可用库存的零件号表。 例如 ==Orders Table== part_number order_date qty ==Stock Table== p
我正在使用 Libgdx + Android Studio 并尝试实现 Google Play Billing。我按照 here 中的说明进行操作.我修改了我的依赖项,如示例所示: dependenc
背景:我们有一个电视应用程序,它提供每月订阅作为其唯一的应用程序内项目。 我主要是在寻找我认为是真实的确认: 从 Google Play 计费库 2.0 版开始,就有一种称为待定购买的东西。主要的实际
我正在尝试集成 Google Play 结算。 这是我的 onCreate : private final static String TAG = "MainActivity" ; priva
我遵循了 Google 开发者文档中的所有最佳实践:https://developer.android.com/google/play/billing/billing_library_overview
我想知道文档是否将使用 ProGuard 的含义错误(相反)? 来源:https://developer.android.com/google/play/billing/billing_library
编辑:因为有些人仍在检查这个线程,我想提一下,这是非常过时的,因为它是关于应用程序购买中的 v2,现在已弃用。请查看latest (目前是 v3)文档,非常简单 关于这个问题有很多话题,我想我理解这个
在 2020 年 11 月之前,Google Play 上的 Android 应用必须管理“帐户保留”状态。 https://developer.android.com/distribute/play
我创建了一个带有应用内计费的测试应用。将其上传到 google play 并将其发送给 beta 测试人员。当他们尝试购买时,他们会收到 Error retrieving information fr
我是一名优秀的程序员,十分优秀!