财务系统开发文档>实名认证接口
QYHYu'//帮助文档 ); # 插件安装 public function install() { return true;//安装成功返回true,失败false } # 插件卸载 public function uninstall() { return true;//卸载成功返回true,失败false } /* * 个人认证 * certifi参数为系统参数+自定义参数数组: * $certifi = [ * # 系统参数 * 'name' => '姓名', * 'card' => '身份证号', * 'phone' => '手机号', # phone字段需要开发者在collectionInfo()中定义,否则返回空 * 'bank' => '银行卡号', # bank字段需要开发者在collectionInfo()中定义,否则返回空 * 'company_name' => '公司名', * 'company_organ_code' => '公司代码', * # 插件自定义参数 collectionInfo()中返回,列: * 'custom_field1' => '自定义字段1' 文件类型参数会传 绝对路径 * ] */ public function personal($certifi) { if (file_exists(__DIR__.'/config/config.php')){ $con = require __DIR__.'/config/config.php'; }else{ $con = []; } $config = $this->getConfig(); $_config = array_merge($con,$config); $type = $_config['type']; if ($type == 2){ $param = [ 'name'=> $certifi['name'], 'bank'=> $certifi['bank'], ]; }elseif ($type == 3){ $param=[ 'bank'=> $certifi['bank'], 'name'=> $certifi['name'], 'number'=> $certifi['card'], 'type'=> 0, ]; }else{ $param=[ 'bank'=> $certifi['bank'], 'mobile'=> $certifi['phone'], 'name'=> $certifi['name'], 'number'=> $certifi['card'], 'type'=> 0, ]; } # TODO WYH 自定义字段 自行操作 # $custom1 = $certifi['custom_field1']; $logic = new Threehc(); $query = $logic->createLinkstrings($param); $appcode = $_config['app_code']; $result = $logic->httpsPhoneThree($appcode,$query,$_config['threehc_url'],$type); $data = [ 'status' => 2, # 1通过,2未通过 'auth_fail' => '', 'certify_id' => $result['log_id']?:'', ]; if ($result['ret'] == 200){ if (isset($result['data']['desc']) && $result['data']['desc'] == '一致'){ # 通过 $data['status'] = 1; }else{ $data['auth_fail'] = $result['data']['desc']?:''; } }else{ $data['auth_fail'] = $result['msg']?:'实名认证接口配置错误,请联系管理员'; } # 调用系统方法,更新个人实名认证状态 updatePersonalCertifiStatus($data); return "<h3 class=\"pt-2 font-weight-bold h2 py-4\"><img src=\"\" alt=\"\"> 正在认证,请稍等...</h3>"; } # 企业认证 public function company($certifi) { if (file_exists(__DIR__.'/config/config.php')){ $con = require __DIR__.'/config/config.php'; }else{ $con = []; } $config = $this->getConfig(); $_config = array_merge($con,$config); $type = $_config['type']; if ($type == 2){ $param = [ 'name'=> $certifi['name'], 'bank'=> $certifi['bank'], ]; }elseif ($type == 3){ $param=[ 'bank'=> $certifi['bank'], 'name'=> $certifi['name'], 'number'=> $certifi['card'], 'type'=> 0, ]; }else{ $param=[ 'bank'=> $certifi['bank'], 'mobile'=> $certifi['phone'], 'name'=> $certifi['name'], 'number'=> $certifi['card'], 'type'=> 0, ]; } # TODO WYH 自定义字段 自行操作 # $custom1 = $certifi['custom_field1']; $logic = new Threehc(); $query = $logic->createLinkstrings($param); $appcode = $_config['app_code']; $result = $logic->httpsPhoneThree($appcode,$query,$_config['threehc_url'],$type); $data = [ 'status' => 2, # 1通过,2未通过 'auth_fail' => '', 'certify_id' => $result['log_id']?:'', ]; if ($result['ret'] == 200){ if (isset($result['data']['desc']) && $result['data']['desc'] == '一致'){ # 通过 $data['status'] = 1; }else{ $data['auth_fail'] = $result['data']['desc']?:''; } }else{ $data['auth_fail'] = $result['msg']?:'实名认证接口配置错误,请联系管理员'; } # 调用系统方法,更新企业实名认证状态 updateCompanyCertifiStatus($data); return "<h3 class=\"pt-2 font-weight-bold h2 py-4\"><img src=\"\" alt=\"\"> 正在认证,请稍等...</h3>"; } # 前台自定义字段输出 public function collectionInfo() { $config = $this->getConfig(); $type = $config['type']; if ($type == 2){ $data = [ 'bank' => [ 'title' => '银行卡号', 'type' => 'text', # 字段类型:text文本,file文件,目前仅支持文本以及文件类型! 'value' => '', 'tip' => '请输入银行卡号', 'required' => true, # 是否必填 ], 'face' => [ 'title' => '人脸照片', 'type' => 'file', # 字段类型:text文本,file文件,目前仅支持文本以及文件类型! 'value' => '', 'tip' => '请上传人脸照片', 'required' => true, # 是否必填 ], ]; }elseif ($type == 3){ $data = [ 'bank' => [ 'title' => '银行卡号', 'type' => 'text', # 字段类型:text文本,file文件,目前仅支持文本以及文件类型! 'value' => '', 'tip' => '请输入银行卡号', 'required' => true, # 是否必填 ] ]; }elseif ($type == 4){ $data = [ 'bank' => [ 'title' => '银行卡号', 'type' => 'text', 'value' => '', 'tip' => '请输入银行卡号', 'required' => true, # 是否必填 ], 'phone' => [ 'title' => '手机号', 'type' => 'text', 'value' => '', 'tip' => '请输入手机号', 'required' => true, # 是否必填 ], ]; }else{ $data = []; } return $data; } public function getStatus($certifi) { return true; }}```四、配置文件在你的实名认证根目录下加上config.php 即可定义配置配置文件中需要加入两个系统字段:amount,free;amount大于0时,表示需要支付;free大于0时,表示免费次数;```php<?phpreturn [ # 系统默认字段 'amount' => [ # 无此配置,默认为0 'title' => '金额', 'type' => 'text',// 表单的类型:text,password,textarea,checkbox,radio,select等 'value' => 0, 'tip' => '支付金额', ], 'free' => [ # 无此配置,默认为0 'title' => '免费认证次数', 'type' => 'text', 'value' => 0, 'tip' => '免费认证次数', ], # 开发者自定义字段 'app_code' => [ 'title' => 'appCode', 'type' => 'text', 'value' => '', 'tip' => '', ], 'type' => [// 在后台插件配置表单中的键名 ,会是config[select] 'title' => '认证方式', 'type' => 'select', 'options' => [//select 和radio,checkbox的子选项 2 => '两要素', // 值=>显示 姓名 银行卡号 3 => '三要素', // 姓名 身份证号 银行卡号 4 => '四要素', // 姓名 身份证号 银行卡号 手机号 ], 'value' => '2', 'tip' => '认证方式', ],];```