校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 網站建設 > 建站知識 > 織夢CMS支付寶接口問題及解決辦法

織夢CMS支付寶接口問題及解決辦法

POST TIME:2020-03-28 16:39

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

在織夢模板系統上設置好了商家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@admin.com%22,2]webmaster@admin.com”,2[/url] => “[url=mailto:webmaster@admin.com%22,3]webmaster@admin.com”,3[/url] => “[url=mailto:webmaster@admin.com%22,4]webmaster@admin.com”,4[/url] => “[url=mailto:“webmaster@admin.com]webmaster@admin.com[/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′。

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

以下為織夢模板官方 木匠 給與的參考:

正常的 array[2] 才是,可能你只取了支付寶變成array[0]了。

logistics_fee => 0.00 應該被PHP認為是個空值了。

開始的時候logistics_fee默認是沒有的,后來可能弄上去了。

謝謝樓主提出該問題。



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 哈密市| 内黄县| 武平县| 丰县| 衡东县| 永登县| 罗城| 嘉义县| 桦南县| 咸阳市| 香港 | 滁州市| 连江县| 福海县| 钟祥市| 金坛市| 印江| 鄄城县| 固阳县| 保山市| 石景山区| 上虞市| 湛江市| 扶余县| 区。| 特克斯县| 昭苏县| 云霄县| 广州市| 开原市| 微山县| 太和县| 信阳市| 承德县| 宜宾县| 通江县| 康定县| 寿宁县| 临澧县| 安宁市| 岳池县|