目录

一、获取实名认证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 调用案例相关推荐

  1. php对接阿里云API调用企业税号查询的高级实战案例解析(下拉筛选查询、远程调用API、xm-select组件应用)

    阿里云API调用企业税号查询 一.功能描述 1.请求参数 2.GET请求代码 3.返回示例 4.错误码 二.核心代码 1.引入外部JS库 2.构建HTML容器 3.xmSelect回调 总结 一.功能 ...

  2. 【阿里云API】 阿里云API调用的若干说明

    阿里云API 为了监控我们使用的一些阿里云产品,需要些一些脚本,定时调用这些脚本来获得相关阿里云产品的信息. ■ 概述 调用阿里云API大约分成两类方法,一个是直接从HTTP协议开始,自己根据阿里云的 ...

  3. 基于Python2.7的阿里云API调用及运维相关

    基于Python2.7的阿里云API调用及运维相关 http://blog.chinaunix.net/uid-17291169-id-5212576.html 公司部分业务放在阿里云上面,虽然阿里云 ...

  4. python如何调用阿里云接口_阿里云 API调用实践(python语言)

    1.结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用. 2.SDK调用API的套路如下: 1 #-*- ...

  5. 十八、阿里云api调用

    sdk参考下载地址: https://developer.aliyun.com/tools/sdk#/python pip安装sdk: pip install aliyun-python-sdk-ec ...

  6. LyScript 插件官方API调用案例

    本人结合LyScript插件API函数实现的一些通用案例,用于演示插件内置方法是如何灵活组合运用的,其目的是让用户可以自行研究学习API函数的参数传递,并能够通过案例的学习快速掌握官方API函数的使用 ...

  7. 亚马逊国际获得AMAZON商品详情 关键字搜索API 调用案例分享

    item_get-获得AMAZON商品详情 item_search-按关键字搜索商品 公共参数 名称 类型 必须 描述 key String 是 调用key(获取测试key) secret Strin ...

  8. 实现调用阿里云API第二章——API调用实战(全球IP地址归属地查询)

    本篇将实现利用springboot实现阿里云API调用实战. 一.购买阿里云API https://market.aliyun.com/data?spm=5176.9502607.1387859.3. ...

  9. 第三方快递接口API调用

    更多面试题请狠狠的点击 下载 快递鸟接口API调用案例,因时间仓促,没有申请EBusinessID和APPkey,申请id和替换: 接口文档及各开发语言Demo <

最新文章

  1. 早上突然看明白 shader和材质球的关系
  2. ny20 吝啬的国度
  3. JVM---程序计数器
  4. Win11让AMD很受伤:CPU游戏性能下降15%,官方建议暂时别升级
  5. WebService的两种方式SOAP和REST比较
  6. 放弃广告 反思站长收益来源
  7. BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
  8. funcode拼图游戏c语言程序,同求funcode平台下拼图游戏的C语言代码
  9. ymodem传输的终端工具_Serial for Mac(现代化的终端设计软件)
  10. javaWeb -- 虚拟主机以及虚拟目录映射的配置
  11. 删除oracle 连接进程,如何查看和清除oracle无用的连接进程
  12. 11.25晚C语言答疑
  13. SQL大圣之路笔记——SQL 行转列,列转行
  14. PCWorld盘点2011科技界15大败笔 索尼居首(图)
  15. 一个简化的分布式系统架构图
  16. vba模拟鼠标点击_利用VBA开发数据汇总工具
  17. 为什么电脑浏览器打不开网页但微信可以登陆
  18. pg_repack使用
  19. 万丈高楼平地起,开始给Java打地基
  20. 订阅新闻联播文字标题到邮箱

热门文章

  1. matlab优化工具箱笔记(1)
  2. “押注”沈腾大玩广告营销,易车烧钱能否逃过“卖身劫”?
  3. HDLBits(六)学习笔记——Circuits(基础门电路、多路复用器、算术电路)
  4. Linux初级运维常用命令面试问题
  5. 深信服软件测试笔试题
  6. 前蚂蚁金服董事长彭蕾不再担任东南亚电商Lazada CEO
  7. 用Python制作销售数据可视化看板,展示分析一步到位
  8. Python错误:SyntaxError: Non-UTF-8 code starting with
  9. 【JMeter】JMeter的工作原理
  10. 计算机丢失strom.dll,win10玩暗黑破坏神2缺少storm.dll怎么解决