$state = &db_trans_start();
$this->orders_service->model->update_order(array('status'=>90,'changed'=>time()),array('oid'=>$oid)); //订单状态为90
//如果未开启事务,这里如果发生错误(比如出现一个未定义变量),将会导致订单状态改变了,但是下面的余额操作没有了
$thisservice->change_fund($order->uid, $order->totalprice*100, 'add'); //退款余额增加
$this->service->model->log_fund_record($order->totalprice*100, $order->uid, 'add', array('action'=>'refund', 'oid'=>$order->oid)); //记录退款
if(db_trans_complete($state)) {
//ok
}
本文介绍了一种使用事务处理确保退款流程中订单状态更新与用户余额调整一致性的方法。通过开始事务,在更新订单状态后,确保能够顺利完成退款余额增加及记录退款日志,最后完成事务,确保所有操作要么全部成功,要么全部失败。
1077

被折叠的 条评论
为什么被折叠?



