文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-12 02:17

关注

本文实例讲述了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程序设计有所帮助。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-开源
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯