| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- /**
- * 身份认证服务
- * @author wesmiler
- */
- namespace app\weixin\service;
- class IdnAuth
- {
- // 文档 https://market.aliyun.com/products/57000002/cmapi025518.html?spm=5176.2020520132.101.3.1cca7218tmS1IZ#sku=yuncode1951800000
- protected static $apiUrl = 'http://idenauthen.market.alicloudapi.com';
- protected static $appKey = '203953968';
- protected static $appSecret = 'nbP0eTttVbGFjXSI8GbY04tE89Mnw9ow';
- protected static $appCode = '689f5d471a2140ea8091c8f4e979f8dd';
- protected static $errors = [
- '0000'=> '身份证信息匹配',
- '0001'=> '开户名不能为空',
- '0002'=> '开户名不能包含特殊字符',
- '0003'=> '身份证号不能为空',
- '0004'=> '身份证号不匹配或格式错误',
- '0007'=> '该身份证号码不存在',
- '0008'=> '身份证信息不匹配',
- '0010'=> '系统维护,请稍后再试',
- ];
- /**
- * 发生短信验证码
- * @param $realname 姓名
- * @param $idcard 身份证号码
- * @return array|bool
- */
- public static function check($realname, $idcard)
- {
- if(empty($realname) || empty($idcard)){
- return 2012;
- }
- // 参数配置
- $smsConfig = cmf_get_option('idenauth_config');
- $appKey = isset($params['appKey']) && $params['appKey']?trim($params['appKey']) : self::$appKey;
- $appCode = isset($params['appCode'])&&$params['appCode']?trim($params['appCode']) : self::$appCode;
- $appSecret = isset($params['appSecret'])&&$params['appSecret']?trim($params['appSecret']) : self::$appSecret;
- // 构建请求参数
- $headers = [
- "Authorization:APPCODE {$appCode}",
- "Content-Type:application/x-www-form-urlencoded; charset=UTF-8",
- ];
- $url = self::$apiUrl.'/idenAuthentication';
- $query = "idNo={$idcard}&name={$realname}";
- PRedis::set("idAurh:{$idcard}:request", ['url'=> $url,'query'=> $query,'headers'=> $headers], 600);
- $result = httpHeaderRequest($url,$query,'post',$headers);
- $respCode = isset($result['respCode'])? $result['respCode'] : '';
- PRedis::set("idAurh:{$idcard}:result", $result, 600);
- if($respCode != '0000'){
- $msg = isset(self::$errors[$respCode])? self::$errors[$respCode] : '身份证在线校验失败,可继续上传图片进行认证';
- return ['code'=> 'error', 'msg'=> $msg, 'result'=> $result];
- }
- return ['code'=> 'success', 'msg'=> '身份证匹配成功', 'result'=> $result];
- }
- }
|