2019-11-07 Android谷歌支付SDK集成问题记录
谷歌支付流程
1.谷歌支付介绍
2.集成清单流程,按照谷歌的官方文档说明,必须满足这个链接里面显示的清单文件所有条件
https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist
3.谷歌支付SDK集成步骤,这里之所以先让你看集成清单流程,是想突出,流程比SDK集成重要,先看懂集成清单,才更加有利于你把SDK进行集成
https://developers.google.com/pay/api/android/guides/tutorial
4.关键API讲解 gateway gatewayMerchantId
private static JSONObject getGatewayTokenizationSpecification() throws JSONException {
return new JSONObject() {{
put("type", "PAYMENT_GATEWAY");
put("parameters", new JSONObject() {
{
/**
* geteway 这里显示的是example只是让你跑demo用的。实际情况下,需要根据你们公司的业务进行设置,
* 例如我们用的是stripe。这个地方就要替换example为stripe
* 参考链接:https://developers.google.com/pay/api/android/reference/request-objects#gateway 然后直接看Gateway 相关的属性
* gatewayMerchantId:YOUR_GATEWAY_MERCHANT_ID" 就是你们申请的商家账号(这个地方会有很多坑。)
*/
put("gateway", "example");
put("gatewayMerchantId", "exampleGatewayMerchantId");
}
});
}};
}
代码注释描述的比较清晰了。这个地方是决定能否正常使用谷歌支付的关键点,如果你是直接用demo跑的,谷歌都会正常调用起你的支付、付款流程,里面的关键参数:gateway/gatewayMerchantId 需要根据正式环境申请的数据进行填写
5.关键API讲解
PaymentsClient
WalletConstants.ENVIRONMENT_PRODUCTION
WalletConstants.ENVIRONMENT_TEST
mPaymentsClient =
Wallet.getPaymentsClient(this,
new Wallet.WalletOptions.Builder().setEnvironment(WalletConstants.ENVIRONMENT_TEST)
.build());
如果我们直接跑demo。会发现这里显示的环境是测试环境,需要知道的是,测试环境只是告知我们支付的流程,并不能用于我们上线的时候使用,因为测试支付流程是不会正常扣款的。所以,我们需要设置成WalletConstants.ENVIRONMENT_PRODUCTION
问题点(全文最关键的点)
1.当我们按照上述流程进行测试环境的流程拉通后,必定要走生产环境的流程WalletConstants.ENVIRONMENT_PRODUCTION,这个时候,会发现一直无法正常调用起谷歌支付,也许会提醒你,“该商户未开通gooogle pay” 或者405等问题。查找相关问题,
请参考:https://developers.google.com/pay/api/android/support/troubleshooting
这里强行解释一波。出现这些问题的根节点,在于,我们没有向谷歌发起申请,要求生产访问的申请,请参考
https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access
https://services.google.com/fb/forms/googlepayAPIenable/
里面有很多参数需要填写,比较关键的地方
- Tokenization Method 正常直接选择GateWay
If you are unsure, learn more about Android tokenization methods and Web tokenization methods. - Payment Processor or Gateway
在上面的文章有提到gateway。需要根据你们公司具体申请情况填写
参考:
https://developers.google.com/pay/api/android/reference/request-objects#gateway - Integration Platform Details *
填写包名就可以了 - Please provide a shared Drive link to any applicable attachments (ex. APK, screenshots, bug reports)
这一项,相当重要了。你需要做的是,录一段视频,放到外网,我是放facebook上面,然后把链接贴上去。这段视频,要拍摄的是你app里面有关于支付的使用流程,越详细越好,要在app里面进行菜单选择、购物车添加、发起支付(这里的支付,直接用测试环境进行支付).谷歌想知道,为什么你需要集成支付功能。所以这一段视频是相当关键的,决定了你是否能够在生产环境进行支付。
- 最后一波
当你做完这些操作,别忘记,去google play上架你集成过支付功能的apk到内测通道。 - 最最后一波
按照正常流程,你刚才发起的申请,会在1-7个工作日反馈结果,谷歌会给你发一封邮件,邮件里面会提醒你,你已经可以进行生产环境的支付了。
payments.developers.google.com/signup.
你需要在这个链接里面填写相关公司的资料。然后点击NEXT 选择你需要集成支付功能的apk项目点击enable。打开
至此,谷歌SDK支付功能已经全部讲解完毕,网上有很多教程,我觉得讲的都不够透彻,完全没有讲解到点上,云里雾里,附上申请成功后,谷歌反馈的邮件信息,只要收到这封邮件,一切都是很顺理成章了
image.png