Google 登录和支付以及Facebook登录

6,740 阅读7分钟

本文介绍google登录、google应用内购及facebook登录,总结接入过程中可能会遇到的问题。 首先,google登录、google支付移动端都需要申请appKey。

Google登录接入步骤

  1. firebase后台申请创建项目组,如图1所示,在项目组中创建该应用,需要填写应用的包名及sha-1值

  2. 注册成功后通过该链接获取对应的web client id,该web client id用于服务器登录和支付成功后订单校验。需要注意的是,客户端和服务器端都要使用的该web client id。如果不使用该web client id可能权限不够。 图2所示

注意:

  1. 以上内容在两个后台。
  2. 登陆过程中可能会包ApiException:8,10,12500,12501 等错误,
  3. 检查是否打开google登录的权限(该权限在firebase后台打开)。
  4. 我使用国内的设备测试,发现这些状态码是不稳定的,多点击几次也会就能正常登录。

Google pay

1.Google开发者账号

首先,需要一个google开发者账号,该账号需要花费$25。

2. 创建和配置应用

Google play后台地址

  1. 创建应用,如图3所示。
  2. 填写所有需要填写的信息。图4,图5等。在填写图4内容时,需要上传一个应用安装包,该安装包只需要包名、签名和最后实际发布的包一致即可。
  3. 填写图4内容后才能够填写内容评级等相关信息。
  4. 只有当图5中红圈中的内容全部填写完成,图6中的发布才可有效。

3. 测试接入是否成功

应用版本中创建一个测试应用,按流程进行发布。该发布的过程中,需要添加测试账号如果不会添加测试账号请查看该文章,需要注意的是,测试账号添加成功后,要把应用发布后的链接发给参与测试账号,通过该账号打开链接,会提示用户是否参与测试,选择参与即可。

注:

  1. 应用需要发布成功后才有邀请测试链接。
  2. 应用发布成功需要一定的时间,几分钟到几小时不定。

4.创建商品列表

当应用发布成功后,到后台的 商店发布->应用内商品下创建内购商品id列表。如图8.

  1. 获取客户端支付公钥,如图10所示。

通过以上的步骤,测试账号便可以测试完整的支付流程。如图11

在测试支付的过程中可能会遇到如下问题

支付遭拒

1.1 应用商品可能违反了当地的政策,例如vpn在中东很多国家是违法的。 1.2 由于代理的vpn,ip频繁切换导致过银行风控 1.3 绑定的银行卡地址和google后台注册的地址不相符和,可以通过修改google的地址进行解决,但是该种方式很复杂,成功率很低。 1.4 出现支付遭拒的订单号客户端是由两串number构成的,如果是成功的情况,订单号是由GPA.number构成。 1.5 出现支付遭拒是一件正常的事情,我咨询过很多做游戏和应用的开发,在国外都有遇到支付遭拒的情况,应该能排查代码的问题。 1.6 手机设备root过,不能支付成功

防止丢单的整个流程
你无法购买商品

1.6 测试支付的版本号和线上发布测试的版本号必须一致,否者测试支付会失败。

服务器检索异常
  1. 发布的新商品需要等一会儿客户端才能调用成功。
  2. 商品id服务器定义的id不匹配
  3. 客户端使用的公钥有问题。这里需要注意的是,google后台显示的公钥copy时可能带入空格,刷新一次网页就正常了。
您已经拥有该商品
  1. 应用内购买实际上分为两步,第一步是购买,第二步是消耗。如果你购买了某个商品没有进行消耗,那么下次购买同一个商品就不能成功。消耗是一个本地行为,如果下次购买失败,通过调用mHelper提供的queryInventoryAsync方法查询出购买未消耗的商品相关信息,然后消耗该商品。这个过程一般跟业务逻辑有关。 例如我们现在的做法如下图:
    应用初始化时,对未消耗的商品做的处理
订单丢失

在部分国家,会出现订单丢失的情况,客户端提示支付成功,但是服务器端和google后台都没有收到订单记录。该情况通过数据埋点发现伊朗用户购买时出现过该情况。

关于绑定银行卡支付
  1. 如果使用真实货币支付,首先你需要一张支持usdt的信用卡。例如mastcard,visa等。在绑定银行卡的过程中,你可能需要切换你的账单地址,否者很难绑定成功,总之,这个过程比较麻烦。
不能弹出Google 支付的界面
  1. 检查是否给Google Service应用显示悬浮框权限
  2. 该账号是否已经存在购买的商品,但是还未消耗,返回的code码是7,该情况也不会弹出支付框。
测试设备服务不支持
  1. google service版本太低,需要到应用商店的设置中,点击版本号,提示更新。这个过程有点慢,感觉点击没有反应,实际上是在后台下载。需要等一会儿,或者需要重启一下设备等。反正就是要让应用商店更新到最新的版本。否者会出现设备不支持google pay。
关于Google play store 升级

如果手机的Google 服务先关组件是通过三方安装,那么很有可能版本比较低。不支持支付的api version3. 此时需要对Google play stroe 进行升级。在菜单栏中-->设置-->点击版本号。然后点击确认。需要注意的是,点击确认后,手机可能看试没有反应。实际上在下载。根据网络情况,等一定时间,重启手机。应用就更新了。

初始化失败

如果Google服务的版本已经是最新了还出现出事话失败的情况,可以通过以下方式解决。

  1. 需要将手机中的google账号全部删除

  2. 然后把google service和google play商店中的缓存全部清理掉

  3. 重新登录账号。。

  4. 手机没有安装service相关组件,下载go安装器安装手机相关的组件,需要手动更新下,默认下载的版本有些老。

其他问题:
  1. 如果我在后台创建了内购的商品,但是我可以使用订阅的api调用,也能够成功购买。同理,创建的订阅商品,也能能够通过内购的api调用成功。
网络不支持

显然,测试google支付需要使用vpn。如果网络不通,那么上面的都等于没说。

图1创建应用的后台

图2

Google登陆接入的官方demo地址

https://github.com/googlesamples/google-services/tree/master/android/signin

Google支付接入的demo

https://github.com/googlesamples/android-play-billing.git

图3

图4

图5

图6

图7

图8

图9

图10
图11

Facebook 登陆

后台的地址

https://developers.facebook.com/apps

唯一需要注意的地方就是要把对应的内容全部填写完整。测试的是有由于应用处于开发阶段,需要使用测试账号测试。

image.png

申请登录权限成功时,显示绿色

参考其他的链接 【链接】谷歌支付验证403错误 blog.csdn.net/alex_my/art…

以上是我在接入google登陆和支付的总结。如果写的不对的地方或者需要更正的请大家留言,谢谢。