ecshop的担保交易,没有实现与支付宝里的同步发货这个功能。
从支付宝下载demo看到,确认收货需要一个支付宝交易号,现在ecshop里的支付宝付款是没有交易号的信息的字段,首先需要在付款的时候返回这个交易号的信息。
在order_info表里添加trade_no的字段 为支付宝交易号
ALTER TABLE `ecs_order_info` ADD COLUMN `trade_no` varchar(100) NOT NULL DEFAULT '' AFTER `pay_name`;
二、修改 admin/order.php 文件
1.查找以下代码
$smarty->assign('action_list', $act_list); $smarty->assign('delivery_order', $delivery_order); $smarty->assign('goods_list', $goods_list); $smarty->assign('delivery_id', $delivery_id); // 发货单id
2.代码之上添加以下代码
$alipay = false; $order = order_info($delivery_order['order_id']); //根据订单ID查询订单信息,返回数组$order $payment = payment_info($order['pay_id']); //取得支付方式信息 if($payment['pay_code'] == "alipay" && $delivery_order['status'] == 2 && !empty($order['trade_no'])) { $alipay = true; } $smarty->assign('alipay', $alipay);
传递order_sn 的值,来查询出对应的发货需要的信息。包括之前添加的trade_no,快递公司,单号以及物流类型。 例图1; 点击确认发货,form表单提交到alipayapi.php,
require_once("alipay.config.php"); require_once("lib/alipay_submit.class.php"); /**************************请求参数**************************/ //支付宝交易号 $trade_no = $_POST['WIDtrade_no']; //必填 //物流公司名称 $logistics_name = $_POST['WIDlogistics_name']; //必填 //物流发货单号 $invoice_no = $_POST['WIDinvoice_no']; //物流运输类型 $transport_type = $_POST['WIDtransport_type']; //三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS) /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array( "service" => "send_goods_confirm_by_platform", "partner" => trim($alipay_config['partner']), "trade_no" => $trade_no, "logistics_name" => $logistics_name, "invoice_no" => $invoice_no, "transport_type" => $transport_type, "_input_charset" => trim(strtolower($alipay_config['input_charset'])) ); //建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($parameter); //远程XML解析,是点击“发货”后,支付宝立刻反馈回来的信息。称作为:XML返回 //注意:由于低版本的PHP配置环境不支持远程XML解析,因此必须服务器、 //本地电脑中装有高版本的PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); //获取成功标识is_success $itemIs_success= $doc->getElementsByTagName( "is_success" ); $nodeIs_success = $itemIs_success->item(0)->nodeValue; //获取错误代码 error $itemError_code= $doc->getElementsByTagName( "error" ); $nodeError_code = $itemError_code->item(0)->nodeValue; //获取request节点下面的子节点信息:支付宝交易号、交易状态、操作时间等 $itemTrade_no = $doc->getElementsByTagName( "trade_no" ); $nodeTrade_no = $itemTrade_no->item(0)->nodeValue; $itemTrade_status = $doc->getElementsByTagName( "trade_status" ); $nodeTrade_status = $itemTrade_status->item(0)->nodeValue; $itemSend_time = $doc->getElementsByTagName( "last_modified_time" ); $nodeSend_time = $itemSend_time->item(0)->nodeValue; //获取tradeBase节点下面的子节点信息:商家网站唯一订单号 $itemOut_trade_no = $doc->getElementsByTagName( "out_trade_no" ); $nodeOut_trade_no = $itemOut_trade_no->item(0)->nodeValue;
最后把XML返回的信息解析就OK 了。
第 新青年摄影页
12 6月 2014这个不错 一个一个太繁琐
第 田伟coder页
17 6月 2014第 小清妈网赚博客页
13 6月 2014三分割据纡筹策,万古云霄一羽毛。
第 田伟coder页
17 6月 2014大湿。
第 妹子内涵图页
23 10月 2015过来支持一下 值得收藏分享
第 励志吧页
3 12月 2015不错 学习了!
第 传奇私服页
4 5月 2016传奇私服http://bbs.caipiaodian.com.cn/ 传奇私服网传奇论坛http://www.banshouseo.com/ GM论坛