在Web端接入Google Pay
Google Pay 是2018年1月9日,谷歌发布的新的支付平台。Google Pay品牌将在移动应用、网站、和线下支付终端中陆续上线,而已有的Android Pay品牌则将下线。
注意:Google Pay 并不是常用的手机端应用内支付方式 Google Play!!!
虽说是与 Apple Pay 对标的产品,Google Pay 的知名度和普及度似乎很低,在网上搜索的对接资料相当之少,以至于中间踩了很多坑,对接时长也远超预期,在此记录分享。
Google Pay 对接官方文档,平台分为web端和移动端,此文仅限web端。进入页面如下图:
关注指南Tab点击进入,页面如下图
左侧是主题列表,右侧是主题内目录列表,目前文档没有中文。
启动准备
在对接过程中,第一个坑是流程问题,互联网公司对任务的开发周期通常较短,在熟悉或者通用或者开发人员多的领域,从文档阅读开始,是可以抛开申请流程,前端页面等要素直接编写后端的API,以提高开发速度。但 Google Pay 有一些不同,以至于没有经验,不按流程很难继续。
在启动准备的设置部分,你需要关注两点:
- 你的网页是不是支持HTTPS,这一点在生产环境是必须的,在开发环境并不是。
- 你需要一个添加有 VISA 或 MasterCard 或其他 Google Pay 支持的卡种的 Google 账号
第二个坑是上面的第二点,先把它搞定!
- 事实上,不进行前端页面开发,单纯接入Google Pay 提供的 js SDK,调通弹出支付窗口,添加银行卡或选择已有银行卡,成功支付等流程后,进行生产环境申请,那么除了后续需要适配公司自己的支付系统,到此为止是没有任何后端开发的(这一点Google的文档真的不清晰)
- 期间厚着脸皮借了别人的多币种信用卡尝试添加过,似乎国区有风控,在 Google 账号中心添加成功,但在Google Pay弹窗中始终无法应用,即使是美国当地的Master Card也有失败的经历;
接入SDK
准备好之后,进入左侧的引导Tutorial,
这一部分实际上就是接入 JS SDK,照着样例编写即可。接完放在生产环境中,哪怕收到回调后直接弹一个消息,成功了,也就可以向Google申请生产环境许可。
申请生产环境
申请时,需要确认 gateway processor
,实际上就是一个支付公司,合作名单列在文档中。确认前可以先联系该公司,实际上后续的对接都是和支付公司合作。
千万不要修改 Google Pay
按钮或商标的样式,申请会被拒绝,因为有时差,申请的时间成本很高。
成功后,会拿到一个 MerchantId
和一个后台地址,只有登录着申请时填写的开发者账号才可以进入,可以填写 url
白名单,生产环境中 JS SDK
调用 Google API
是会有限制的。
支付对接
从支付公司那里可以获得一个公钥(gatewayMerchantId
)和一个私钥,gatewayMerchantId
+ MerchantId
在用户授权付款后,会通过 JS SDK
从 Google
获取到支付相关的 token_data
(没有产生支付)。
拿到 token_data
后,传给后端,后端通过 token_data
和 gatewayMerchantId
向支付公司的 API
请求 token
(我对接的公司就是获得15分钟有效期的令牌)。
然后通过私钥和令牌授权支付(可以设置直接请款,也可以通过 API
请款)。
总体来说,确认自己是接 Gateway 形式,和上面各个变量对应的数据即可,对接时绕的我不要不要的,一度在想为什么 Google 和支付公司之间的关系怎么是割裂的以及双方提供的钥匙做什么用途。
Direct应该就是支付公司接 Google Pay 时要做的,需要自己有金融营业牌照。
对接跨越了几个月,记录又跨越了几个月……当初满满的郁闷,现在都没写的动力了