params[ 'out_trade_no' ] ?? ''; $promotion = !empty($this->params[ 'promotion' ]) ? json_decode($this->params[ 'promotion' ], true) : []; $data = array ( 'pay_type' => $this->params[ 'pay_type' ] ?? '', 'site_id' => $this->site_id,//站点id 'out_trade_no' => $out_trade_no, 'store_id' => $this->store_id ?? 0, 'promotion' => $promotion, 'member_id' => $this->params[ 'member_id' ], 'cash' => $this->params[ 'cash' ] ?? 0 ); $cashier_order_calculate_model = new CashierOrderCalculate(); $result = $cashier_order_calculate_model->calculate($data); //记录缓存(操作记录保存) $cashier_order_pay_model = new CashierOrderPay(); $cashier_order_pay_model->setCache($out_trade_no, [ 'promotion' => $promotion, 'member_id' => $this->params[ 'member_id' ] ?? 0 ]); return $this->response($result); } /** * 订单支付 */ public function confirm() { $out_trade_no = $this->params[ 'out_trade_no' ] ?? ''; $promotion = !empty($this->params[ 'promotion' ]) ? json_decode($this->params[ 'promotion' ], true) : []; $cashier_order_pay_model = new CashierOrderPay(); $data = array ( 'pay_type' => $this->params[ 'pay_type' ] ?? '', 'site_id' => $this->site_id,//站点id 'out_trade_no' => $out_trade_no, 'store_id' => $this->store_id ?? 0, 'promotion' => $promotion, 'member_id' => $this->params[ 'member_id' ], 'cash' => $this->params[ 'cash' ] ?? 0 ); $result = $cashier_order_pay_model->confirm($data); if(!empty($result['data'])){ if($result['data']['data']['cashier_order_type'] == 'recharge'){ // $this->joinyuelog($result['data']['data']['member_id'],$result['data']['data']['order_money'],$result['data']['data']['store_id']); $membermodel = new MemberModel(); $mDetail = $membermodel->getMemberDetail($result['data']['data']['member_id'],$this->site_id); if($mDetail['data']['store_id'] == 0){ model('member')->update([ 'store_id' =>$result['data']['data']['store_id'] ], [ 'member_id' => $result['data']['data']['member_id'] ]); }; } } return $this->response($result); } public function joinyuelog($member_id,$adjust_num,$store_id){ $remark = input('remark', '商家调整'); $this->addLog("会员余额调整id:" . $member_id . "金额" . $adjust_num); $member_account_model = new MemberAccountModel(); return $member_account_model->addMemberAccountnew($this->site_id, $member_id, 'balance', $adjust_num, 'adjust', 0, $remark ? $remark : '商家调整',0,$store_id); } /** * 支付信息 * @return false|string */ public function info() { $out_trade_no = $this->params[ 'out_trade_no' ]; $pay = new PayModel(); $info = $pay->getPayInfo($out_trade_no); return $this->response($info); } /** * 生成支付二维码 */ public function payQrcode() { $out_trade_no = $this->params[ 'out_trade_no' ]; $cashier_order_pay_model = new CashierOrderPay(); $data = array ( 'site_id' => $this->site_id,//站点id 'out_trade_no' => $this->params[ 'out_trade_no' ] ?? '', 'store_id' => $this->store_id ?? 0, ); $result = $cashier_order_pay_model->createPay($data); if ($result[ 'code' ] < 0) { return $this->response($result); } $data = []; $pay = new PayModel(); foreach (event('PayType', []) as $item) { $result = $pay->pay($item[ 'pay_type' ], $out_trade_no, 'cashier', 0); if ($result && $result[ 'code' ] == 0) { array_push($data, [ 'pay_type' => $item[ 'pay_type' ], 'pay_type_name' => $item[ 'pay_type_name' ], 'qrcode' => $result[ 'data' ][ 'qrcode' ], 'logo' => img($item[ 'logo' ]) ]); } } return $this->response($this->success($data)); } /** * 创建支付单据 * @return false|string */ public function createPay() { $cashier_order_pay_model = new CashierOrderPay(); $data = array ( 'site_id' => $this->site_id,//站点id 'out_trade_no' => $this->params[ 'out_trade_no' ] ?? '', 'store_id' => $this->store_id ?? 0, ); $result = $cashier_order_pay_model->createPay($data); return $this->response($result); } /** * 会员付款码支付 (已废弃) */ public function paymentCodePay() { $out_trade_no = $this->params[ 'out_trade_no' ]; $auth_code = $this->params[ 'auth_code' ]; return $this->response($this->error()); } }