=======微信支付============
最早接触的是一个微信公众号项目,涉及微信支付,所以那时只做了微信支付,当时看了api文档采用网页端调用WeixinJSBridge.invoke('getBrandWCPayRequest',{}) API的方式,当然还有weixin.js提供的wx.chooseWXPay支付方式,wx.chooseWXPay本质上也是调用getBrandWCPayRequest,可能是微信开发团队开始采用getBrandWCPayRequest,后面为了完善weixin.js而加入wx.chooseWXPay支付方式。
【微信支付注意事项】
1.公众号支付只能在微信环境中使用,普通的浏览器不支持,因为其使用了他的私有js对象。
2.公众号支付和App支付对应不同的商户号,这点管理起来可能不太方便。
3.交易金额默认为人民币交易,接口中参数支付金额单位为【分】,参数值不能带小数。对账单中的交易金额单位为【元】。外币交易的支付金额精确到币种的最小单位,参数值不能带小数点。
4.公众号支付和App支付使用的某些键有时候是下划线,有时候又是驼峰,特别需要注意。
5.微信支付更多使用XML构造协议数据,可以使用XML工具构造【带XML头xml?】,也可以拼接。
6.回调等最好使用https协议增强安全性。
7.微信支付采用了先生成预支付订单的方式,如果用户在第一次支付生成预支付订单之后取消支付,那么重新发起支付就不能再生成一个预支付单,避免重复,所以需要在第一次保存住这个预支付订单。
8.公众号支付需要在微信公众号中做一些域名相关的设置【四项】和在商户平台的API安全中做apikey的设置。
微信扫码支付则可以利用第三方工具生成二维码,二维码携带有订单号跳转调用getBrandWCPayRequest方法的url即可。
=======支付宝支付=========
没有自己看过支付宝的开发文档,只是看了别人做过的支付宝生成二维码支付项目的代码,发现支付宝与微信支付还是很相似的(
支付宝支付通知的两个url:
call_back_url
: 交易成功后,支付宝页面上“返回到商家页面”的地址(同步回调)
notify_url
: 交易状态变更后,支付宝通知网站的回调地址(异步通知)
微信提交支付信息不包括同步回调url,是直接在getBrandWCPayRequest的function(res)里对res解析进行页面支付结果通知,支付金额单位同样是分
),不过这里的二维码是提交订单商户一些信息后由阿里生成的。个人感觉支付宝比微信支付容易开发。纸上得来终觉浅 绝知此事要躬行!