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

                          主要是后端思想

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


laravel前后端分离,微信公众号支付遇到的坑。_第1张图片
image.png

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


laravel前后端分离,微信公众号支付遇到的坑。_第2张图片
image.png

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


laravel前后端分离,微信公众号支付遇到的坑。_第3张图片
image.png

2.设置AppId等一系列东西


laravel前后端分离,微信公众号支付遇到的坑。_第4张图片
image.png

laravel前后端分离,微信公众号支付遇到的坑。_第5张图片
image.png

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


laravel前后端分离,微信公众号支付遇到的坑。_第6张图片
image.png

laravel前后端分离,微信公众号支付遇到的坑。_第7张图片
image.png

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

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


laravel前后端分离,微信公众号支付遇到的坑。_第8张图片
image.png

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


laravel前后端分离,微信公众号支付遇到的坑。_第9张图片
image.png

这个方法返回的参数缺少个signature签名的参数。这个参数
1.首先要获得access_token
2.在获取ticket。下面这个图片是写在定时任务里面,一个小时更新token
laravel前后端分离,微信公众号支付遇到的坑。_第10张图片
image.png

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


image.png

前端的坑就是


laravel前后端分离,微信公众号支付遇到的坑。_第11张图片
image.png

你可能感兴趣的:(laravel前后端分离,微信公众号支付遇到的坑。)