最土团购支付成功但显示未付款

本文讨论了在团购支付过程中遇到的问题,即数据清理导致的PAY和order数据表错误,进而生成重复性订单,从而影响支付流程。提出了解决方案,通过在order表中插入远大于现有ID的值来避开重复ID区间。同时,强调了避免PAY表操作以防止数据报错,并建议对于已产生的未付款订单,最好不进行删除和支付操作,以防止再次产生重复订单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模版切断
${mb_strimwidth($one['title'],0,86,'...')}


<!--{if trim(strip_tags($team['userreview']))}-->

资金流动信息表flow

橙券消费券 coupon
user
pay
team
/**************************************************************/
订单表`order`
id       2935


pay_id   go-2935-1-uslx
$randid = strtolower(Utility::GenSecret(4, Utility::CHAR_WORD));
$pay_id = "go-{$order['id']}-{$order['quantity']}-{$randid}";


buy_id   2(项目203已购买人数,到现在为止)
team_id  203
state    pay/unpay


static public function CreateFromCharge($money,$user_id,$time,$service='alipay'){
global $option_service;
if (!$money || !$user_id || !$time) return 0;
$pay_id = "charge-{$user_id}-{$time}";
$pay = Table::Fetch('pay', $pay_id);
if ( $pay ) return 0;
$order_id = ZOrder::CreateFromCharge($money,$user_id,$time,$service);
if (!$order_id) return 0;


//insert pay record
$pay = array(
'id' => $pay_id,
'order_id' => $order_id,
'bank' => $option_service[$service],
'currency' => 'CNY',
'money' => $money,
'service' => $service,
'create_time' => $time,
);
DB::Insert('pay', $pay);
ZCredit::Charge($user_id, $money);
//end//


//update user money;
$user = Table::Fetch('user', $user_id);
Table::UpdateCache('user', $user_id, array(
'money' => array( "money + {$money}" ),
));


$u = array(
'user_id' => $user_id,
'admin_id' => 0,
'money' => $money,
'direction' => 'income',
'action' => 'charge',
'detail_id' => $pay_id,
'create_time' => $time,
);
return DB::Insert('flow', $u);
}
/**************************************************************/


/**************************************************************/
最土团购支付成功但显示未付款
问题原因,由于在4月份的时候在数据做过一次清理,造成PAY和order数据表错误,进而系统生成重复性订单故无法正常完成支付。
解决办法。在order表后插入一个远远大于现有订单的ID,比如现在ID为8000,插入一个10000的ID,避开生成重复性ID区间。
 
PAY表操作可能会造成数据报错。请尽量避免。
PS:之前产生的ID没付款的也最好不要删除和支付,以免再次产生重复。
/**************************************************************/









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值