基于OpenCart的支付插件支付寶,財(cái)付通,微信支付參數(shù)錯(cuò)誤問題
[日期:2022-11-02] 來源:宇塵網(wǎng)絡(luò)幫助中心 作者:宇塵網(wǎng)絡(luò)幫助中心 閱讀:1118次
近期一些外貿(mào)vps,例如泰國(guó)vps,印度vps,特別是美國(guó)vps,都在跟進(jìn)opencart程序,所以最近關(guān)于這個(gè)程序的問題有很多,今天說下關(guān)于支付插件的問題
基于OpenCart 開發(fā)支付寶,財(cái)付通,微信支付參數(shù)錯(cuò)誤問題
最近在給OpenCart集成支付寶,財(cái)付通和微信掃碼支付,其實(shí)這些插件都是有的賣的,但是還蠻貴的,還是自己開發(fā)集成吧,省錢。但是集成過程中發(fā)現(xiàn)了一些坑,有opencart的坑,也有支付sdk的坑,浪費(fèi)了不少時(shí)間,這里整理幾條,給需要的人跨坑。
1.微信native 模式二中的notify_url 地址必須是公網(wǎng)地址
2.支付寶的notify_url不能是query string的形式,比如 xxx/notify.php?route=a/b,只能為xxx/notify.php
3.OpenCart 中支付寶和財(cái)付通中的同步回調(diào)處理中最好unset($_GET[‘route'])再做支付回調(diào)驗(yàn)證,否則因?yàn)檫@個(gè)多余的參數(shù)參與校檢導(dǎo)致回調(diào)驗(yàn)證不成功
4.微信回調(diào)notify的時(shí)候是發(fā)送數(shù)據(jù)流,所以GET和POST是獲取不到支付后異步通知過來的數(shù)據(jù)的,用官方的SDK的時(shí)候你可以這樣改一下:
$GLOBALS["HTTP_RAW_POST_DATA"] = file_get_contents("php://input", "r");
$notify = new PayNotifyCallBack();
$notify->Handle(false);
5.PC瀏覽器的支付寶用ios設(shè)備訪問的時(shí)候會(huì)彈出支付寶客戶端來支付,這樣是接收不到異步和同步通知的,所以需要判斷一下訪問設(shè)備是移動(dòng)端還是客戶端,如果是移動(dòng)端的話得用支付寶的wap方式來支付
6.財(cái)付通支付QQ瀏覽器支付一直參數(shù)錯(cuò)誤,還沒找到為什么。
提醒大家在使用OpenCart 開發(fā)支付寶,財(cái)付通,微信支付的時(shí)候,一定要細(xì)心