支付开发总结
前言
最近APP中对接了支付宝APP支付,微信APP支付,小程序支付,对此做一些总结
遇到的问题
支付宝
支付宝APP支付相对来说是最简单的了,接口都是SDK里面的,自己只需要调接口,传参数就行,在加自己的业务逻辑就行了;
需要注意的是回调验签的那个,是支付宝公匙,不是应用公匙;应用公匙私匙都是自己生成的;
微信APP支付与小程序支付
微信支付就有点坑了:
- 需要自己签名,验证签名比较麻烦
- 小程序支付与微信APP支付,两者的第一次签名需要的参数是一样的,但是
trade_type
的值不一样,还有就是第二次签名所需要的参数及参数名就完全不一样了 - 回调处理,注意重复回调
- 注意开发时,先让运营或者相关负责人开通支付相关的功能(自己开发小程序支付时发现未开通小程序支付,自己开通的流程也不清楚,浪费了一部分时间去后台开通)
- 目前遇到的微信支付的最大的坑就是文档写得稀里糊涂的有些找不到,以及某些签名需要哪些属性以及字符是否满足驼峰式
苹果支付
- 注意一
苹果支付跟上面几者完全不一样
- 分产品种类,虚拟的只能使用苹果支付,其它实体的(例如线下预约)可以调用其它支付
- 虚拟种类的产品信息需要相应苹果开发者的账号去苹果后台去录入;
- 注意二
苹果支付就比较无奈了,因为苹果支付不需要走自己的服务,所有的流程都在苹果系统自己处理了,唯一的一点就是苹果支付完成后会有一个字符串,然后自己的服务器要访问相关的网址去验证该字段;,而且验证相对麻烦,详细验证流程这里就不说了;
- 注意三
因为苹果支付需要单独在苹果后台单独录入,且苹果需收手续费,导致苹果端价不一样,开发时注意是否需要将苹果的价格单独设置属性;
总结
- 支付这个主要还是流程,流程熟悉了,开发不需要多久时间,代码都是现成的,只需要配置相关的配置就行;
- 还有就是注意重复提交,比如重复回调(通知);
- 注意业务流程开发
- 本地开发调试时,注意回调地址是否可以回调,是否需要将本地回调地址映射到公网(使用代理或内网穿透)