google应用内支付接入说明

本文介绍了如何接入Google应用内支付,包括订阅和一次性购买的流程,试用期和取消政策,购买确认以及代码接入步骤。同时,文章提及了测试过程中可能遇到的问题,如购买窗口无法弹出、订单查询问题等,并提供了相应的解决方案。
摘要由CSDN通过智能技术生成

介绍

google应用内支付主要用于海外应用的内购。主要分为一次性产品、订阅和奖励产品,本文主要介绍订阅和一次性产品,其他内容可以参考google开发文档。

订阅

类比国内各种产品的会员,每隔一定周期向用户收费。我负责开发的应用也主要采用这种收费模式,分为按月和按年两种付费模式。

一次性购买

类比游戏买皮肤这种一次性买断商品。最开始我们也使用了这种方式,后来被舍弃了,改为了按年订阅。

试用期

这两种收费方式都存在着试用期一说,试用期内用户使用产品不会进行扣费,试用期结束之后如果用户没有取消才会进行扣款。

取消

如果用户订阅后再取消订阅,在试用期内用户可以选择取消购买,订阅状态会自动保持到此次订阅周期结束之后。
用户A订阅B产品(试用期假设是3天),在前三天不管哪天取消,都是白嫖不会扣款,并且订阅会一直持续到试用期结束(能够查询到用户的订阅),之后A再购买同一个产品就会立即扣费,不再有试用期了。
产品的实际计算周期也是从试用期结束之后计算的,所以第一次用户的订阅周期=试用期天数+产品天数

购买确认

确认购买交易
用户再进行付款后,客户端在收到用户的订阅结果后需要向google发送购买结果确认(防止用户付费了但是客户端没收到结果,导致用户白白扣钱),否则一段时间后订单会自动取消。

接入代码

将 Google Play 结算服务添加到应用的步骤

引入
implementation 'com.android.billingclient:billing:2.0.3'

最新版本号

初始化连接google play

首先通过BillingClient.startConnection连接google play

    private lateinit var billingClient: BillingClient

    fun initServiceConnect(context:Context,purchasesUpdated:(Int)->Unit={
   },connected:(Boolean)->Unit){
   
        //这里监听购买结果
        billingClient = BillingClient.newBuilder(context).enablePendingPurchases().setListener (object :PurchasesUpdatedListener{
   
            override fun onPurchasesUpdated(billingResult: BillingResult, purchases: MutableList<Purchase>?) {
   
                purchasesUpdated(billingResult.responseCode)
                if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
   
                    Log.i("PayHelpe onPurchases",billingResult.responseCode.toString())
					//这里进行支付确认
                    for (purchaseItem in purchases) {
   
                        handlePurchase(purchaseItem)
                    }
                } else if (billingResult.responseCode == BillingClient.BillingResponseCode.USER_CANCELED) {
   
                    Log.i("PayHelpe onPurchases","${
     billingResult.responseCode} ${
     billingResult.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值