'cardocr', 'title' => '身份证验证管理', 'icon' => 'fa fa-address-book', 'sublist' => [ [ 'name' => 'cardocr/card', 'title' => '身份证验证', 'icon' => 'fa fa-id-card', 'sublist' => [ ['name' => 'cardocr/card/index', 'title' => '查看'], ['name' => 'cardocr/card/add', 'title' => '添加'], ['name' => 'cardocr/card/edit', 'title' => '修改'], ['name' => 'cardocr/card/del', 'title' => '删除'], ['name' => 'cardocr/card/multi', 'title' => '批量更新'], ] ], ] ] ]; $this->menu = $menu; } /** * 插件安装方法 * @return bool */ public function install() { Menu::create($this->menu); return true; } /** * 插件卸载方法 * @return bool */ public function uninstall() { Menu::delete($this->name); return true; } /** * 插件启用方法 * @return bool */ public function enable() { Menu::enable($this->name); return true; } /** * 插件禁用方法 * @return bool */ public function disable() { Menu::disable($this->name); return true; } /** 检查身份证号码与姓名是一致钩子 * @param array $checkdata ['name'];$checkdata["idnum"] * @return json */ public function checkIdname($checkdata) { $arr['time'] = time(); if(!isset($checkdata["name"])) { return json(['code'=>400,'msg'=>'姓名不能缺少'],400); } if(!isset($checkdata["idnum"])) { return json(['code'=>400,'msg'=>'身份证号码不能缺少'],400); } $data = Card::checkidcard($checkdata["idnum"],$checkdata["name"]); return json(array_filter($data)); } /** 身份证识别钩子 * @param array $array $data['ImageBase64'] = $ImageBase64;$data['CardSide'] = 'FRONT'; * 传入例子 checkOcr($data, $data['CardSide']) * @param array $array ['CardSide'] |'FRONT','BACK' 识别身份证正反 * @return json */ public function checkOcr($arrjson) { $arr['time'] = time(); if(!isset($arrjson["ImageBase64"])) { return json(['code'=>400,'msg'=>'身份证缺少ImageBase64'],400); } if(!preg_match('/^data:image\/(png|jpeg|gif);base64,/', $arrjson['ImageBase64'])){ return json(['code'=>400,'msg'=>'ImageBase64参数不是ImageBase64 格式'],400); } if(!isset($arrjson["CardSide"]) ){ return json(['code'=>400,'msg'=>'身份证缺少正反面参数'],400); } if($arrjson["CardSide"]!='FRONT' && $arrjson["CardSide"]!='BACK' ){ return json(['code'=>400,'msg'=>'身份证正反面参数不符合'],400); } $data = Card::checkcardocr(json_encode($arrjson), $arrjson['CardSide']); return json(array_filter($data)); } /** * 添加命名空间 */ public function appInit() { //添加支付包的命名空间 Loader::addNamespace('TencentCloud', ADDON_PATH . 'cardocr' . DS . 'library' . DS . 'TencentCloud' . DS); } /** * 会员中心边栏后 * @return mixed * @throws \Exception */ public function userSidenavAfter() { $request = Request::instance(); $controllername = strtolower($request->controller()); $actionname = strtolower($request->action()); $data = [ 'actionname' => $actionname, 'controllername' => $controllername ]; return $this->fetch('view/hook/user_sidenav_after', $data); } }