当前位置:网站首页>阿里云增强版实人认证--银行卡要素核验
阿里云增强版实人认证--银行卡要素核验
2022-08-02 23:57:00 【salestina】
阿里云官网参考文档:银行卡要素核验 - 增强版实人认证 - 阿里云
准备工作:
一:登录阿里云控制台,选择实人认证

左上角功能切换为 增强版实人认证

接入场景设置--》卡证核身--》认证场景ID 【代码中需要用到】

二:点击头像下拉框里的AccessKey管理

查看AccessKey ID 和Secret 【代码中需要用到】
二:执行命令下载php SDK
composer require alibabacloud/cloudauth-20200618 2.0.4注意:如果项目中因缺少composer.lock文件或其他原因导致执行composer命令时会将项目中原本的composer引入的库文件更新。
解决办法是,在本地电脑上新建个文件夹,使用命令窗口执行上面的命令把SDK下载下来,然后在项目中新建个文件夹,名字可以取名为sdk,把下载的SDK资源包上传到该文件夹中,在项目中引入该资源包即可。
注意要选对版本,跟上面composer下载的资源包的版本要一致。

下面是我整理的代码,sdk的下载方法使用的是上面先下载到本地再放入项目中的。
//验证姓名、身份证号、银行卡号、手机号是否匹配
function checkBankNoByAli($data){
$rs=array('code'=>0,'msg'=>'','info'=>array());
$ali_realauth_sceneid=''; //认证场景ID
$ali_accesskeyid=''; //accesskeyid
$ali_accesskeysecret=''; //secret
if(!$ali_realauth_sceneid){
$rs['code']=1001;
$rs['msg']='认证场景ID错误';
return $rs;
}
if(!$ali_accesskeyid){
$rs['code']=1001;
$rs['msg']='accesskeyid错误';
return $rs;
}
if(!$ali_accesskeyid){
$rs['code']=1001;
$rs['msg']='accesskeysecret错误';
return $rs;
}
require_once '/sdk/alicloudauth/autoload.php'; //路径需替换为自己项目中的实际路径
$client = createClient($ali_accesskeyid, $ali_accesskeysecret);
$result=json_decode($result,true);
$verifyBankElementRequest = new AlibabaCloud\SDK\Cloudauth\V20200618\Models\VerifyBankElementRequest([
"sceneId" => $ali_realauth_sceneid,
"outerOrderNo" => random(32),
"mode" => "VERIFY_BANK_CARD",
"bankCardNo" => $data['bankno'],
"idNo" => $data['cardno'],
"idName" => $data['realname'],
"mobile" => $data['mobile']
]);
$runtime = new AlibabaCloud\Tea\Utils\Utils\RuntimeOptions([]);
try {
$result = $client->verifyBankElementWithOptions($verifyBankElementRequest, $runtime);
$result=json_encode($result);
$result=json_decode($result,true);
$code=$result['body']['code'];
//$message=$result['body']['message'];
if($code !=200){
$rs['code']=1003;
$rs['msg']='验证失败';
return $rs;
}
$resultObject=$result['body']['resultObject'];
if(isset($resultObject['passed'])){
$return_status=$resultObject['passed'];
if($return_status !='T'){
$rs['code']=1004;
$rs['msg']='验证失败';
return $rs;
}
}
$return_code=$resultObject['subCode'];
if($return_code !=200){
$rs['code']=1005;
$rs['msg']='验证失败';
return $rs;
}
}
catch (Exception $error) {
if (!($error instanceof AlibabaCloud\Tea\Exception\TeaError)) {
$error = new AlibabaCloud\Tea\Exception\TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// 如有需要,请打印 error
// Utils::assertAsString($error->message);
$rs['code']=1006;
$rs['msg']=$error->message;
return $rs;
}
}
//阿里云证件号配置生成
function createClient($accessKeyId, $accessKeySecret){
$config = new Darabonba\OpenApi\Models\Config([
// 您的 AccessKey ID
"accessKeyId" => $accessKeyId,
// 您的 AccessKey Secret
"accessKeySecret" => $accessKeySecret
]);
// 访问的域名
$config->endpoint = "cloudauth.aliyuncs.com";
return new AlibabaCloud\SDK\Cloudauth\V20200618\Cloudauth($config);
}
//生成随机数
function random($length = 6 , $numeric = 0) {
PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
if($numeric) {
$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
} else {
$hash = '';
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghjkmnpqrstuvwxyz';
$max = strlen($chars) - 1;
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
}
return $hash;
}
//调用方法
public function test(){
$check_data=array(
'bankno' =>'', //银行卡号
'realname' =>'', //姓名
'cardno' =>'', //身份证号
'mobile' =>'' //手机号
);
$result=checkBankNoByAli($check_data);
if($result['code']!=0){
return $result;
}else{
return array(
'code'=>0,
'msg'=>'验证成功',
'info'=>array()
);
}
}注意一点:24小时内重复查询相同信息超过10次,会被锁定12小时,测试的时候控制好请求次数。
边栏推荐
猜你喜欢

我为什么又能面试一次就拿到offer

js基础知识整理之 —— 闭包

Speech Synthesis Model Cheat Sheet (1)
Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting

MySQL的多表查询(1)

【TypeScript笔记】01 - TS初体验 && TS常用类型

VMware workstation program starts slowly

优秀论文以及思路分析02

vant-swipe自适应图片高度+图片预览

CKAN教程之将 Snowflake 连接到 CKAN 以发布到开放数据门户
随机推荐
2022 Shandong International Youth Eye Health Industry Exhibition, Vision Health Exhibition, Optometry Exhibition
pytest-常用运行参数
【系统架构设计师】第三章 数据库系统
Auto.js special positioning control method cannot perform blocking operations on the ui thread, please use setTimeout instead
程序员常说的“左手锟斤拷,右手烫烫烫”是怎么回事?
为了面试阿里,熬夜肝完这份软件测试笔记后,Offer终于到手了
并查集总结
What is the matter that programmers often say "the left hand is knuckled and the right hand is hot"?
4、Citrix MCS云桌面无法安装todesk等软件
中科磁业IPO过会:年营收5.5亿 吴中平家族持股85%
记一次sql优化Using temporary; Using filesort
[NCTF2019]SQLi-1||SQL注入
一套开源的可快速搭建自己的物联网/智能家居系统源码
scala 集合通用方法
服务间歇性停顿问题优化|得物技术
Auto.js 特殊定位控件方法 不能在ui线程执行阻塞操作,请使用setTimeout代替
【TypeScript笔记】01 - TS初体验 && TS常用类型
js基础知识整理之 —— Math
面试题 08.07. 无重复字符串的排列组合 ●●
用了TCP协议,就一定不会丢包吗?
https://next.api.aliyun.com/api/Cloudauth/2020-06-18/VerifyBankElement?params={}&lang=PHP&tab=DEMO