四、利用SDK按照微信规则生成二维码
-
生成支付的数据
需要调用WxPayApi.php中的bizpayurl来生成二维码规则
Bizpayurl()中需要传入参数,这儿只传入了product_id,因为其他参数是SDK自动在我们的配置文件中读取的。
\WxpayApi::bizpayurl($biz)返回的是一个对象,怎么样将对象拼接到url后边成为参数呢?当然是这样形式aaa=dddddd&ccc=fffff
这样Url就完成了,那怎么样将url转换为二维码的图形呈献给用户呢?已经有人写好了PHP生成二维码的类库,要用就拿过来用就行。
五、使用Phpqrcode类库生成二维码
-
怎么样获取phpqrcode
直接将phpqrcode拷贝到thinkphp的Vendor目录下,是这个样子的
-
在控制器中使用phpqrcode
先引入phpqrcode
注意这个是将二维码生成后保存在服务器中哦,已经说过这个不是最好的解决方案的。
关于phpqrcode的更多使用请查看phpqrcode手册
六、扫码界面的呈现
七、扫码之后发生了什么
-
接收微信系统传回的数据
一起来看看带回的xml数据长什么样
将xml解析成便于操作的array
-
商户系统后台生成商户订单
在此处你可以拿这些数据来做一些判断和处理操作。根据业务需要自由发挥
-
调用统一下单方法生成预付交易
$input是需要传入的参数,是这个对象
各个参数什么意思呢?查看这儿
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1
-
notify_url参数解释
notify_url是一个url设置的要求和配置毁掉地址的要求一样,要外网可以访问,备案的,不能带有参数的url。当支付完成后微信支付系统又会带着一些参数访问我们这个url,告诉我们支付结果及其他信息。
-
将生成的预支付数据再传给微信支付系统
因为微信只接受xml数据所以我们要讲对象中的信息拼装成xml数据
为什么要echo呢?因为我们要给微信支付系统而微信支付系统在访问我们的这个方法所以我们echo后微信支付系统能够接收到。