背景
h5支付分两种
1.浏览器
2.app
浏览器里的h5,最终也会跳转到app。
而app里的h5,本质是公众号。在微信里叫公众号,支付宝叫服务窗。
这里主要讲微信h5。
核心原理
最终目标是下单,所以先倒着看,直接看最后一步需要什么入参,然后倒推。
1.下单
需要用户id //核心就是获取用户id,前面的获取授权码只是为了安全的获取用户id
2.如何获取用户id?
需要先授权
所以流程是
1.授权
获取授权码 //不同的app,名字不同,微信叫code,其实目的就是获取授权码
2.用户id
根据公众号id和授权码,就可以获取用户id //核心业务逻辑
3.下单
入参:用户id //即根据用户id,下单
流程图
和微信打交道的核心步骤就三步
授权码会变
用户id不变 //唯一标识用户/消费者
总结
微信 支付宝 银联,都差不多,大的流程基本上都是一样的,只有授权码和用户id的名字可能不一样。
非直接对接微信
直接对接微信,就会需要用户id,需要用户id就需要获取授权码。
如果是非直接对接微信,而是对接第三方支付公司,就不需要1.获取用户id 2.获取授权码,因为第三方支付公司已经封装好了。
弹起微信支付密码框
如果是直接对接微信,需要自己调用微信js弹出微信支付密码框。
如果是对接第三方公司,就是调用第三方公司js,然后由第三方公司去调用微信js和弹出微信支付密码框。
参考
https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=7_4
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
https://www.cnblogs.com/0201zcr/p/5131602.html