倒过来看,微信支付,最终要实现的无非是拉起微信支付jsapi提示用户输入密码支付这笔订单;
而拉起微信支付jsapi需要的参数有公众号id,时间戳,随机字符串,订单详情扩展字符串,签名方式,签名⑥个;其中我们不知道的只有订单详情扩展字符串一个;
订单详情扩展字符串是统一下单接口返回的prepay_id(我习惯叫它订单号)参数值;
所以说,在支付之前需要我们的后端先调用统一下单接口向微信下一笔订单,将返回的订单号告诉我们;
然而,后端要下单需要先知道为那个用户下单,即需要用户唯一标识openId;
要获取openid又需要code,获取code需要前端引导用户进行授权操作;
这样就很清楚了,一个最简单的公众号网页支付流程为:用户进入公众号=>引导用户授权=>将code传给后端=>后端用code获取openid=>后端下单=>告诉我们订单号=>拉起微信支付jsapi完成支付;