的情况: 系统只集成了支付宝。其他情况可能会有不同的及我国,呵呵,这里只把我遇到的问题进行分享
在Dedecms系统上设置好了商家ID、密钥、支付宝邮箱之后,理论上应该是直接可以用了,但是我还是遇到了问题
$payment_select = array(0 => “tenpay”,2 => “alipay”,3 => “cbpayment”,4 => “yeepay”);
$payment_userid = array(0 => “********“,1 => “”,2 => “”,3 => “”,4 => “”);
$payment_key = array(0 => “*********“,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]位置。
$partner = $payment_userid[2];
$security_code = $payment_key[2];
$seller_email = $payment_email[2];//卖家邮箱
$_input_charset = $cfg_soft_lang; //字符编码格式 目前支持 GBK 或 utf-8
$notify_url = $cfg_basehost.”/member/paycenter/alipay/notify_url.PHP”;// 异步返回地址 需要填写完整的路径
$return_url = $cfg_basehost.”/member/paycenter/alipay/return_url.PHP”; //同步返回地址 需要填写完整大额路径
$show_url = “” //你网站商品的展示地址,可以为空
?>
查支付宝文档,这是由于物流相关问题造成。
经过再次查看url,分析后发现url中缺少了一个参数叫“logistics_fee”。怎么办呢?原来还有一个支付宝的配置文件,在member/inc/下的config_pay_alipay.PHP。打开文件:
“partner” => $partner, //合作商户号
“return_url” => $return_url, //同步返回
“notify_url” => $notify_url, //异步返回
“_input_charset” => $_input_charset, //字符集,默认为GBK
“subject” => $ptype, //商品名称,必填
“body” => $pname, //商品描述,必填
“logistics_fee” => 0.00, //物流配送费用
“logistics_payment”=>’BUYER_PAY’, // 物流配送费用付款方式:SELLER_PAY(卖家支付)、BUYER_PAY(买家支付)、BUYER_PAY_AFTER_RECEIVE(货到付款)
“logistics_type”=>’EXPRESS’, // 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)
解决之后,顺利通过。购买点卡成功。
以下为Dedecms官方 木匠 给与的参考: