公众号支付唤醒之前会先去获取用户的openid,例如支付的页面是 www.xxx.com/pay ,当表单post方法提交去唤醒微信,那么在唤醒的过程,微信先重定向到微信自己的域名下获取openid,然后再回到 www.xxx.com/pay ,如果这时候你的框架是laravel,那么第一个出现的错误便是“MethodNotAllowedHttpException”,就算你解决了这个,也就是在路由里面加入get路由,那也没用,因为你之前提交的那部分post的信息已经丢失了,微信是用get回调到 www.xxx.com/pay的。
解决办法:
如果一定要用post提交,那么就在提交完,重定向到一个get路由下再进行微信公众号支付sdk的使用,唤醒微信支付。