Files
addons
app_download_files
extend
hyhproject
admin
app
common
behavior
common
conf
exception
model
taglib
validate
Auth.php
CashConfigs.php
EctWallet.php
GoodsAppraises.php
GoodsConsult.php
Informs.php
Invoices.php
OrderComplains.php
ShopCats.php
Shops.php
UserAddress.php
home
home2
mobile2
wechat2
.htaccess
command.php
mobile
oss
static
thinkphp
upload
vendor
wxtmp
.gitignore
.htaccess
.user.ini
404.html
H5436787D.wgt
admin.php
app-release.apk
app_download.html
cash.lock
demo.php
get_version.php
get_version_new.php
index.html
index.php
reg.lock
robots.txt
qlg.tsgz.moe/hyhproject/common/validate/Auth.php
2019-09-06 23:53:10 +08:00

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 */
}