* @version : HUOUNION 8.5 */ namespace huoIdentify\controller; use huo\controller\common\Base; use huo\model\user\UserModel; use huoIdentify\model\IdentifyAgentModel; use huolib\constant\CommonConst; use huolib\constant\IdentifyConst; use huolib\status\AgentStatus; use huolib\status\CommonStatus; use huolib\status\IdentifyStatus; use huolib\status\MemberStatus; use huolib\tool\StrUtils; use huolib\utils\IdentifyUtils; use think\Config; use think\Exception; class AgentIdentify extends Base { /** * 获取渠道认证信息 * * @param int $agent_id 玩家id * @param bool $encrypt 是否加密 * * @return mixed : array */ public function getIdentifyByAgentId($agent_id, $encrypt = false) { $_agent_data = (new IdentifyAgentModel())->getInfoByAgentId($agent_id); $_data['id_card'] = get_val($_agent_data, 'id_card'); $_data['real_name'] = get_val($_agent_data, 'real_name'); $_data['birthday'] = IdentifyUtils::getBirthday($_data['id_card']); $_data['age'] = IdentifyUtils::getAge($_data['birthday']); $_data['is_auth'] = IdentifyConst::IS_AUTH_NO; if (!empty($_data['id_card'])) { $_data['is_auth'] = IdentifyConst::IS_AUTH_YES; } if (true == $encrypt) { if (!empty($_data['real_name'])) { $_data['real_name'] = StrUtils::encryptName($_data['real_name']); } if (!empty($_data['id_card'])) { $_data['id_card'] = StrUtils::encryptName($_data['id_card']); } } return $_data; } /** * 更新实名认证信息 * * @param $agent_id * @param int $type * @param $real_name * @param $id_card * @param bool $remote_check 远程校验 * * @return mixed */ public function updateIdentify($agent_id, $type, $real_name, $id_card, $remote_check = true) { $_agent_data = (new UserModel())->getInfoById($agent_id); if (empty($_agent_data)) { $_code = AgentStatus::DATA_NOT_FOUND_EXCEPTION; return $this->huoSuccess($_code, MemberStatus::getMsg($_code)); } $_chk_rs = IdentifyUtils::checkIdentify($type, $real_name, $id_card); if (IdentifyStatus::NO_ERROR != $_chk_rs) { return $this->huoError($_chk_rs, IdentifyStatus::getMsg($_chk_rs)); } if (!$remote_check) { $_code = IdentifyStatus::NO_ERROR; return $this->huoSuccess($_code, IdentifyStatus::getMsg($_code)); } $_im_model = new IdentifyAgentModel(); $_is_other_api_check = (new IdentifyConf())->getIsOtherApiCheck(); if (CommonConst::STATUS_YES == $_is_other_api_check) { /* 当前开启了第三方api校验才需要验证 */ $_identify_from = Config::get('identify_conf.default'); //实名认证api try { $_identify_class = \huoIdentify\identifyDriver\Identify::ins()->get($_identify_from); $_identify_class->setRealName($real_name); $_identify_class->setIdCard($id_card); $_identify_class->setIdentifyFrom($_identify_from); $_identify_rs = $_identify_class->identify(); if (CommonStatus::NO_ERROR != $_identify_rs['code']) { $_identify_rs['msg'] = '认证失败,请确认身份信息是否正确'; return $this->huoReturn($_identify_rs); } } catch (exception $e) { return $this->huoError($e->getCode(), $e->getMessage()); }; } $_old_id_data = $_im_model->getInfoByAgentId($agent_id); $_data = [ 'identify_from' => '', 'agent_id' => $agent_id, 'real_name' => $real_name, 'id_card' => $id_card, 'identify_type' => $type, ]; if (empty($_old_id_data)) { $_rs = $_im_model->addData($_data); } else { $_rs = $_im_model->updateData($_data, $_old_id_data['id']); } if (false === $_rs) { $_code = AgentStatus::INNER_ERROR; return $this->huoError($_code, AgentStatus::getMsg($_code)); } return $this->retSucMsg(IdentifyStatus::NO_ERROR); } }