dataLists(new MerchantLists()); } public function add_bank() { $params = (new MerchantBankValidate())->post()->goCheck('add'); if($params['user_type'] == 1){ $has = Db::name('merchant_bank')->where('mer_id',$params['mer_id'])->where('is_own',$params['is_own'])->where('is_check','<>',2)->findOrEmpty(); }else{ $has = Db::name('merchant_bank')->where('supplier_id',$params['supplier_id'])->where('is_own',$params['is_own'])->where('is_check','<>',2)->findOrEmpty(); } if(!empty($has)){ return $this->fail('已提交审核请勿重复提交'); } $expireAt = strtotime(date('Y-m-d 23:59:59')); // 当天结束时间戳 $totalKey = $params['user_type'] == 1 ? $params['mer_id'].$params['bank_code'] : $params['supplier_id'].$params['bank_code']; $checkKey = $params['user_type'] == 1 ? $params['mer_id'].'check' : $params['supplier_id'].'check'; $check = Cache::get($totalKey) ?? 0; if ($check && $check > 9) { return $this->fail('超出绑定限制请明日再绑定'); } $wrongNum = Cache::get($checkKey) ?? 0; if($wrongNum && $wrongNum > 2){ return $this->fail('当日认证次数已超限制,请勿重复提交,请次日后再试'); } Cache::set($totalKey, (int)($check+1),$expireAt); if($params['is_own'] == 0){ $info = [ 'name'=>$params['name'], 'idNum'=>$params['id_card'], 'cardNo'=>$params['bank_code'], 'mobile'=>$params['phone'], ]; $thinkApi = new ThinkApi(); $result = $thinkApi->request('bankcard/auth',$info); if($result['code'] != 0 || empty($result['data'])){ return $this->fail($result['message']); } //认证结果。01:一致 02:不一致 03:认证不确定 04:认证失败。01、02收费 if($result['data']['result'] == 4 || $result['data']['result'] == 2){ Cache::set($checkKey, (int)($wrongNum+1),$expireAt); } if($result['data']['result'] == 4 || $result['data']['result'] == 2){ $wrongNum = Cache::get($checkKey); $numMsg = ',当日剩余认证次数'.(3-$wrongNum); return $this->fail('认证失败,请检查姓名,身份证,银行卡,银行预留手机号码是否正确'.$numMsg); } } $save_data = [ 'user_type' => $params['user_type'], 'mer_id' => $params['mer_id'] ?? 0, 'supplier_id' => $params['supplier_id'] ?? 0, 'name' => $params['name'], 'bank_id' => $params['bank_id'], 'bank_code' => $params['bank_code'], 'bank_branch' => $params['bank_branch'], 'phone' => $params['phone'] ?? '', 'id_card' => $params['id_card'] ?? '', 'financial_img' => $params['financial_img'] ?? '', 'is_own' => $params['is_own'], 'is_check' => 0, 'create_time' => time() ]; //写入数据 $res = Db::name('merchant_bank')->insert($save_data); return $res ? $this->success('添加成功') : $this->fail('添加失败'); } }