一、引言
- 集成 非常简单、非常简单、非常简单,重要的事情说3遍
- 最近入职一家新公司,要我对接 google 支付,我以为是从头到尾重新都要写新的代码,封装支付代码快收尾的时候,问team leader 要资料,结果他说之前的项目有现成工具类了,直接拿来用就成。我直接吐血,为了这工作不白做,决定发一篇文章,记录一下
- 集成明细请看我之前写的文章:集成谷歌支付
二、背景
国内很多公司有google play 上架需求,也需要对接google play 内购,这篇文章就是对接教程,非常适用于新手党拿来即用!,文章后面会贴代码块,直接复制到项目中就行。
三、演示
在Activity调用GooglePayManager.pay()方法
class GooglePaySimple : Activity() {
fun test() {
val googlePayManager = GooglePayManager()
googlePayManager.pay(this, "productId", object : GooglePayManager.OnPayResultListener {
override fun onPaySuccess() {//支付成功回调
}
override fun onPayFail(code: Int, message: String) {//支付失败回调
}
})
}
}
四、集成
- 依赖
api 'com.android.billingclient:billing:2.1.0'
api 'com.android.billingclient:billing-ktx:2.1.0'
- 核心代码:GooglePayManager
import android.app.Activity
import android.util.Log
import com.android.billingclient.api.*
/**
* @author: ymo
* @updateTime: 2022-10-21
* @description:谷歌支付助手
*/
class GooglePayManager : PurchasesUpdatedListener {
private var billingClient: BillingClient? = null
private var skuDetails: SkuDetails? = null
private var activity: Activity? = null
private var currentStatus = 0 //当前状态
private var resultCode = 0 //支付结果
private var message = "" //支付结果消息
private var productId: String = ""
private var purchase: Purchase? = null
private var retryCount = 0
private var payResultListener: OnPayResultListener? = nul