where('id',$data['order_id'])->find(); if(!$orderInfo['pay_status']){ $out_trade_no = $pay->createOutTradeNo($data['member_id']); $order_no = $this->createOrderNo($data['site_id'], $data['member_id']); try { $order_money=$data['pay_money']; $pay_body='小程序注册'; $orderInfo->save(['out_trade_no'=>$out_trade_no]); $pay->addPay($data['site_id'], $out_trade_no,'', $pay_body, $pay_body, $order_money, '', 'ApplyOrderPayNotify', ''); return $this->success($out_trade_no); } catch (\Exception $e) { return $this->error('', $e->getMessage()); } }else{ return $this->error('订单已支付'); } } /*** * 创建充值订单 * @param $pay_money * @param $member_id * @return array|mixed|string|void */ public function rechargeOrderCreate($pay_money,$member_id,$site_id){ $pay = new Pay(); $order_name='SAAS应用充值'; $pay_type='wechatpay';//支付方式 $app_type='pc'; //扫码支付 $out_trade_no = $pay->createOutTradeNo($member_id); $pay_detail= $site_id.'_'.$member_id; $order_id=$pay->addPay(1, $out_trade_no, $pay_type, $order_name, $pay_detail, $pay_money, '', 'SaasRechargeOrderPayNotify', '',''); $order_data = array(); $order_data['site_id'] = 1; $order_data['order_id'] = $order_id; $order_data['type'] = 'saas'; $order_data['third_order_id'] = $out_trade_no; $order_data['cloud_account'] = $site_id; $order_data['goods_name'] = $order_name; $order_data['pay_type'] = $pay_type; $order_data['create_time'] = time(); $order_data['money'] =$pay_money; $insert = Db::name('cloud_order')->insert($order_data); $notify_url = addon_url("pay/pay/notify/paytype/".$pay_type.'/app_type/'.$app_type.'/site_id/1'); $return_url = addon_url("pay/pay/payreturn", ['out_trade_no' => $out_trade_no, 'app_type' => $app_type]); $data[ 'site_id' ] = 1; $data[ 'out_trade_no' ] = $out_trade_no; $data[ 'pay_money' ] = $pay_money; $data[ 'app_type' ] = $app_type; $data[ 'pay_body' ] = $order_name; $data[ 'notify_url' ] = $notify_url; $data[ 'return_url' ] = $return_url; $data[ 'pay_type' ] = $pay_type; $data[ "member_id" ] = $member_id; $data[ "is_matched" ] = 0; $res = event('Pay', $data, true); $res['data']['out_trade_no']=$out_trade_no; return $res; } /*** * 套餐购买 * @param $pay_money * @param $member_id * @param $site_id * @param $agnet_site_id */ public function saasOrderCreate($pay_money,$member_id,$site_id,$agnet_site_id){ $pay = new Pay(); $order_name='SAAS套餐购买'; $pay_type='wechatpay';//支付方式 $app_type='pc'; //扫码支付 $out_trade_no = $pay->createOutTradeNo($member_id); $pay_detail= $site_id.'_'.$member_id; $order_id=$pay->addPay($agnet_site_id, $out_trade_no, $pay_type, $order_name, $pay_detail, $pay_money, '', 'SaasOrderPayNotify', '',''); $order_data = array(); $order_data['site_id'] = $agnet_site_id; $order_data['order_id'] = $order_id; $order_data['type'] = 'saas'; $order_data['third_order_id'] = $out_trade_no; $order_data['cloud_account'] = $site_id; $order_data['goods_name'] = $order_name; $order_data['pay_type'] = $pay_type; $order_data['create_time'] = time(); $order_data['money'] =$pay_money; $insert = Db::name('cloud_order')->insert($order_data); $notify_url = addon_url("pay/pay/notify/paytype/".$pay_type.'/app_type/'.$app_type.'/site_id/1'); $return_url = addon_url("pay/pay/payreturn", ['out_trade_no' => $out_trade_no, 'app_type' => $app_type]); $data[ 'site_id' ] = 1; $data[ 'out_trade_no' ] = $out_trade_no; $data[ 'pay_money' ] = $pay_money; $data[ 'app_type' ] = $app_type; $data[ 'pay_body' ] = $order_name; $data[ 'notify_url' ] = $notify_url; $data[ 'return_url' ] = $return_url; $data[ 'pay_type' ] = $pay_type; $data[ "member_id" ] = $member_id; $data[ "is_matched" ] = 0; $res = event('Pay', $data, true); $res['data']['out_trade_no']=$out_trade_no; return $res; } /** * 生成订单编号 * * @param array $site_id */ public function createOrderNo($site_id, $member_id = 0) { $time_str = date('YmdHis'); $max_no = Cache::handler()->incr($site_id . "_" . $member_id . "_" . $time_str,1); Cache::handler()->expire($site_id . "_" . $member_id . "_" . $time_str,120); $order_no = $time_str . $member_id . sprintf("%03d", $max_no); return $order_no; } }