You've already forked qlg.tsgz.moe
							
							Init Repo
This commit is contained in:
		
							
								
								
									
										115
									
								
								hyhproject/common/validate/Auth.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										115
									
								
								hyhproject/common/validate/Auth.php
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| <?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 */ | ||||
| } | ||||
		Reference in New Issue
	
	Block a user