Laravel开发实践PHP经验分享程序猿阵线联盟-汇总各类技术干货

laravel前后端分离,微信公众号支付遇到的坑。

2017-12-13  本文已影响150人  拍个黄瓜G
                          主要是后端思想

1.首先,你要下载微信的php版本sdk。但是由于sdk版本比较老,不会自动引入


image.png

上面的这个文件是官方微信sdk的这个文件 /WxpayAPI_php_v3.0.1/example/Wxpay.JsApipAy.php


image.png

你需要把每个文件都改成laravel支持的自动引入的样子。也就是加上命名空间,和use引入。这只是其中的一个文件。注意运行composer dump-autoload命令


image.png

2.设置AppId等一系列东西


image.png
image.png

《设置的支付目录是前端的目录,授权的域名是后端的》
请确保实际支付时的请求目录与后台配置的目录一致,否则将无法成功唤起微信支付


image.png
image.png
上面的这两个必须设置的,还有可能遇到的坑是,你的ip地址没有添加到ip白名单里面。

下面进入主题
一,先获取code,给前端返回个url,前端先请求微信支付的接口,然后接口返回一个url。前端再用js请求这个url,来获取code值。


image.png

这个返回的url里并没有code值,只有js请求这个url才会有code值。拿到code值之后


image.png
这个方法返回的参数缺少个signature签名的参数。这个参数
1.首先要获得access_token
2.在获取ticket。下面这个图片是写在定时任务里面,一个小时更新token
image.png

3.最后把ticket值和一些别的参数,用sha1方法,加密拼接成signature


image.png

前端的坑就是


image.png
上一篇下一篇

猜你喜欢

热点阅读