ECSHOP支付宝发货确认接口 时间:2013-10-17来源:模板堂 作者:模板堂 文章热度:
215
℃ ECSHOP 2.71为了支付宝发货确认接口,需要记录支付宝返回的交易号 1,在order_info 数据表尾添加trade_no 字段 2,在alipay.php文件的约202行 /** * 响应操作 */ function respond() { if (!empty($_POST)) { foreach($_POST as $key => $data) { $_GET[$key] = $data; } } $payment = get_payment($_GET['code']); $seller_email = rawurldecode($_GET['seller_email']); $order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']); $order_sn = trim($order_sn); /*自定义--------------获取支付宝交易号*/ $trade_no = trim($_GET['trade_no']); /* 自定义---end */ /* 检查支付的金额是否相符 */ if (!check_money($order_sn, $_GET['total_fee'])) { return false; } 。。。。。省略下面接 250行处 if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') { /* 改变订单状态 */ order_paid($order_sn, 2,'',$trade_no); return true; } ........................省略 在lib_payment.php里面约119行 /** * 修改订单的支付状态 * * @access public * @param string $log_id 支付编号 * @param integer $pay_status 状态 * @param string $note 备注 * @param string $trade_no 自定义---支付宝交易号 * @return void */ function order_paid($log_id, $pay_status = PS_PAYED, $note = '' ,$trade_no = '') { /* 取得支付编号 */ $log_id = intval($log_id); if ($log_id > 0) { /* 取得要修改的支付记录信息 */ $sql = "SELECT * FROM " . $GLOBALS['ecs']->table('pay_log') . " WHERE log_id = '$log_id'"; $pay_log = $GLOBALS['db']->getRow($sql); if ($pay_log && $pay_log['is_paid'] == 0) { /* 修改此次支付操作的状态为已付款 */ $sql = 'UPDATE ' . $GLOBALS['ecs']->table('pay_log') . " SET is_paid = '1' WHERE log_id = '$log_id'"; $GLOBALS['db']->query($sql); /* 根据记录类型做相应处理 */ if ($pay_log['order_type'] == PAY_ORDER) { /* 取得订单信息 */ $sql = 'SELECT order_id, user_id, order_sn, consignee, address, tel, shipping_id, extension_code, extension_id, goods_amount ' . 'FROM ' . $GLOBALS['ecs']->table('order_info') . " WHERE order_id = '$pay_log[order_id]'"; $order = $GLOBALS['db']->getRow($sql); $order_id = $order['order_id']; $order_sn = $order['order_sn']; /* 修改订单状态为已付款 */ $sql = 'UPDATE ' . $GLOBALS['ecs']->table('order_info') . " SET order_status = '" . OS_CONFIRMED . "', " . " confirm_time = '" . gmtime() . "', " . " pay_status = '$pay_status', " . " pay_time = '".gmtime()."', " . " money_paid = order_amount," . " order_amount = 0,". " trade_no = '$trade_no'"./*自定义---添加支付宝交易号*/ "WHERE order_id = '$order_id'"; $GLOBALS['db']->query($sql); /* 记录订单操作记录 */ 就能记录交易号! 以下是后台文件修改: 1.复制附件文件queren_fahuo.php到admin目录下;(注意编码和支付宝接口方式) 2.修改admin\templates\delivery_info.htm文件; 第8行左右: <div class="list-div" style="margin-bottom: 5px"> <table width="100%" cellpadding="3" cellspacing="1"> <form action="order.php" method="post" name="theForm"> <tr> <th colspan="4">{$lang.base_info}</th> </tr>。。。。 修改为: |
|