最新google play内购(com.android.billingclient) 教程 代码 封装 使用方法

推荐一款全平台广告聚合SDK【ADEasy】:https://blog.csdn.net/u013640004/article/details/105416193

对于google play内购,网上已经有很多教程了,但大部分都是旧的V3版。

这次我用的是较新的com.android.billingclient:billing:1.2 or 2.0,其优点是不需要key了,不需要IInAppBillingService.aidl了,不需要那一大堆Utils了。

码云项目的jitpack失败率太高了,所以放到了github,如果好用的话,记得点星哈
Github GoogleBillingV1.2.1(新版封装)
Gitee GoogleBillingV1.2.1(新版封装)

Gitee GoogleBillingUtilV1.1.7(单文件旧封装)
Gitee GoogleBillingV2.0.0(2.0版踩坑封装)

资源下载:
GoogleBillingUtilV0.0.3下载(V3API,适合Eclipse,官方已经弃用 )
com.android.billingclient:1.0.aar解压包
com.android.billingclient:1.2.aar解压包

* Eclipse如果想用最新版,可以下载上方的解压包,记住!必须要添加manifests里面的Activity。

* 注意:谷歌官方已经弃用v3以及以下版本的api了,无论是eclipse还是AndroidStudio的,都必须使用我基于billing:1.0及其以上版本封装的版本,具体的使用方法请点击上方的链接进行查看。

这是我对google play内购代码的二次封装,只需要简单的一步就能初始化,里面的接口功能齐全,具备完整的成功、失败、错误回调。里面包含详细教程。

然后这里我说一下过程中容易遇到的坑。

  1. 初始化失败,错误码:3,这是支付环境问题。
    有以下可能:用的是模拟器,三件套版本太旧,应用的支付环境没配置(接入谷歌服务,支付权限),地域不支持。
    解决方法:a.先验证环境。在商店下载一个有内购的应用,看能否进行内购。b.如果别人的能进行内购之后,再次测试你的应用,看是否正常,来确认应用的支付环境是否正常。

  2. 能够查询价格,但无法购买,提示"商品无法购买"之类。
    这是基础配置问题,有以下可能:版本号与线上版本不对应,测试版本却不是测试账号(大概率),签名不对应。

  3. 能够查询价格,但无法调起支付都没有弹窗,错误码:3,报错:Error:In-app billing error: Null data in IAB activity resul。
    原因是没有给Google play商店弹窗权限,国内很多手机都有弹窗权限管理,特别是小米,如果没允许,是不会有任何提示,并且拦截了的。(这个问题在新版的gp商店已经不存在)

  4. 支付提示成功,但却走onQueryFail回调,并且返回的商品列表为null。
    这是因为你调错了方法,记得purchaseInApp是内购的,purchaseSubs是订阅的。查询的时候同理。另外查询的时候报错,很有可能是你setSKUS的时候传了一个空字符串,而不是空数组。

  5. 查询的时候返回的商品列表长度为0。
    setSkus的时候将内购sku和订阅sku的参数顺序弄错了,应该是第一个是内购的,第二个参数是订阅的。
    或者是商品还没有发布成功,需要等待一段时间(很有可能,新发布的商品是无论怎么查询还是购买,谷歌那边都是没有响应的)

  6. 我们检测到您的应用使用的是旧版 Google Play Developer API。自 2019 年 12 月 1 日起, 我们将不再支持此 API 的版本 1 和版本 2。请在该日期之前将您使用的 API 更新到版本 3。请注意,此变动与弃用 AIDL/结算库无关。
    升级到com.android.billingclient:billing库,弃用AIDL相关代码。
    后台也要弃用旧的校验接口。具体见谷歌官方文档。

  7. 错误码-1
    是用的是aar解压包,没有将manifests里面的activity配置到自己项目里。
    或者代码使用的是billing包,却还残留了aidl在项目里。

你可能感兴趣的:(GoogleBilling,android)