You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			115 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php 
 | 
						|
namespace wstmart\common\validate;
 | 
						|
use think\Validate;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 * 认证验证器
 | 
						|
 */
 | 
						|
class Auth extends Validate{
 | 
						|
	protected $rule = [
 | 
						|
        ['headImg'  ,'require','请上传头像'],
 | 
						|
        ['householdName'  ,'require|chs','请输入户主名|请输入汉字'],
 | 
						|
        ['householdIdCard'  ,'require|validation_filter_id_card','请输入身份证号|身份证号错误'],
 | 
						|
        ['houseAddress'  ,'require','请输入居住地址'],
 | 
						|
        ['accountBookImg'  ,'require','请上传手持户口簿主页照片'],        
 | 
						|
        ['payPwd'  ,'require','请输入操作密码'],
 | 
						|
 | 
						|
        ['companyName'  ,'require|chs','请输入合作名|请输入汉字'],
 | 
						|
        ['trueName'  ,'require|chs','请输入姓名|请输入汉字'],
 | 
						|
        ['idCard'  ,'require|validation_filter_id_card','请输入身份证号|身份证号错误'],
 | 
						|
        ['companyAddress'  ,'require','请输入公司地址'],
 | 
						|
 | 
						|
 | 
						|
        ['familyName'  ,'require|chs','请输入姓名|请输入汉字'],
 | 
						|
        ['familyIdCard'  ,'require|validation_filter_id_card','请输入身份证号|身份证号错误'],
 | 
						|
        ['familyRelations'  ,'require','请输入与户主关系'],
 | 
						|
        ['familyRelationsImg'  ,'require','请上传户主关系证明照'],
 | 
						|
        ['idCardFrontImg'  ,'require','请上传身份证正面照'],
 | 
						|
        ['idCardBackImg'  ,'require','请上传身份证反面照'],
 | 
						|
        ['mobileCode'  ,'require|length:4','请输入验证码'],
 | 
						|
        
 | 
						|
 | 
						|
        ['bankName'  ,'require|chs','请输入银行名|请输入汉字'],
 | 
						|
        ['accountName'  ,'require|chs','请输入开户名|请输入汉字'],
 | 
						|
        ['bankNo'  ,'require','请输入银行卡号'],
 | 
						|
 | 
						|
        ['uName'  ,'require|chs','请输入姓名|请输入汉字'],
 | 
						|
        ['positionName'  ,'require|chs','请输入职位名|请输入汉字'],
 | 
						|
        ['businessImg'  ,'require','请上传手执营业执照照片'],
 | 
						|
        ['stake'  ,'require|between:1,100','请输入持股比例|持股比例范围为1-100']
 | 
						|
 | 
						|
    ];
 | 
						|
 | 
						|
    protected $scene = [
 | 
						|
        'personal'   =>  ['headImg','householdName','householdIdCard','houseAddress','accountBookImg'],//个人实名认证
 | 
						|
        'company'  =>  ['headImg','companyName','trueName','idCard','companyAddress'],//合作实名认证
 | 
						|
        'report'  =>  ['familyName','familyIdCard','familyRelations','familyRelationsImg'],//亲人报备
 | 
						|
        'family'  =>  ['familyRelations','familyRelationsImg','idCardFrontImg','idCardBackImg'],//亲人认证
 | 
						|
        'bank'  =>  ['bankName','accountName','bankNo'],//添加银行卡
 | 
						|
        'partner'  =>  ['positionName','stake','businessImg','idCardFrontImg','idCardBackImg'],//合作人认证
 | 
						|
    ]; 
 | 
						|
    // 自定义验证规则
 | 
						|
    // protected function checkName($value,$rule,$data)
 | 
						|
    // {
 | 
						|
    //     return $rule == $value ? true : '名称错误';
 | 
						|
    // }
 | 
						|
     /**
 | 
						|
     * 身份证验证 start
 | 
						|
     */
 | 
						|
    function validation_filter_id_card($id_card){
 | 
						|
        if(strlen($id_card)==18){
 | 
						|
            return $this->idcard_checksum18($id_card);
 | 
						|
        }elseif((strlen($id_card)==15)){
 | 
						|
            $id_card=$this->idcard_15to18($id_card);
 | 
						|
            return $this->idcard_checksum18($id_card);
 | 
						|
        }else{
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
     // 计算身份证校验码,根据国家标准GB 11643-1999
 | 
						|
     function idcard_verify_number($idcard_base){
 | 
						|
        if(strlen($idcard_base)!=17){
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        //加权因子
 | 
						|
        $factor=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
 | 
						|
        //校验码对应值
 | 
						|
        $verify_number_list=array('1','0','X','9','8','7','6','5','4','3','2');
 | 
						|
        $checksum=0;
 | 
						|
        for($i=0;$i<strlen($idcard_base);$i++){
 | 
						|
            $checksum += substr($idcard_base,$i,1) * $factor[$i];
 | 
						|
        }
 | 
						|
        $mod=$checksum % 11;
 | 
						|
        $verify_number=$verify_number_list[$mod];
 | 
						|
        return $verify_number;
 | 
						|
     }
 | 
						|
     // 将15位身份证升级到18位
 | 
						|
     function idcard_15to18($idcard){
 | 
						|
        if(strlen($idcard)!=15){
 | 
						|
            return false;
 | 
						|
        }else{
 | 
						|
            // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
 | 
						|
            if(array_search(substr($idcard,12,3),array('996','997','998','999')) !== false){
 | 
						|
                $idcard=substr($idcard,0,6).'18'.substr($idcard,6,9);
 | 
						|
            }else{
 | 
						|
                $idcard=substr($idcard,0,6).'19'.substr($idcard,6,9);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        $idcard=$idcard.$this->idcard_verify_number($idcard);
 | 
						|
        return $idcard;
 | 
						|
     }
 | 
						|
     // 18位身份证校验码有效性检查
 | 
						|
     function idcard_checksum18($idcard){
 | 
						|
        if(strlen($idcard)!=18){
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        $idcard_base=substr($idcard,0,17);
 | 
						|
        if($this->idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){
 | 
						|
            return false;
 | 
						|
    return $user;
 | 
						|
        }else{
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
     }
 | 
						|
     /***身份证验证 end */
 | 
						|
} |