网站微信扫码支付流程
一、申请微信公众号
1、首先去微信公众平台申请微信公众号(小程序的也可以),APP_ID是要用的
二、注册商户平台(个体目前不能申请)
1、注册申请通过后,商户号(MCH_ID)是要用的
2、微信平台的账户中心的API安全里下载证书,设置API秘钥(KEY)是要用的
在我的产品下的配置里设置回调地址,这个也是要用的
3、我的产品里的NATIVE扫码支付的服务要开启
三、选择模式
微信扫码支付有两个模式:
模式一:一般用来生成具体的产品的二维码;
模式二:生成订单的二维码(这个才是我们要选择的)
四、开始开发(这需要使用线上的服务器,要让微信的服务器回传数据结果时能访问的到;貌似本地配代理也可以,没有弄过)
1、新建一个证书文件夹(如:zhengshu),把在微信商户平台上下载的证书(为保证安全,不要泄露给不相干的人)放进来。
2、新建基本配置信息文件(如:config.zhengshu.php),配置好常量:微信公众号/小程序、商户号、秘钥、和证书文件的地址。
3、建一个订单的类文件(如:Order.class.php),定义好统一下单、订单查询等接口地址;在这个类文件里实现下单、订单查询、网络请求(需要验证证书)等需要的函数。
4、建一个支付处理文件(如:pay.php),处理订单逻辑。
5、建一个回调处理文件(如:notify.php),处理微信服务器回调的结果(回调文件一定得有默认返回值),若支付成功,更新订单数据库。
五、前台页面
1、向pay.php发送下单请求,获取返回数据。
2、使用js(jq)二维码生成插件,把返回来的二维码URL生成二维码展示。
3、定时器轮询订单的支付状况;若订单已支付则关闭定时器,处理支付成功后的逻辑;若到达设定的时间订单还未支付,则关闭定时器,清除二维码。
文章若存在问题,感谢大家指正!