Google 支付踩过的坑

1 篇文章 0 订阅
1 篇文章 0 订阅

最近公司业务需要,准备上Google Play,由于以前没有做过相关的业务,所以Google登录和Google支付都比较陌生,于是花了点时间先对接Google登录和支付。
登录的话,可以完全参考这位博主分享的内容,因为目前我还在测试对接阶段,所以这位博主遇到的坑我还没遇到,等到时候遇到了再回头看一下,先插眼。
链接: https://blog.csdn.net/wangchaojing/article/details/125680497
重头戏来了,关于Google支付,我的完整踩坑记录。
首先我也是找了一些关于Google支付接入的博客,最后我是从这两篇博客开始我的踩坑之旅的。
链接: https://juejin.cn/post/7110434269155033118
链接: https://www.jianshu.com/p/f6b01d108981
这两篇博客可以说是对于支付的接入写的很详细了,大家如果有相同需求,可以按照这两位大佬说的一步步来。
这里有些需要注意的地方,也是我踩过坑的地方,在上传aab的时候,可能会跳出一个同意Google Play签名的同意,如果不清楚这是什么东西的,建议别点同意,我就是因为勾选了,所以出现了很多意想不到的问题,因为我的项目没有上过Google Play,且还在测试阶段,所以我最后是把Google Play后台的应用删除,重新创建了一下。已经上线的小伙伴可不要这么操作,我也不清楚会有什么问题,后果自负哈。重新创建后没有同意Google Play签名。点击“选择签名密钥”
在这里插入图片描述

选择第三个在这里插入图片描述
然后按照这个步骤直到上传zip文件
在这里插入图片描述
最后就是打包aab了,打包也有需要注意的地方,首先就是build.gradle里面的buildTypes配置,debuggable一定得是false,targetSdkVersion版本必须是31及以上。在这里插入图片描述
其次就是这里打包的时候如果不懂就不要勾选Export encrypted key for enrolling published apps in Google Play App Signing。
在这里插入图片描述
然后就可以开开心心的复制,粘贴,运行。满怀期待的按下了我的测试支付按钮,等着支付面板跳出来。结果你懂的,不可能这么顺利的。加了一些log之后,开始排查,最后发现是BillingClient.queryProductDetailsAsync()这个方法返回的list长度为0,也就是说没有拿到内购项。百度了一天,有说是因为没有添加测试用户的,有说是测试用户没有接受邀请的,有说是商品id不对的,有说是账号问题的。于是反反复复确认google play后台的配置是不是有问题,确定已经添加了测试用户,测试用户已经接受邀请了,应用内商品已经启用了,商品id跟代码里的id也一样。反反复复确认了N遍,后台配置确实没问题,于是基本能确定是账号问题。
在这里插入图片描述
网上说的账号问题,基本都是说账号不能支付,排查账号是否能支付,可以打开Google Play商店,最下方选择游戏,然后上方tabbar选择付费,如果没有获取到内容,则该账号没有支付功能,如果有内容,说明该账号有支付功能。我以为google 账号绑卡,只能绑定visa卡,而我没有visa卡,所以我用的是公司同事的账号测试的,他的账号绑定了visa卡,并且据他自己说是支付过的,100%确认是可以支付的。所以我在Goolge Play商店的付费界面没有加载出来东西的情况下,我还是没有怀疑这个账号的支付功能。于是继续百度,又是一天过去了,一点进展没有。

直到第三天,终于迎来了转机,测试的哥们也没有可以支付的账号,于是他就一直在想办法搞一个测试账号,后来发现竟然可以绑定银联卡,于是绑定了银联卡,注意绑定银联卡的时候地区一定要选择香港或者国外(我之前用的同事的账号,他说可以支付,但是他的地区是大陆,但是我获取不到内购项,所以猜测可能跟这个有关)。于是测试的哥们绑定了之后,安装上App,点击测试支付按钮,我终于看到了google的支付面板,也太难看了(我是说太难看到了)。于是按照测试哥们的方法,我把自己的账号也绑定上了银联卡,运行,点击支付,ERROR。看log发现queryProductDetailsAsync回调里billingResult.getResponseCode()为-2,好像是什么不支持啥的,具体我也不清楚,但依稀感觉是手机问题。先排查是不是账号问题,把我的账号登在测试的哥们手机上,测试支付,可以调起google支付面板,就这样排除了账号问题,应该是手机问题(但是后来发现这个方法排查其实有问题,后面再说)。

又开始百度,发现可能是我手机上的Google Play版本太低了,我的版本是25,要30以上,于是卸载重新装了个37的,重新测试,可以了。但是我不想一直拿自己的测试,所以把我的账号登在了公司的测试机上,这个手机之前登了那个同事的绑定了visa卡的账号。在测试机上运行,点击支付,没有调起支付页面,看log,BillingClient.queryProductDetailsAsync()这个方法返回的list长度为0 ????怎么又拿不到了,什么jb玩意,心里骂了Google一百遍。换一个测试机,运行,点击支付,没有您想要购买的商品????什么jb玩意,心里又骂了Google一百遍。测试的哥们看不下去了,于是他开始了一顿百度,最后在我拉💩的时候告诉我他搞定了。。。。搞定了。。。。定了。。。。了。。。。还好他不会写代码,否则我该失业了。在手机的设置里面,一般都有“用户与账号”或者“账号与同步”类似的选项,点进去,看到goolge,点进去,可以看到你手机当前登录的所有google账号。如果用来测试支付的账号不是第一个,就把其他的全删了,然后再测试支付,就可以了。所以我之前排除账号问题的方法有点不严谨,应该把测试的哥们手机上的其他账号删了,再登我自己的账号。还好这里没有遇到坑,不然又是一天。。。

这就是我的完整踩坑记录,用文字记录一下,下次如果还有同样的需求,遇到问题,就可以稍微从容一点了。Google ,Sorry啦,是我太垃了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值