织梦CMS支付宝接口问题及解决办法

织梦CMS支付宝接口问题及解决办法

我的情况: 系统只集成了支付宝。其他情况可能会有不同的及我国,呵呵,这里只把我遇到的问题进行分享

织梦模板系统上设置好了商家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默认是没有的,后来可能弄上去了。

谢谢楼主提出该问题。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

大家在使用织梦的时候,用到会员中心可能涉及到多二级域名同步登录退出的问题,涉及到跨域,那么这个问题该如何解决呢?在一个技术大牛博客看到过此教程,特此转发分享给大家,解决大家问题。 首先打开 \include\dedeajax2.js 找到 DedeXHTTP = new XMLHttpR
使用织梦默认的搜索功能时,发现搜索某一关键词时,搜索展示页面样式错乱了。经过排查,确定是关键词标红引起的。 出现此问题的原因: 织梦搜索页面会将搜索关键词进行标红(字体颜色改为红色)处理。在代码中体现出来就是将关键词文字替换为套上font标签的
在使用织梦dedecms做网站时,有时在同一样栏目下多个文章,当前文章下希望显示出自己样式。 {dede:arclist typeid=1 row=8 currentstyle=li class=ona href=~arcurl~~title~/a /li} lia href=[field:arcurl/][field:title/]/a/li {/dede:arclist} 怎么二次开
直接在include/helpers/extends.helps.php 最下面加个函数: if ( ! function_exists(getlink)) { function getlink($dedetag){ //获得链接 $tmp = preg_split(/{*}/,$dedetag,-1,PREG_SPLIT_DELIM_CAPTURE);return substr($tmp[1],0,-11);} }页面调用:{dede
制作产品图集多图效果的时候,常常需要获取图集第一张图片的功能,假设获取的是缩略图,那么缩略图不够大的情况下,第一展示效果就会很差,下面来介绍下如何获取调用织梦图集第一张图片的方法: 首先在 include 文件夹最下面的 extend.func.php 后面添加以下
使用DEDECMS建网站后,经常会出现网站打开和打开后台速度很慢,DEDE网站的打开速度慢分为以下几种:网站首页打开慢,网站内页打开慢……