ecshop担保交易实现同步发货

ecshop的担保交易,没有实现与支付宝里的同步发货这个功能。

从支付宝下载demo看到,确认收货需要一个支付宝交易号,现在ecshop里的支付宝付款是没有交易号的信息的字段,首先需要在付款的时候返回这个交易号的信息。

QQ截图20140611112909

在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);

 QQ图片20140611115454 
传递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 了。

这篇文章有 11 个评论

  1. 传奇私服http://bbs.caipiaodian.com.cn/ 传奇私服网传奇论坛http://www.banshouseo.com/ GM论坛

  2. 这个更刺c激,准备好手纸哦 A 片。。 288d.pw

  3. 这个更C刺j激,准备好手纸哦 A 片。HTTp://T.Cn/Rc4PF3o

  4. 这个更C刺j激,准备好手纸哦 A 片。HTTp://T.Cn/Rc4PF3o

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

关闭菜单