基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
最近在给OpenCart集成支付宝,财付通和微信扫码支付,其实这些插件都是有的卖的,但是还蛮贵的,还是自己开发集成吧,省钱。但是集成过程中发现了一些坑,有opencart的坑,也有支付sdk的坑,浪费了不少时间,这里整理几条,给需要的人跨坑。
1.微信native模式二中的notify_url地址必须是公网地址
2.支付宝的notify_url不能是querystring的形式,比如xxx/notify.php?route=a/b,只能为xxx/notify.php
3.OpenCart中支付宝和财付通中的同步回调处理中最好unset($_GET[‘route'])再做支付回调验证,否则因为这个多余的参数参与校检导致回调验证不成功
4.微信回调notify的时候是发送数据流,所以GET和POST是获取不到支付后异步通知过来的数据的,用官方的SDK的时候你可以这样改一下:
$GLOBALS["HTTP_RAW_POST_DATA"]=file_get_contents("php://input","r"); $notify=newPayNotifyCallBack(); $notify->Handle(false);
5.PC浏览器的支付宝用ios设备访问的时候会弹出支付宝客户端来支付,这样是接收不到异步和同步通知的,所以需要判断一下访问设备是移动端还是客户端,如果是移动端的话得用支付宝的wap方式来支付
6.财付通支付QQ浏览器支付一直参数错误,还没找到为什么。
提醒大家在使用OpenCart开发支付宝,财付通,微信支付的时候,一定要细心,谢谢朋友们关注毛票票网站,在此脚本支架小编祝大家国庆节快乐。
原文地址:http://www.yuansir-web.com/2015/09/14/opencart-%E5%BC%80%E5%8F%91%E6%94%AF%E4%BB%98%E5%AE%9D%EF%BC%8C%E8%B4%A2%E4%BB%98%E9%80%9A%EF%BC%8C%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E6%8E%A5%E5%85%A5%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91/