基于OpenCart 开发支付宝,财付通,微信支付参数错误问题

最近在给OpenCart集成支付宝,财付通和微信扫码支付,其实这些插件都是有的卖的,但是还蛮贵的,还是自己开发集成吧,省钱。但是集成过程中发现了一些坑,有opencart的坑,也有支付sdk的坑,浪费了不少时间,这里整理几条,给需要的人跨坑。

1.微信native 模式二中的notify_url 地址必须是公网地址

2.支付宝的notify_url不能是query string的形式,比如 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 = new PayNotifyCallBack();
$notify->Handle(false);

5.PC浏览器的支付宝用ios设备访问的时候会弹出支付宝客户端来支付,这样是接收不到异步和同步通知的,所以需要判断一下访问设备是移动端还是客户端,如果是移动端的话得用支付宝的wap方式来支付

6.财付通支付QQ浏览器支付一直参数错误,还没找到为什么。

原文地址: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/

相关推荐