verify(); $name="payment/$type/{$order_no}"; user_log($name,compact('type','order_no','data')); Db::startTrans(); $payment=\app\common\model\Payment::where('order_no',$order_no)->lock(true)->find(); if(!$payment){ user_log($name,"支付没找到"); Db::rollback(); return 'success'; } if($payment['pay_time']){ user_log($name,"支付已支付"); Db::rollback(); return 'success'; } $payment['pay_time']=time(); if(!$payment->save()){ user_log($name,"支付保存失败"); Db::rollback(); return '支付保存失败'; } Db::commit(); Db::startTrans(); $mobileOrder=MobileOrder::where('id',$payment['mobile_order_id'])->find(); if(!$mobileOrder){ user_log($name,"手机订单不存在"); Db::rollback(); return 'success'; } if($mobileOrder['pay_time']){ user_log($name,"手机订单已支付"); Db::rollback(); return 'success'; } $mobileOrder['status']=MobileOrder::STATUS_WAIT_SEND; $mobileOrder['pay_time']=$payment['pay_time']; if($type=='wechat'){ $mobileOrder['pay_type']=1; $mobileOrder['pay_no']=$data['transaction_id']; }else{ $mobileOrder['pay_type']=2; $mobileOrder['pay_no']=$data['trade_no']; } $mobileOrder['payment_id']=$payment['id']; if(!$mobileOrder->save()){ user_log($name,"手机订单保存失败"); Db::rollback(); return '手机订单保存失败'; } Db::commit(); //你可以在这里你的业务处理逻辑,比如处理你的订单状态、给会员加余额等等功能 //下面这句必须要执行,且在此之前不能有任何输出 echo "success"; return; } /** * 支付成功回调 */ public function notify_jd($order_no) { $name="pay/jd/{$order_no}"; user_log($name,compact('type','order_no')); user_log($name,compact('type','order_no','data')); Db::startTrans(); $payment=\app\common\model\Payment::where('order_no',$order_no)->lock(true)->find(); if(!$payment){ user_log($name,"支付没找到"); Db::rollback(); return '支付没找到'; } if($payment['pay_time']){ user_log($name,"支付已支付"); Db::rollback(); return '支付已支付'; } $payment['pay_time']=time(); if(!$payment->save()){ user_log($name,"支付保存失败"); Db::rollback(); return '支付保存失败'; } Db::commit(); Db::startTrans(); $mobileOrder=MobileOrder::where('id',$payment['mobile_order_id'])->find(); if(!$mobileOrder){ user_log($name,"手机订单不存在"); Db::rollback(); return '手机订单不存在'; } if($mobileOrder['pay_time']){ user_log($name,"手机订单已支付"); Db::rollback(); return '手机订单已支付'; } $mobileOrder['status']=MobileOrder::STATUS_WAIT_SEND; $mobileOrder['pay_type']=3; $mobileOrder['pay_time']=$payment['pay_time']; $mobileOrder['payment_id']=$payment['id']; if(!$mobileOrder->save()){ user_log($name,"手机订单保存失败"); Db::rollback(); return '手机订单保存失败'; } Db::commit(); //你可以在这里你的业务处理逻辑,比如处理你的订单状态、给会员加余额等等功能 //下面这句必须要执行,且在此之前不能有任何输出 return 'success'; } public function refund_url($type,$order){ } }