iis服务器助手广告广告
返回顶部
首页 > 资讯 > CMS >ecshop支付宝自动发货接口用法示例
  • 960
分享到

ecshop支付宝自动发货接口用法示例

ecshop支付宝自动发货接口 2022-06-12 02:06:06 960人浏览 泡泡鱼
摘要

本文实例讲述了ecshop支付宝自动发货接口用法。分享给大家供大家参考,具体如下: 一、在数据库order_info中添加trade_no 字段 sql语句:复制代码代码如下:ALTER TABLE `ec_order_

本文实例讲述了ecshop支付宝自动发货接口用法。分享给大家供大家参考,具体如下:

一、在数据库order_info中添加trade_no 字段

sql语句:
复制代码代码如下:ALTER TABLE `ec_order_info` ADD COLUMN `trade_no` varchar(100) NOT NULL DEFAULT '' AFTER `pay_name`;

二、 修改includes/modules/payment/alipay.PHP文件

查找:
复制代码代码如下:$order_sn = trim($order_sn);

代码之下添加:
复制代码代码如下:$trade_no = trim($_GET['trade_no']);//获取支付宝交易号

查找:


复制代码代码如下:if ($_GET['trade_status'] == 'WaiT_SELLER_SEND_GoODS')

{

order_paid($order_sn, 2);

修改:


复制代码代码如下:if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS')

{

order_paid($order_sn, 2,'',$trade_no);

三、修改includes/lib_payment.php文件原文件118行开始


复制代码代码如下:

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, trade_no, 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'];

$trade = $order['trade_no'];

if (!emptyempty($trade))

{

$trade_no = $trade.",".$trade_no;

}

$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," .

" trade_no = '$trade_no',".//更新支付宝交易号

" order_amount = 0 ".

"WHERE order_id = '$order_id'";

$GLOBALS['db']->query($sql);

四、修改admin/order.php文件

查找:


复制代码代码如下:$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

代码之上添加:


复制代码代码如下:

$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 && !emptyempty($order['trade_no']))

{

$alipay = true;

}

$smarty->assign('alipay', $alipay);

五、修改admin\templates\delivery_info.htm文件

查找:
复制代码代码如下:<fORM action="order.php" method="post" name="theForm">

替换:


复制代码代码如下:<form {if $alipay}onSubmit="this.target='_blank';this.action='alipay_delivery.php';

this.submit();this.target='_self';this.action='order.php'"{else}action="order.php"{/if} method="post" name="theForm">

六、 上传alipay_delivery.php文件到admin 目录下.

希望本文所述对大家基于Ecshop程序设计有所帮助。

--结束END--

本文标题: ecshop支付宝自动发货接口用法示例

本文链接: https://www.lsjlt.com/news/32465.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作