Laravel5.7实现微信支付 -- Native支付方式
1.环境需求
- PHP >= 7.0
- PHP cURL 扩展
- PHP OpenSSL 扩展
- PHP SimpleXML 扩展
- PHP fileinfo 拓展
2.框架和需要的第三方工具
- Laravel5.7
- composer
- 第三方插件EasyWeChat
3.开发步骤简要说明
- 使用composer下载安装EasyWeChat扩展。
- 配置相关的微信信息。
- 根据EasyWeChat文档开发(简要说明,详细说明在下方)。
4.详细开发步骤
这里提供EasyWeChat的文档地址(https://www.easywechat.com/docs/master/installation)
1.第一步,通过composer安装EasyWeChat,命令为:
composer require overtrue/wechat:~4.0 -vvv
然后安装二维码生成工具,地址为(https://github.com/endroid/qr-code)
命令:
composer require endroid/qr-code
由于框架是Laravel,所以
进入后,此页面会有一部分使用安装教程。
当执行publish后,基本就安装成功了。
2.配置相关信息。
执行publish后,在config目录下会生成一个wechat.php文件,这里就是微信的配置文件
我们开发微信支付,所以,你需要打开
上方红圈圈里面的为必填项,分别解释下:
app_id:微信支付分配的公众号账号ID
mch_id:这个是微信商家的ID
key:此账号下的API**
notify_url:异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数。
3.写代码,完成Native方式的支付
首先创建一个控制器,写一个方法pay,pay是生成订单,将返回商品信息和二维码。这里需要注意的是第三个红框框中的code_url,在Native支付方式下中,$result才有这个字段。
这里我们需要$result中的code_url。该$result返回的样式。
在view中pay.blade.php中。
这里路由对应的就是生成二维码的方式:
最后生成的二维码样式
4.最后一步,不管支付成功还是失败,都需要给用户支付通知。所以当初配置的notify_url就是在这里用的
$order需要你根据$message['out_tarde_no']去数据库查询相关订单信息。
到这里基本就差不多了。
如果没做过,可能看起来很难受,做过一次就了解。基本步骤都是配置信息。然后调用文档中的接口,或者copy文档中的固定代码格式。熟悉就好了。