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

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

  • 支付宝的 notify_url 不能是 query string 的形式,比如 xxx/notify.php?route=a/b,只能为 xxx/notify.php

  • OpenCart 中支付宝和财付通中的同步回调处理中最好 unset($_GET[‘route’])再做支付回调验证,否则因为这个多余的参数参与校检导致回调验证不成功

  • 微信回调 notify 的时候是发送数据流,所以 GET 和 POST 是获取不到支付后异步通知过来的数据的,用官方的 SDK 的时候你可以这样改一下:

$GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents('php://input', 'r');
$notify = new PayNotifyCallBack();
$notify->Handle(false);
  • PC 浏览器的支付宝用 ios 设备访问的时候会弹出支付宝客户端来支付,这样是接收不到异步和同步通知的,所以需要判断一下访问设备是移动端还是客户端,如果是移动端的话得用支付宝的 wap 方式来支付

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

转载请注明: 转载自Yuansir-web 菜鸟 | LAMP 学习笔记

本文链接地址: OpenCart 开发支付宝,财付通,微信支付接入遇到的坑

知识共享许可协议 本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可