Zba*_*ian 4 android in-app-purchase in-app-billing
我添加了最新的 Google Play 结算库:
implementation 'com.android.billingclient:billing:2.0.1'
Run Code Online (Sandbox Code Playgroud)
如果我使用“慢速测试卡,总是在几分钟后获得批准”进行购买(这是 Google 提供的用于测试应用内购买的测试卡):
val params = BillingFlowParams
.newBuilder()
.setSkuDetails(skuId)
.build()
billingClient.launchBillingFlow(activity, params)
Run Code Online (Sandbox Code Playgroud)
一切都很顺利,直到我尝试承认或消费该产品:
val consumeParams = ConsumeParams
.newBuilder()
.setPurchaseToken(purchase.purchaseToken)
.build()
billingClient.consumeAsync(consumeParams, this)
Run Code Online (Sandbox Code Playgroud)
我在回调中收到以下错误:
/**
* 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;
Run Code Online (Sandbox Code Playgroud)
我还收到一条调试消息,指出购买处于无效状态(待处理)。也许我无法消费/确认没有“成功”状态的购买。
根据 Google 的规定,我有 3 天的时间来消费或确认购买,否则将退款。
但是,如果他们不允许我在购买后立即进行购买,我该如何消费或确认购买呢?
SUCCESS。使用测试帐户,在 5 - 6 分钟内,我将SUCCESS通过 获取新的“ ”状态onPurchasesUpdated(billingResult: BillingResult?, purchases: MutableList<Purchase>?))我正在使用MVVM架构 ( Activity - ViewModel),并在其中Activity保留计费客户端库(因为该库需要Context)和ViewModel业务逻辑。
看起来 Google 不希望我们将计费客户端库“绑定”到活动/视图模型,而是在 a 中使用它Service并在Application类中实例化它。可能与Observers或进行通信BroadcastReceivers并监听购买更新。一旦Purchase验证或拒绝,我应该更新用户的个人资料。这已经可能会导致问题,因为如果Service没有不可关闭的粘性通知,我就无法启动,因为这是前台服务,我应该通知用户该应用程序正在后台运行。这会吓坏用户。
这种新的购买流程打破了很多东西。这不应该是异步的。在现实生活中,当我购买东西时,我把钱交给收银员,然后不到 5 分钟我就收到了我的产品/服务!我该怎么处理这个问题?用户购买后,我通知用户他/她将在 Google 确认后 5 分钟内收到产品?这应该是瞬时的。
您如何处理应用内购买?
答案很简单。告诉用户购买请求已发生,但付款或请求尚未确认或处理。
这种情况应该而且必须是异步的,因为它可能发生在某些场景中,并且正是现实生活中发生的情况,例如当用户使用非即时的支付方式时。某些付款方式可能需要数天的时间才能处理 - 并非每个人都使用信用卡/借记卡或礼品卡进行在线付款,也不是每个人都可以!例如,巴西有Boleto支付系统,支付方便,但处理时间较长。人们付款后,打印收据,然后去某些地方排队付款。这样做是因为获得国际在线卡非常困难,特别是对于非常贫穷的人来说。
因此,您需要做的就是购买新产品。检查其状态。如果成功,则您的付款已完成并告诉用户。如果是 PENDING,则告诉用户付款请求已完成,正在等待 Google 的付款确认。
如果您在 PENDING 状态下进行购买,当付款清算时,您将通过应用程序流程收到新的购买请求,但这一次它会说购买成功。
如果这不适合您当前的架构,那么您必须更改您的架构。
| 归档时间: |
|
| 查看次数: |
8582 次 |
| 最近记录: |