cid], ['paid', 1], ['category_id', 0], ['order', ''], ['key', ''], ], $request ); $this->success('获取成功', LaveModel::lst($where)); } public function ify() { $this->success('获取成功', Category::getCategoryArray('lave', null, $this->cid)); } public function create(Request $request) { $where = UtilService::postMore( [ ['cid', $this->cid], ['user_id', $this->auth->getUserinfo()['id']], ['order_name', ''], ['category_id', 0], ['amount', 0], ['name', ''], ['contact', ''], ['tel', 0], ['address', ''], ['is_open', '0'], ['is_ticket', '0'], ['pay_type', '0'], ['type', '0'], ['help_id', 0], ['from', 'weixin'], ], $request ); $where1 = $where; unset($where1['from']); $where1['order_id'] = LaveModel::getNewOrderId(); if (cache('lave_' . $where['user_id'])) $this->error('正在处理中'); @file_put_contents("lave.txt", json_encode($where1)); $order = LaveModel::create($where1); cache('lave_' . $where['user_id'], '1', 10); if (!$order) $this->error(LaveModel::getErrorInfo()); $orderId = $order['order_id']; $info = compact('orderId'); if ($orderId) { $orderInfo = LaveModel::where('order_id', $orderId)->find(); if (!$orderInfo || !isset($orderInfo['paid'])) $this->error('支付订单不存在!'); if ($orderInfo['paid']) $this->error('支付已支付!'); try { if ($where['from'] == 'routine') { $jsConfig = LaveRepository::jsPay($this->cid, $orderId); //创建订单jspay } else if ($where['from'] == 'weixinh5') { $jsConfig = LaveRepository::h5Pay($this->cid, $orderId); } else { $jsConfig = LaveRepository::wxPay($this->cid, $orderId); } } catch (\Exception $e) { return $this->error($e->getMessage()); } $info['jsConfig'] = $jsConfig; return $this->success('订单创建成功', $info); } else $this->error(LaveModel::getErrorInfo()); } public function mylst(Request $request) { $where = UtilService::getMore( [ ['page', 1], ['limit', 10], ['cid', $this->cid], ['user_id', $this->auth->getUserinfo()['id']], ['paid', -1], ['category_id', 0], ], $request ); $this->success('获取成功', LaveModel::lst($where)); } /** * 订单支付 * @param Request $request * @return mixed */ public function pay(Request $request) { list($uni, $paytype, $from) = UtilService::postMore([ ['uni', ''], ['paytype', '0'], ['from', 'weixin'] ], $request, true); if (!$uni) $this->error('参数错误!'); $order = LaveModel::where('cid', $this->cid)->where('order_id', $uni)->find(); if (!$order) $this->error('订单不存在!'); if ($order['paid']) $this->error('该订单已支付!'); $order['pay_type'] = $paytype; //重新支付选择支付方式 switch ($order['pay_type']) { case '0': try { if ($from == 'routine') { $jsConfig = LaveRepository::jsPay($this->cid, $order); //订单列表发起支付 } else if ($from == 'weixinh5') { $jsConfig = LaveRepository::h5Pay($this->cid, $order); } else { $jsConfig = LaveRepository::wxPay($this->cid, $order); } } catch (\Exception $e) { $this->error($e->getMessage()); } $this->success('获取成功', $jsConfig); break; } return $this->error('支付方式错误'); } // 支付中签约 public function createSign(Request $request) { // var_dump(123);die(); $where = UtilService::postMore( [ ['cid', $this->cid], ['user_id', $this->auth->getUserinfo()['id']], // ['user_id', 0], ['order_name', ''], // ['category_id', 0], ['amount', 0], ['name', ''], ['contact', ''], ['tel', 0], ['address', ''], ['is_open', '0'], ['is_ticket', '0'], ['pay_type', '0'], ['type', '0'], // ['help_id', 0], ['plan_id', 0], ['from', 'weixin'], ], $request ); $where1 = $where; unset($where1['from']); $where1['order_id'] = LaveMonthModel::getNewOrderId(); // $contract_display_account = User::where('id', $where1['user_id'])->value('nickname'); // if (empty($contract_display_account)){ // $this->error('用户不存在!'); // } if (cache('lave_' . $where['user_id'])) $this->error('正在处理中'); $plan_id=$where1['plan_id']; // unset($where1['plan_id']); $order = LaveMonthModel::create($where1); $where1['contract_code'] = WechatPlanRecord::getNewCode(); $where1['contract_display_account']=$where1['name']; cache('lave_' . $where['user_id'], '1', 10); if (!$order) $this->error(LaveMonthModel::getErrorInfo()); $orderId = $order['order_id']; $info = compact('orderId'); $order['plan_id'] = $plan_id; if ($orderId) { $orderInfo = LaveMonthModel::where('order_id', $orderId)->find(); @file_put_contents("quanju.txt", $orderId."-订单id\r\n", 8); @file_put_contents("quanju.txt", json_encode($orderInfo)."-创建支付订单搜索\r\n", 8); if (!$orderInfo){ $a=true; }else{ $a=false; } if (!isset($orderInfo['paid'])){ $b=true; }else{ $b=false; } if ($a || $b){ var_dump($a); var_dump($b);die(); $this->error('支付订单不存在!'); } if ($orderInfo['paid']) $this->error('支付已支付!'); // 创建签约 $plan_record=[ 'plan_id'=>$plan_id, 'cid'=>$where['cid'], 'uid'=>$where['user_id'], 'price'=>$where['amount'], 'is_signing'=>0, 'contract_code'=>$where1['contract_code'], 'contract_display_account'=>$where1['contract_display_account'], 'is_open'=>$where1['is_open'], 'tel'=>$where1['tel'], // 'category_id'=>$where1['category_id'], 'order_name'=>$where1['order_name'], ]; $record=WechatPlanRecord::create($plan_record); $plan_record['spbill_create_ip']=User::where('id', $where1['user_id'])->value('loginip'); $plan_record['contract_notify_url']=Request::instance()->domain() . "/api/wechat/notify/" . $where['cid']; try { if ($where['from'] == 'routine') { $jsConfig = LaveRepository::jsPaySign($this->cid, $orderId,$plan_record); //创建订单jspay } else if ($where['from'] == 'weixinh5') { $jsConfig = LaveRepository::h5PaySign($this->cid, $orderId,$plan_record); } else { $jsConfig = LaveRepository::wxPaySign($this->cid, $orderId,$plan_record); } } catch (\Exception $e) { return $this->error($e->getMessage()); } $info['jsConfig'] = $jsConfig; // 增加参与人数 $count=WechatPlanRecord::where('uid', $where1['user_id'])->count(); if ($count==0){ $num=WechatPlan::where('id', $plan_id)->value('num'); WechatPlan::where('id', $plan_id)->update(['num' => $num+1]); } return $this->success('订单创建成功', $info); } else $this->error(LaveMonthModel::getErrorInfo()); } /** * 签约订单支付 * @param Request $request * @return mixed */ public function paySign(Request $request) { // var_dump(456);die(); list($uni, $paytype, $from) = UtilService::postMore([ ['uni', ''], ['paytype', '0'], ['from', 'weixin'] ], $request, true); if (!$uni) $this->error('参数错误!'); $order = LaveMonthModel::where('cid', $this->cid)->where('order_id', $uni)->find(); if (!$order) $this->error('订单不存在!'); if ($order['paid']) $this->error('该订单已支付!'); $order['pay_type'] = $paytype; //重新支付选择支付方式 switch ($order['pay_type']) { case '0': try { if ($from == 'routine') { $jsConfig = LaveRepository::jsPaySign($this->cid, $order); //订单列表发起支付 } else if ($from == 'weixinh5') { $jsConfig = LaveRepository::h5PaySign($this->cid, $order); } else { $jsConfig = LaveRepository::wxPaySign($this->cid, $order); } } catch (\Exception $e) { $this->error($e->getMessage()); } $this->success('获取成功', $jsConfig); break; } return $this->error('支付方式错误'); } // 申请扣款 public function payPap(Request $request) { @file_put_contents("quanju.txt", "测试申请扣款-\r\n", 8); die(); $list=WechatPlanRecord::where('is_signing',0)->select(); $cid=$this->cid; $arr=[]; $arr['body']='月捐款'; foreach ($list as $k => $v){ $cid=$v['cid']; // if ($this->querySign($cid,$v['uid'],$v['plan_id'],$v['contract_code'])){ $arr['mch_id'] =Company::where('id', $cid)->value('pay_weixin_mchid'); $arr['out_trade_no']=LaveMonthModel::getNewOrderId(); $arr['total_fee'] = $v['price']; // $arr['trade_type'] = 'PAP'; $arr['contract_id'] = Company::where('id', $cid)->value('contract_id'); // $rs = WechatService::paymentOrder($openid, $orderInfo['order_id'], $orderInfo['amount'], "lave", $orderInfo['order_name'], '', 'JSAPI', [], $cid); $rs = WechatService::papPayApply($arr['out_trade_no'], $arr['total_fee'], "lave", '月捐款', 'PAP', [], $cid,$arr['mch_id'],$arr['contract_id']); $where1['cid']=$cid; $where1['user_id']=$v['uid']; $where1['order_name']=$v['order_name']; $where1['category_id']=$v['category_id']; $where1['amount']=$arr['total_fee']; $where1['name']=$v['contract_display_account']; $where1['contact']=''; $where1['tel']=$v['tel']; $where1['address']='用户未填写联系地址'; $where1['is_open']=$v['is_open']; $where1['is_ticket']='0'; $where1['type']='0'; // $where1['help_id']='0'; $order = LaveMonthModel::create($where1); // } } } // 解除签约 public function deleteSign(Request $request){ $where = UtilService::postMore( [ ['id',0], ['cid', $this->cid], ['user_id', $this->auth->getUserinfo()['id']], ], $request ); if ($where['id']==0){ $sign_info=WechatPlanRecord::where('cid', $where['cid'])->where('uid', $where['user_id'])->where('is_signing',0)->find(); }else{ $sign_info=WechatPlanRecord::where('id', $where['id'])->where('is_signing',0)->find(); } if (!$sign_info){ $this->error('未找到签约信息!'); } $mch_id =Company::where('id', $where['cid'])->value('pay_weixin_mchid'); $plan_id=$sign_info['plan_id']; $contract_code=$sign_info['contract_code']; // $mch_id,$contract_code,$pan_id,$version='1.0',$options=[],$cid=0) $rs=WechatService::deleteSign($mch_id,$contract_code,$plan_id,'1.0',[],$where['cid']); @file_put_contents("quanju.txt", json_encode($rs)."-解除签约返回结果\r\n", 8); $this->success('解除签约成功!'); // if ($rs){ // WechatPlanRecord::where('cid', $where['cid'])->where('uid', $where['user_id'])->where('is_signing',0)->update(['is_signing'=>1]); // $this->success('解除签约成功!'); // }else{ // $this->error('解除签约失败!'); // } } // 查询签约状态 // public function querySign(int $cid,int $uid,int $plan_id,string $contract_code) // { //// $where = UtilService::postMore( //// [ //// ['cid', $this->cid], //// ['user_id', $this->auth->getUserinfo()['id']], //// ], $request //// ); // $sign_info = WechatPlanRecord::where('cid', $cid)->where('uid', $uid)->where('is_signing', 1)->find(); // if (!$sign_info) { // $this->error('未找到签约信息!'); // } // $mch_id = Company::where('id', $cid)->value('pay_weixin_mchid'); //// $plan_id = $sign_info['plan_id']; //// $contract_code = $sign_info['contract_code']; // $rs = WechatService::querySign($mch_id, $contract_code, $plan_id); // @file_put_contents("quanju.txt", json_encode($rs) . "-查询签约状态返回结果\r\n", 8); // if ($rs['return_code'] == 'SUCCESS') { // if ($rs['contract_state'] == 1) { // WechatPlanRecord::where('cid',$cid)->where('uid', $uid)->where('is_signing', 1)->update(['is_signing' => 0]); // return false; // }else{ // WechatPlanRecord::where('cid',$cid)->where('uid', $uid)->where('is_signing', 1)->update(['contract_id' => $rs['contract_id']]); // return true; // } // } else { // $this->error('查询签约状态失败!'); // } // } public function plan_lst(Request $request) { $where = UtilService::getMore( [ ['page', 1], ['limit', 10], ['cid', $this->cid], // ['paid', 1], // ['category_id', 0], // ['order', ''], // ['key', ''], ], $request ); $this->success('获取成功', WechatPlan::lst($where)); } public function plan_read(Request $request) { $where = UtilService::getMore( [ ['id', 0], ['cid', $this->cid], ], $request ); $this->success('获取成功', WechatPlan::read($where)); } // 签约列表 public function user_plan_lst(Request $request) { $where = UtilService::getMore( [ // ['cid', 0], ['cid', $this->cid], ['uid', $this->auth->getUserinfo()['id']], // ['uid', 0], ], $request ); if (!isset($where['uid'])) $this->error('用户不存在'); if (!isset($where['cid'])) $this->error('请选择正确的城市的红十字会'); $this->success('获取成功', WechatPlanRecord::record_lst($where)); } // 签约记录详情 public function user_record_info(Request $request) { $where = UtilService::getMore( [ ['id', 0], // ['cid', 0], ['cid', $this->cid], ['user_id', $this->auth->getUserinfo()['id']], // ['user_id', 0], ], $request ); $this->success('获取成功', WechatPlanRecord::record_info($where)); } } ?>