天天看点

Laravel 微信pc端扫码支付---使用EasyWeChat

1、安装 overture/wechat:

composer require “overtrue/laravel-wechat”: “~4.0”

2、安装好之后可以根据官方的文档来进行配置:

(1)gitHub: https://github.com/overtrue/laravel-wechat

(2)官方文档地址 :https://www.easywechat.com/docs/4.1/payment/index

3、配置文件中配置好 appid ,财付通商户号,appkey ,以及最重要的回调地址

4、控制器中调用生成二维码:

Laravel 微信pc端扫码支付---使用EasyWeChat

注:返回结果中只是返回一个 url ,须自己调用二维码生成工具生成二维码,附上我自己用的工具:

https://packagist.org/packages/simplesoftwareio/simple-qrcode

5、回调:微信的回调是以Post 的方式进行数据传输,要注意的他是传输的 数据流 ,所以获取数据的方式:

$data = file_get_contents(‘php://input’); 可以将获取的数据写入日志中查看。

但是在EasyWechat中 ,就已经对获取数据和XML数据进行了转换 ,从他的官方文档中可以知道 (https://www.easywechat.com/docs/4.1/payment/notify) :

handlePaidNotify() 方法就已经对XML数据进行了处理,所以我们只需要根据官方文档调用这个方法就行

Laravel 微信pc端扫码支付---使用EasyWeChat

这里返回的$message 是一个数组。

6、在前端页面扫码支付后可以用轮询或者websoket的方式对支付结果进行查询,利用商品的订单号去查询支付结果:

$app = app('wechat.payment');
    $info = $app->order->queryByOutTradeNumber($data['out_trade_no']);
	这样就可以查询到订单的最后的支付状态了。