结合msyql事务完美实现第三方退款接口示例
1.mysql的事务可以实现,要么事务块内代码全部执行,要么全部都不执行。如果都是自己写sql实现,是完全没有任何问题的。
2.如果要实现第三方支付的退款,比如微信支付订单,退款微信支付的金额,那么该怎么实现呢?代码如下
// 启动事务
Db::startTrans();
try {
//订单日志
$order_log['order_sn'] = time();
$order_log['action_user'] = '前台客户';
$order_log['action_note'] = '客户取消已付款订单,返还到账户余额';
$order_log['add_time'] = time();
$order_log['merchantkeynum'] = "3333";
$order_log['clientkeynum'] = "4444";
$log_id = Db::table( 'client_order_log' )->insertGetId( $order_log );
if(!$log_id){
throw new \Exception( 'insert log失败!');
}
//退款操作,如果退款失败,则回滚上面的sql
$rt=onecard_refund ("AE2C976E79ABBF1C8BAFB19A3A78723A");
if($rt['sta']!=1){
throw new \Exception( '调用扣款接口失败'.$rt['msg'] );
}
// 提交事务
Db::commit();
echo "成功!";
} catch ( \Exception $e ) {
// 回滚事务
Db::rollback();
echo "失败!". $e->getMessage();
}
版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。
本文链接:结合msyql事务完美实现第三方退款接口示例 - https://wziyi.com.cn/?post=274