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

影子依旧可以相亲相爱。哪一块骨骼最温暖,总能一击即中。

ecshop的订单机制

相关文章:

你感兴趣的文章:

标签云: