谷歌接入记录

925 阅读4分钟

谷歌登录

  1. Google Play Console 创建应用

    1. 信息中心填写应用信息

    2. 添加国家地区

    3. 在发布里创建发布版本,选择签名密钥 ​ image.png 使用其他密钥 ​ 202404151234647.png

从Java库密钥库导出并上传密钥,按照步骤,生成output.zip文件 ​ image.png

保存,上传成功。

  1. 确认Google Play Console 应用签名密钥证书与上传密钥证书是否与本地的一致

    到设置-应用签名查看签名,这时候看到的应用签名密钥证书和上传密钥证书的证书指纹和本地证书应该是一致的。

    新项目正常操作,应用签名密钥证书应该只有一个

    (注意:如果这时候看到这里的应用签名密钥证书不止一个,那么在后续需要添加密钥的地方,要同时把新旧两个证书指纹都添加上去)

    image-20240416101821358

  2. 到Firebase后台下载google-services.json文件,放进项目/android/app下

    image-20240416120810733

    顺便校验证书指纹是否与Google Play Console中是否一致(如果Google Play Console中有两个,那么这里也要添加两个)

  3. Google Cloud中添加OAuth 2.0客户端ID

    image-20240416121403255

    如若OAuth 2.0客户端ID没有自动生成,可以手动创建。

    需要注意的地方是Android平台进行谷歌登录的话需要的是Web client,而不是Android client。

至此,谷歌登录需要设置的地方差不多就这些了。

谷歌支付

1. 获取商品

  • 在play 商店中,需要看到付费应用(这点很重要)

  • Google Play Console 中要配置有商品,同时商品状态为有效。

    image-20240418120538106

  • 首次想要获取到商品,任意测试轨道中需要有个有效的发布版本。

    image-20240418121939814

  • 在上传更新测试轨道中的发布版本时,操作成功后有一定贤者时间,这段时间里,本地运行时有一定概率获取不到商品。(上传了几次发现的,也不是很一定,所以我一般选择下班时间再更新谷歌上面的版本)

2. 支付

  • 需添加测试人员,且在测试用户数量这里要勾选上。

    image-20240418145549239

    将最下方的链接发送给测试人员,一定一定一定要点击最下方的“ACCEPT INVITE”接受邀请

    Screenshot_2024-04-18-15-14-25-586_com.android.browser-edit

  • 在许可测试中添加测试人员(需要有对应的权限才能看到对应这个许可测试的页面)

    img_v3_029s_7afe21bf-d201-4a5c-a4d3-49bf4bb1c80g

  • 在系统的设置中登录对应的谷歌测试账号,而不是在Play 商店中

    Play商店中的账号会自动同步系统设置中的谷歌账号,最好同时存在一个谷歌账号就好,避免引起一些不必要的bug,比如说购买过首单优惠,但优惠还存在的问题呢。

3. 问题记录

  • 升级Billing 5后,谷歌的优惠商品结构发生变化

    (Flutter,使用的是in_app_purchase: ^3.1.13)

    假如一个订阅商品配有优惠方案,InAppPurchase.instance.queryProductDetails() 将优惠方案遍历,重新组装成具有相同id的商品。

    image-20240418153513224

    比如说有一个订阅商品id为**com.test,定价为100元,有一个首单优惠50%方案(名为first),这时候InAppPurchase.instance.queryProductDetails()** 将返回两个id为**com.test** 一模一样的商品,除了**price、rawPrice、subscriptionIndex**不一样。

    如下图,就是将订阅商品的首单优惠方案拆解组装出来的一个商品详细数组接口,解析时,可通过offerId对应的方案名识别出对应的优惠方案以及对应subscriptionIndex

    image-20240418162921329

    subscriptionIndex 在支付时需要用到,通过它识别到对应的offerToken

    image-20240418164317770

    比如说这里的首单优惠方案 subscriptionIndex 为 0,原价方案 subscriptionIndex 为1。

    如果说想要购买的是原价商品,就得传入 subscriptionIndex 为 1 的GooglePlayProductDetails对象。

    想要购买的是首单优惠,就必须得传入 subscriptionIndex 为 2 的GooglePlayProductDetails对象。

  • 测试反馈说拿不到商品

    1. 喊她去确认网络情况,是否能在Play商店中看到付费商品。
    2. 是否处于上传更新的贤者时间(只针对首次上架)
  • 测试反馈说拉起谷歌支付弹框时报错

    1. 确认登录的是否为谷歌测试列表中的账号
    2. 测试账号是否通过链接加入了邀请
    3. 是否处于上传更新的贤者时间(只针对首次上架)
  • 购买过首单优惠(或者免费试用),但再次进入时还是有优惠

    要先到play商店里取消订阅,并等待订阅过期,测试阶段一年订阅为30分钟。

  • 拉起支付弹框提示“无法购买您要的商品”

    回到开头重新确认那些注意事项,要一一都对得上

待补充