多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > DedeCMS > dedecms支付寶接口問題及解決方法

dedecms支付寶接口問題及解決方法

來源:程序員人生   發布時間:2014-01-20 20:53:10 閱讀次數:3924次

我的情況: 系統只集成了支付寶。其他情況可能會有不同的及我國,呵呵,這里只把我遇到的問題進行分享

在DEDECMS系統上設置好了商家ID、密鑰、支付寶郵箱之后,理論上應該是直接可以用了,但是我還是遇到了問題

首先就來了一個ILLEGAL_ARGUMENT錯誤。

經過分析post出去的url地址,發現商家ID、密鑰、支付寶郵箱都加載錯誤。經過分析應該是數據加載錯誤。于是分析data目錄下的sys_pay.cache.php文件:
$payment_select = array(0 => “tenpay”,2 => “alipay”,3 => “cbpayment”,4 => “yeepay”);
$payment_userid = array(0 => “********“,1 => “”,2 => “”,3 => “”,4 => “”);
$payment_key = array(0 => “*********“,1 => “”,2 => “”,3 => “”,4 => “”);
$payment_curpay = array(0 => ‘CNY’,1 => ‘CNY’,2 => ‘CNY’,3 => ‘CNY’,4 => ‘CNY’);
$payment_exp = array(0 => “0.01″,1 => “0.00″,2 => “0.01″,3 => “0.01″,4 => “0.00″);
$payment_email = array(0 => “[url=mailto:*******@a.com%22,1]*******@*****.com“,1[/url] => “[url=mailto:webmaster@liehuo.net%22,2]webmaster@liehuo.net”,2[/url] => “[url=mailto:webmaster@liehuo.net%22,3]webmaster@liehuo.net”,3[/url] => “[url=mailto:webmaster@liehuo.net%22,4]webmaster@liehuo.net”,4[/url] => “[url=mailto:“webmaster@liehuo.net]webmaster@liehuo.net[/url]“);

如紅色字所示,這是應該傳遞的三個直接跟支付寶相關的數據,而他們在數組中的位置為0,也就是array[0]位置。

再來看支付寶接口下的alipay_config.php文件
<?php
$partner = $payment_userid[2];
$security_code  = $payment_key[2];
$seller_email  = $payment_email[2];//賣家郵箱
$_input_charset = $cfg_soft_lang; //字符編碼格式  目前支持 GBK 或 utf-8
$sign_type = “MD5″; //加密方式  系統默認(不要修改)
$transport = “http”;//訪問模式,你可以根據自己的服務器是否支持ssl訪問而選擇http以及https訪問模式(系統默認,不要修改)
$notify_url = $cfg_basehost.”/member/paycenter/alipay/notify_url.php”;// 異步返回地址 需要填寫完整的路徑
$return_url = $cfg_basehost.”/member/paycenter/alipay/return_url.php”; //同步返回地址  需要填寫完整大額路徑
$show_url = “”  //你網站商品的展示地址,可以為空
?>

如上紅色字所示,而他的位置為array[2],所以加載數據必定錯誤。(我這是只有支付寶接口的情況,其他情況照此分析即可),將上面的2改為0,數據加載問題解決。

但是,支付寶接口還是不成功。這次提示的錯誤為:ILLEGAL_LOGISTICS_FORMAT
查支付寶文檔,這是由于物流相關問題造成。

經過再次查看url,分析后發現url中缺少了一個參數叫“logistics_fee”。怎么辦呢?原來還有一個支付寶的配置文件,在member/inc/下的config_pay_alipay.php。打開文件:
“service” => “trade_create_by_buyer“, //交易類型,必填實物交易=trade_create_by_buyer(需要填寫物流)
“partner” => $partner,            //合作商戶號
“return_url” => $return_url,  //同步返回
“notify_url” => $notify_url,  //異步返回
“_input_charset” => $_input_charset,          //字符集,默認為GBK
“subject” => $ptype,                          //商品名稱,必填
“body” => $pname,                             //商品描述,必填
“out_trade_no” => $buyid,                     //商品外部交易號,必填,每次測試都須修改
logistics_fee” => 0.00,                      //物流配送費用
logistics_payment”=>’BUYER_PAY’,             // 物流配送費用付款方式:SELLER_PAY(賣家支付)、BUYER_PAY(買家支付)、BUYER_PAY_AFTER_RECEIVE(貨到付款)
logistics_type”=>’EXPRESS’,                  // 物流配送方式:POST(平郵)、EMS(EMS)、EXPRESS(其他快遞)

這里交易類型為實物交易,trade_create_by_buyer,下面三個紅色字部分就是物流信息部分,而不顯示的就是logistics_fee” => 0.00。

解決辦法:只要將后面的0.00加上單引號,問題就解決了,也就是改成logistics_fee” => '0.00′。

解決之后,順利通過。購買點卡成功。

以下為DEDECMS官方 木匠 給與的參考:

正常的 array[2] 才是,可能你只取了支付寶變成array[0]了。
logistics_fee => 0.00 應該被PHP認為是個空值了。
開始的時候logistics_fee默認是沒有的,后來可能弄上去了。
謝謝樓主提出該問題。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 中文字幕在线观看免费视频 | www.亚洲天堂| 一区二区三区在线播放 | 久久精品视频一区二区三区 | 欧美精品亚洲精品日韩专区va | 亚洲欧美成人综合在线 | 手机看片福利日韩欧美看片 | 免费观看无遮挡www的小视频 | 欧美国产日韩1区俺去了 | 最近中文字幕mv在线高清 | 真实男女xx00动态视频 | 国产一级一级一级成人毛片 | 黄色毛片播放 | 亚洲97在线 | 午夜视频啪啪 | 亚洲精品福利在线 | 看片久久 | 亚洲黄色三级视频 | 午夜 在线播放 | 亚洲国产精品第一区二区三区 | 亚洲综合久久综合激情久久 | 国内一级一级毛片a免费 | 国产高清一 | 欧美a一片xxxx片 | 伊人情人综合网 | 亚洲国产成人久久 | 久久.com| 欧美freesex10一13| 秋霞一级特黄真人毛片 | 欧美视频福利 | 自拍视频一区二区 | 欧美一级精品高清在线观看 | 欧美一区二区二区 | 亚洲国产片 | 亚洲18卡通动漫在线播放 | yellow中文字幕官网是 | 欧美日韩你懂的 | 欧美激情亚洲一区中文字幕 | 亚洲永久在线 | 亚洲精品国产一区二区三区在 | 老司机午夜免费福利 |