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

织梦dedeCMS支付宝接口问题及解决办法,第1张

概述我的情况: 织梦dedecms系统只集成了支付宝。其他情况可能会有不同的及我国,呵呵,这里只把我遇到的问题进行分享。 在织梦dedecms系统上设置好了商家ID、密钥、支付宝邮箱之后,理论上应该是直接可以用了,但是我还是遇到了问题 。 首先就来了一个ILLEGAL_A 我的情况: 织梦dedecms系统只集成了支付宝。其他情况可能会有不同的及我国,呵呵,这里只把我遇到的问题进行分享。   在织梦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 => “*********“,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:[email protected]%22,2][email protected]”,2[/url] => “[url=mailto:[email protected]%22,3][email protected]”,3[/url] => “[url=mailto:[email protected]%22,4][email protected]”,4[/url] => “[url=mailto:“[email protected]][email protected][/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默认是没有的,后来可能弄上去了。   谢谢楼主提出该问题。

上一篇:dedecms织梦tag彩色关键字:彩色标签

下一篇:DedeCMS系统参数设置手册之会员设置

总结

以上是内存溢出为你收集整理的织梦dedeCMS支付宝接口问题及解决办法全部内容,希望文章能够帮你解决织梦dedeCMS支付宝接口问题及解决办法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/1036598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存