Android app对接支付的时候,很容易出现问题.主要的原因就是:
1.对应平台开发者帐号申请和配置,容易出现问题.
2.应用的支付能力的申请,包名和签名易出错
3.加密规则,看文档可能理解的不清楚
我最近开发的项目中就涉及到了微信支付和支付宝支付.这里跟大家分享一下:
微信支付:
这个是微信app支付开发文档地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
1.建议大家在做之前一定要了解app微信支付的流程和android app接入的流程.不要下载一个demo就觉得完事了.
2.app支付流程在文档的API列表一栏中有,这里对关键的两步做一下解释,统一下单,调起支付:
a.服务器统一下单接口(这个在支付文档中是有的).第一次看到的时候以为是客户端的事情.其实不是的.就是服务器通过跟微信交换生成预付的订单.
生成的订单,可以通过微信的不同的支付方式进行支付(比如扫描支付,微信app支付等等).统一下单需要注意的有两点:
1> 必传的字段一定要传则
2>生产sign的规则,按照文档就可以,需要特别注意两点 第一参数名按照ASCII从小到大的顺序. 第二参数名(参数名称也用于加密了--key)就是调用接口(统一下单接口)接口文档中的变量名称.
b.调起支付宝接口:这里也是需要注意两点:
1.签名sign需要在服务器签名,千万放在客户端上.签名是需要平台上的key(密钥).这样会泄漏
2.sign签名的时候.签名的变量名也就是key,是支付接口(客户端支付接口)中的变量名称.这个很容易搞错.因为服务器有时候不看客户端接口是什么.经常会自定义key.