google 内购
以下是用 **Kotlin** 接入 Google Play 内购(Google Play Billing)的完整指南,基于官方 **Billing Library 7.x**(当前稳定版)。包含初始化、查询商品、发起购买、处理购买结果、消耗品确认以及服务端验证建议。
1. 添加依赖
在 `app/build.gradle.kts` 中添加:
```kotlin
dependencies {
implementation("com.android.billingclient:billing:7.1.1")
}
```
同步项目。
2. 配置权限和声明
在 `AndroidManifest.xml` 中添加(内购不需要特殊权限,但需要声明查询商品):
```xml
<uses-permission android:name="com.android.vending.BILLING" />
```
> 注意:`BILLING` 权限在 Billing Library 5.0+ 中不再强制,但保留兼容性无妨。
3. 初始化 BillingClient
```kotlin
import com.android.billingclient.api.*
class MainActivity : AppCompatActivity() {
private lateinit var billingClient: BillingClient
private val purchasesUpdatedListener = PurchasesUpdatedListener { billingResult, purchases ->
// 购买回调处理
handlePurchaseResult(billingResult, purchases)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setupBillingClient()
}
private fun setupBillingClient() {
billingClient = BillingClient.newBuilder(this)
.setListener(purchasesUpdatedListener)
.enablePendingPurchases() // 必须启用,处理延迟购买
.build()
startBillingConnection()
}
private fun startBillingConnection() {
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
// 连接成功,可以查询商品和发起购买
queryAvailableProducts()
} else {
&nb
