2024年Android Google Pay 集成(1),作为一名程序员我不忘初心

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

5. 获取商品信息


商品信息需要将带有内购权限的apk上传到GooglePlayConsole后,添加内购商品,设置商品ID,待商品生效后,移动端通过商品ID来查询商品的详细信息。

val params = SkuDetailsParams.newBuilder().apply {

setSkusList(ArrayList().apply {

add(“要查询的商品ID”) // 可以单个查询也可以多个查询

}).setType(BillingClient.SkuType.INAPP)

}

billingClient.querySkuDetailsAsync(params.build()) { responseCode, skuDetailsList ->

Logger.d(“responseCode = $responseCode skuDetailsList = ${skuDetailsList?.size}”)

// responseCode 为响应码

// skuDetailsList 为查询的商品信息列表

}

6. 支付商品


skuDetails为查询到的商品信息

// 唤起GooglePay支付

val flowParams = BillingFlowParams.newBuilder()

.setSkuDetails(skuDetails)

.build()

billingClient.launchBillingFlow(activity, flowParams)

支付成功后,会在初始化的监听接口回调支付结果,包含必要的支付结果信息。

7. 消费商品(非必须)


Google的商品默认是单次消费的,即只能购买一次,如果需求是可以多次购买的,比如充值等需求,那么就需要在支付成功后将购买的商品消费掉。

billingClient.consumeAsync(purchaseToken){ responseCode: Int, purchaseToken: String ->

}

  • purchaseToken : 支付成功后返回的支付令牌

如果支付成功后没有立即消费,需要后续手动消费掉,则先要查询未消费的商品,有同步方法和异步方法:

// 查询历史购买 同步

val purchasesResult: Purchase.PurchasesResult = billingClient.queryPurchases(BillingClient.SkuType.INAPP)

if (purchasesResult.responseCode == BillingClient.BillingResponse.OK) {

purchasesResult.purchasesList?.forEach { purchase ->

purchase.purchaseToken?.apply {

// TODO 消费掉商品

}

}

}

// 查询历史购买 异步

billingClient.queryPurchaseHistoryAsync(BillingClient.SkuType.INAPP) { responseCode, purchasesList ->

if (responseCode == BillingClient.BillingResponse.OK) {

purchasesList?.forEach { purchase ->

purchase.purchaseToken?.apply {

// TODO 消费掉商品

}

}

}

}

8. 校验支付


校验支付可以移动端校验也可以后台校验,如果我们的商品有后台管理,那么无疑当然选择通过后台来校验支付了,毕竟移动端比较容易被破解。

后台校验支付也有两种方式,一种是通过配置GooglePlayAPI,通过OAuth去获取订单信息进行验证,相对比较麻烦。

还有一种简单的做法就是通过许可密钥进行验证,相对简单一点,各有利弊,据说大部分都使用这种方式,我们图省事,也是通过这种方式校验。

许可密钥可以在 GooglePlayConsole->选择应用->开发工具->服务和API中找到。

创建商品


GooglePlayConsole->选择应用->商店发布->应用内商品

商品在上传apk后可以添加创建,一般情况下,App上显示的商品列表是由后台维护的,列表包含配置好的商品ID,移动端的商品ID从后开接口获取,这样添加或移除商品后,只需要和后台同步即可。

添加测试人员


GooglePlayConsole->设置->管理测试人员 管理测试人员。添加测试人员后,需要将邀请链接分别发送给测试人员,点击接受邀请后才可以生效。

Google Play 不区分正式环境还是沙盒环境,一切以账号为准,如果登录的是测试人员的账号,支付时会提示测试订单,不会扣款。

混淆


-keep class com.android.vending.billing.**


此版本的应用未配置为通过Google Play结算。

当前运行的版本和 Google Play 当前生效的版本不匹配导致的,官方介绍的测试方式,是开发完成后将apk上传到Alpha版本(其他版本也可以),等到生效后,测试人员账号可以再Google Play看到更新,更新后就可以正常测试了。这样做的目的就是为了等最新的版本号生效,如果版本号还没有生效,就安装在手机上运行,就会出现上面错误。

无法购买该商品

可能是商品已经失效了,我们遇到这个问题是出现在app因为某些原因被停用

不支持该地区

中国地区应该是不支持Google Play这种支付方式的,测试的话,需要在Google Play 中,修改一个账号的地区。

应用内敏感图片资源

上传Google Play的应用,应用内部不要包含敏感资源(例如大尺度的图片等),应用上线后,google 还会对apk内部资源审查,不管资源有没有用到,只要包含了敏感资源,都会导致被下架。

[

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

9704)]
[外链图片转存中…(img-sbtWZwyP-1715594689705)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值