更新记录
1.0.1(2026-07-13)
发版
1.0.0(2026-07-13)
- 支持 Google Play Billing Library 8.0.0。
- 支持应用内商品和订阅商品查询、支付、消耗、确认交易、订阅更新和应用内消息。
- 示例工程默认使用一次性应用内商品 ID
shanggong,用于 Google Play 内部测试流程验证。
平台兼容性
uni-app(5.21)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | √ | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(5.21)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | - | - | - | - |
ai-google-pay
ai-google-pay 是面向 uni-app x Android 端的 Google Play Billing v8 UTS 插件,封装了内购商品、订阅商品、支付、消耗、确认交易、订阅更新和应用内消息能力。
平台支持
| 平台 | 支持 |
|---|---|
| App Android | 支持 |
| App iOS | 不支持,调用会返回 ai-google-pay only supports Android. |
| H5 / 小程序 | 不支持 |
依赖和权限
- Android 依赖:
com.android.billingclient:billing:8.0.0 - Android 权限:
com.android.vending.BILLING - 需要在 Google Play Console 创建商品,并通过 Google Play 安装包进行完整支付测试。
- 含 Android 三方 SDK 的 UTS 插件真实调用需使用自定义基座或正式包,标准基座主要用于编译检查。
快速接入
import {
doInit,
doQuerySku,
doPay,
doConsume,
doAcknowledgePurchase,
doQueryPurchases,
AiCommonResult
} from '@/uni_modules/ai-google-pay'
const productId = 'shanggong'
doInit({ enableAutoServiceReconnection: true }, (result: AiCommonResult) => {
console.log('init', result)
})
doQuerySku({ inapp: [productId] }, (result: AiCommonResult) => {
console.log('products', result)
})
doPay({ productId }, (result: AiCommonResult) => {
console.log('pay', result)
})
示例测试
当前示例工程默认使用一次性应用内商品 ID:shanggong。
- 在 Google Play Console 的应用内商品中创建并启用
shanggong。 - 确认
manifest.json中的 Android 包名、签名证书和上传到 Google Play 的测试包一致。 - 把测试账号加入 Google Play Console 的许可测试或内部测试名单。
- 通过 Google Play 内部测试链接安装应用;普通本地安装通常不能完整验证真实支付链路。
- 打开示例页,依次点击
初始化、查询商品、支付。 - 支付成功后,如果是消耗品调用
消耗;如果是非消耗品或订阅调用确认交易。
API
| 方法 | 说明 |
|---|---|
doInit(options, callback) |
初始化 BillingClient,建议先调用。 |
doQuerySku(options, callback) |
查询应用内商品或订阅商品,参数为 { inapp: string[] } 或 { subs: string[] }。 |
doPay(options, callback) |
发起支付,应用内商品传 productId,订阅还需要传 offerToken。 |
doPayAll(options, callback) |
发起支付,并支持 accountId、profileId 等扩展参数。 |
doUpdateSubs(options, callback) |
更新订阅,需传新订阅 productId、offerToken 和旧订阅 oldPurchaseToken。 |
doConsume(options, callback) |
消耗一次性商品,需传 purchaseToken。 |
doAcknowledgePurchase(options, callback) |
确认非消耗品或订阅交易,需传 purchaseToken 或原始购买 JSON。 |
doQueryPurchases(options, callback) |
查询当前有效订阅和未消耗的一次性商品,参数为 { productType: 'inapp' } 或 { productType: 'subs' }。 |
doShowInAppMessages(options, callback) |
显示 Google Play 应用内消息。 |
返回格式
所有方法通过回调返回统一结构:
export type AiCommonResult = {
code: number,
message: string,
data: any | null
}
code == 200 表示当前插件调用成功。支付成功后仍建议检查购买记录中的 purchaseState == 1,再执行消耗或确认交易。
订阅说明
订阅商品支付必须传 offerToken。示例工程会从 doQuerySku 返回的 subscriptionOfferDetails[0].offerToken 中读取;正式项目中可以根据套餐、优惠标签和价格阶段选择对应的 offer。
注意事项
- 支付前必须先调用
doQuerySku,插件会缓存 Google Play 返回的ProductDetails。 - 消耗品使用
doConsume,非消耗品和订阅使用doAcknowledgePurchase。 - 客户端回调不能作为唯一发货依据,服务端应使用
purchaseToken向 Google Play Developer API 校验订单。 - Google Play Billing 对测试环境要求较严格:商品必须已启用,应用包名和签名必须匹配,测试账号必须有权限。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 8
赞赏 0
下载 12425119
赞赏 1934
赞赏
京公网安备:11010802035340号