Springboot 阿里实名认证api 调用案例
目录
一、获取实名认证api服务
二、集成
1、先添加IdProperties来集成
2、自动装配配置
3、添加配置
4、认证接口
5、返回实体类
三、测试
一、获取实名认证api服务
进入控制台
记下一下3各值。
二、集成
1、先添加IdProperties来集成
package com.dragonwu.config;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "identify")
@Data
public class IdProperties {/*** 身份认证的URL地址 // https://idcert.market.alicloudapi.com/idcard?idCard=%s&name=%s*/private String url ;/**** 你购买的appKey*/private String appKey ;/**** 你购买的appSecret*/private String appSecret ;/**** 你购买的appCode*/private String appCode ;
}
2、自动装配配置
package com.dragonwu.config;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;@Configuration
@EnableConfigurationProperties(IdProperties.class)
public class IdAutoConfiguration {private static IdProperties idProperties;/*** 发请求的工具*/private static RestTemplate restTemplate = new RestTemplate() ;public IdAutoConfiguration(IdProperties idProperties){IdAutoConfiguration.idProperties = idProperties ;}/*** 用户信息的实名认证* @param realName* 用户的真实信息* @param cardNum* 用户的身份证号* @return* 验证的结果*/public static boolean check(String realName ,String cardNum){/*** 本次请求我们是AppCode的形式验证: Authorization:APPCODE 你自己的AppCode* -H Authorization:APPCODE 你自己的AppCode*/HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.add("Authorization","APPCODE "+idProperties.getAppCode());ResponseEntity<String> responseEntity = restTemplate.exchange(//%s 是变量,String.format(idProperties.getUrl(), cardNum, realName),HttpMethod.GET,new HttpEntity<>(null, httpHeaders),String.class);
// https://market.aliyun.com/products/57000002/cmapi022049.html?spm=5176.2020520132.101.2.2fe57218VVSjB0#sku=yuncode1604900000if(responseEntity.getStatusCode()== HttpStatus.OK){String body = responseEntity.getBody();JSONObject jsonObject = JSON.parseObject(body);String status = jsonObject.getString("status");if("01".equals(status)){ // 验证成功return true ;}}return false ;}
}
3、添加配置
3个值就是你之前的那个值
identify:url: https://idcert.market.alicloudapi.com/idcard?idCard=%s&name=%sappKey:appSecret:appCode:
4、认证接口
@PostMapping("/authAccount")@ApiOperation(value = "用户的实名认证")@ApiImplicitParams({@ApiImplicitParam(name = "userAuthForm", value = "userAuthFormjson数据")})public R identifyCheck(@RequestBody UserAuthForm userAuthForm) {String idStr = SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString();boolean isOk = userService.identifyVerify(Long.valueOf(idStr), userAuthForm);if (isOk) {return R.ok();}return R.fail("认证失败");}
/*** 用户的实名认证** @param id 用户的Id* @param userAuthForm 认证的表单数据* @return 认证的结果*/@Overridepublic boolean identifyVerify(Long id, UserAuthForm userAuthForm) {User user = getById(id);Assert.notNull(user, "认证的用户不存在");Byte authStatus = user.getAuthStatus();if (!authStatus.equals((byte) 0)) {throw new IllegalArgumentException("该用户已经认证成功了");}// 执行认证checkForm(userAuthForm); // 极验// 实名认证boolean check = IdAutoConfiguration.check(userAuthForm.getRealName(), userAuthForm.getIdCard());if (!check) {throw new IllegalArgumentException("该用户信息错误,请检查");}// 设置用户的认证属性user.setAuthtime(new Date());user.setAuthStatus((byte) 1);user.setRealName(userAuthForm.getRealName());user.setIdCard(userAuthForm.getIdCard());user.setIdCardType(userAuthForm.getIdCardType());return updateById(user);}
5、返回实体类
package com.dragonwu.model;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springside.modules.utils.base.annotation.NotNull;@Data
@ApiModel(value = "用户的身份认证信息")
public class UserAuthForm extends GeetestForm{@NotNull@ApiModelProperty(value = "用户的真实名称")private String realName ;@NotNull@ApiModelProperty(value = "用户的证件类型")private Integer idCardType ;@NotNull@ApiModelProperty(value = "用户的证件号码")private String idCard ;}
三、测试
实名认证成功!
Springboot 阿里实名认证api 调用案例相关推荐
- php对接阿里云API调用企业税号查询的高级实战案例解析(下拉筛选查询、远程调用API、xm-select组件应用)
阿里云API调用企业税号查询 一.功能描述 1.请求参数 2.GET请求代码 3.返回示例 4.错误码 二.核心代码 1.引入外部JS库 2.构建HTML容器 3.xmSelect回调 总结 一.功能 ...
- 【阿里云API】 阿里云API调用的若干说明
阿里云API 为了监控我们使用的一些阿里云产品,需要些一些脚本,定时调用这些脚本来获得相关阿里云产品的信息. ■ 概述 调用阿里云API大约分成两类方法,一个是直接从HTTP协议开始,自己根据阿里云的 ...
- 基于Python2.7的阿里云API调用及运维相关
基于Python2.7的阿里云API调用及运维相关 http://blog.chinaunix.net/uid-17291169-id-5212576.html 公司部分业务放在阿里云上面,虽然阿里云 ...
- python如何调用阿里云接口_阿里云 API调用实践(python语言)
1.结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用. 2.SDK调用API的套路如下: 1 #-*- ...
- 十八、阿里云api调用
sdk参考下载地址: https://developer.aliyun.com/tools/sdk#/python pip安装sdk: pip install aliyun-python-sdk-ec ...
- LyScript 插件官方API调用案例
本人结合LyScript插件API函数实现的一些通用案例,用于演示插件内置方法是如何灵活组合运用的,其目的是让用户可以自行研究学习API函数的参数传递,并能够通过案例的学习快速掌握官方API函数的使用 ...
- 亚马逊国际获得AMAZON商品详情 关键字搜索API 调用案例分享
item_get-获得AMAZON商品详情 item_search-按关键字搜索商品 公共参数 名称 类型 必须 描述 key String 是 调用key(获取测试key) secret Strin ...
- 实现调用阿里云API第二章——API调用实战(全球IP地址归属地查询)
本篇将实现利用springboot实现阿里云API调用实战. 一.购买阿里云API https://market.aliyun.com/data?spm=5176.9502607.1387859.3. ...
- 第三方快递接口API调用
更多面试题请狠狠的点击 下载 快递鸟接口API调用案例,因时间仓促,没有申请EBusinessID和APPkey,申请id和替换: 接口文档及各开发语言Demo <
最新文章
- 早上突然看明白 shader和材质球的关系
- ny20 吝啬的国度
- JVM---程序计数器
- Win11让AMD很受伤:CPU游戏性能下降15%,官方建议暂时别升级
- WebService的两种方式SOAP和REST比较
- 放弃广告 反思站长收益来源
- BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
- funcode拼图游戏c语言程序,同求funcode平台下拼图游戏的C语言代码
- ymodem传输的终端工具_Serial for Mac(现代化的终端设计软件)
- javaWeb -- 虚拟主机以及虚拟目录映射的配置
- 删除oracle 连接进程,如何查看和清除oracle无用的连接进程
- 11.25晚C语言答疑
- SQL大圣之路笔记——SQL 行转列,列转行
- PCWorld盘点2011科技界15大败笔 索尼居首(图)
- 一个简化的分布式系统架构图
- vba模拟鼠标点击_利用VBA开发数据汇总工具
- 为什么电脑浏览器打不开网页但微信可以登陆
- pg_repack使用
- 万丈高楼平地起,开始给Java打地基
- 订阅新闻联播文字标题到邮箱
热门文章
- matlab优化工具箱笔记(1)
- “押注”沈腾大玩广告营销,易车烧钱能否逃过“卖身劫”?
- HDLBits(六)学习笔记——Circuits(基础门电路、多路复用器、算术电路)
- Linux初级运维常用命令面试问题
- 深信服软件测试笔试题
- 前蚂蚁金服董事长彭蕾不再担任东南亚电商Lazada CEO
- 用Python制作销售数据可视化看板,展示分析一步到位
- Python错误:SyntaxError: Non-UTF-8 code starting with
- 【JMeter】JMeter的工作原理
- 计算机丢失strom.dll,win10玩暗黑破坏神2缺少storm.dll怎么解决