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

这篇具有很好参考价值的文章主要介绍了ecshop支付宝自动发货接口用法示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文实例讲述了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行开始

复制代码
代码如下:
/**
* 修改订单的支付状态
*
* @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, 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文件

查找:

复制代码
代码如下:

替换:

复制代码
代码如下:
this.submit();this.target='_self';this.action='order.php'"{else}action="order.php"{/if} method="post" name="theForm">

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

希望本文所述对大家基于Ecshop程序设计有所帮助。文章来源地址https://www.toymoban.com/news/detail-423246.html

到了这里,关于ecshop支付宝自动发货接口用法示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ecshop支付宝前台付款而后台不显示已付款的解决方法

    本文实例讲述了Ecshop支付宝前台付款而后台不显示已付款的解决方法。分享给大家供大家参考,具体如下: 客户最近反映在支付宝付款之后,后台订单却显示未付款,着实让ecshop商家很头疼,现在ECSHOP开发中心总结下如何处理这样的问题. 网站根目录下respond.php,在文件中搜索:

    2023年04月23日
    浏览(29)
  • Ecshop实现支付时传送商品订单号和商品名称的方法

    本文实例讲述了Ecshop实现支付时传送商品订单号和商品名称的方法。分享给大家供大家参考,具体如下: ecshop支付时传送商品订单号和商品名称,支付传递商品名称到支付平台 ecshop paypal付款如何传商品名称,这里给大家分享一下: 1、找到themesfefaultflow.dwt 找到商品列表代码 复

    2023年04月23日
    浏览(82)
  • python自动化测试(四):ECShop后台:商品分类添加

    前置条件: 本地部署:ECShop的版本是3.0.0、Google版本是 Google Chrome 65.0.3325.162 (正式版本) (32 位)  Google驱动的selenium版本是3.11.0 目录 前置代码 一、登录(后台登录) 二、进入商品分类页面 三、子页面 四、返回父级/最外层页面 五、点击添加分类按钮 六、输入分类 6.1 输

    2024年02月08日
    浏览(32)
  • ECSHOP模板系统控制标签使用介绍

    ECSHOP模板系统控制标签介绍说明,本文将为您介绍ecshop中基本的控制函数标签的使用参数和方法,其中包括if标签、foreach标签、for标签等,其实Smarty 中的 if 语句和 php 中的 if 语句一样灵活易用,并增加了几个特性以适宜模板引擎, if必须于/if 成对出现. 可以使用 else 和 els

    2023年04月16日
    浏览(28)
  • ECSHOP模版系统显示标签使用介绍

    ECSHOP模版系统中显示标签主要是转换HTML代码,该特性使得在表格中交替输出颜色或轮转使用数组中的值变得很容易,或者是根据给定的数据创建选项组,创建日期下拉菜单,它可以显示任意年月日。亦或者是根据给定的数据创建单选按钮组等,本文就给大家讲解一下ECSHOP模版

    2023年04月16日
    浏览(33)
  • ecshop配送方式和对应的文件整理

    ecshop配送方式的文件路径在includesmodulespayment 语言包在languageszh_cnshipping 里面的文件和中文名称的对应是: 上门取货 cac.php  城际快递 city_express.php EMS 国内邮政特快专递 ems.php 市内快递 flat.php 运费到付 fpd.php 邮政快递包裹 post_express.php 邮局平邮 post_mail.php 邮政挂号印刷品

    2023年04月16日
    浏览(31)
  • ECSHOP模板系统变量调节标签使用说明

    ECSHOP作为国内使用最多的网上商城系统,却没有一个很好的API手册,着实比较让我们费心,要想查找一个函数的功能,只能通过查看其程序的源代码才可以知道有什么功能,官方的手册也不全面,很多东西都没有编写完成,可能作者已经不想在维护这个程序了,ECSHOP的版本也

    2023年04月16日
    浏览(44)
  • 在ECSHOP的商品列表调用评论数量的方法

    ECSHOP的商品列表页如果能显示相对应的评论数,那就更好了,我们也可以添加一些浏览次数,这样商品的列表看起来就更加丰富了,今天我们就给大家来讲解一下如何在ECSHOP的商品列表调用评论数量,需要修改系统文件,修改之前请备份相关文件。 修改分类文件 修改categor

    2023年04月16日
    浏览(71)
  • 分享几个Ecshop中二次开发的常见方法

    收货人信息的省市区设成非必选项 一般面向国外用户的ECSHOP商城,可能会有这方面的需求:【将Ecshop中收货人信息的省市区设成非必选项】,其实也就是只留一个“请选择国家”的下拉选择框。 修改相关JS文件 打开 /js/shopping_flow.js 文件,将下面JS代码删除掉 JavaScript Code 复制

    2023年04月16日
    浏览(25)
  • ECSHOP模版系统Assign和Include模版标签使用介绍

    ECSHOP模版系统Assign和Include模版标签介绍,assign 用于在模板被执行时为模板变量赋值,Include 标签用于在当前模板中包含其它模板. 当前模板中的变量在被包含的模板中可用。 必须指定 file 属性,该属性指明模板资源的位置。如果设置了 assign 属性,该属性对应的变量名用于保

    2023年04月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包