ecshop的订单机制

最近在做ecshop的二次开发,由于需要在跳转到支付宝时要展示用户购买的各种商品,所以就将原来的alipay的支付文件修改了一下

目录 /include/module/payment/alipay.php

将168行改为

 

            subject           => $order[str]...订单号(.$order[order_sn].),

其中$order[str]是从flow.php传过来的用户购买的信息。

 

原来的170行代码

 

out_trade_no      => $order[order_sn] . $order[log_id],

这个记录了订单号,后面加了一个log_id。这个在开始的时候就感觉是有用的,但是不知道会用在那边,所以

 

当时没有在意。

等一切改完了。测试发现支付宝支付成功后,后台并没有更新订单状态,

这个时候突然想到肯定是178行的那个代码出的错误,

果然看了后面的respond里面有一段

在第217行左右

 

$order_sn = str_replace($_GET[subject], , $_GET[out_trade_no]);

 

通过这个替换来取得$order_sn

然后先更新pay_log数据表再去更新order表,所以把上面改了之后导致这边更新pay_log失败。

解决办法

将217这行代码改为

 

$order_sn=substr($_GET[out_trade_no], 13);

ecshop的订单机制是当前年月日加5位随机数,也就是固定的13位数字,所以可以使用这个方法来获取pay_log的id

 

到这问题解决了。

本文来自303Blog,欢迎转载,但请保留链接http://www.303blog.org

转载于:https://www.cnblogs.com/swymjt/archive/2012/08/15/2639535.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值