阿里云身份证二要素详细使用
初步:
- 先登录阿里云(找官网链接)
2、云市场搜索身份证二要素
看个人需求选择
3、我选择的是下边这个
4、接下来看文档具体调用(在请求示例中有选择语言的代码 我选择的就是java)
5、在控制台看appcode码 放入代码中
6、接下来就可以运行代码看结果
示例 我做了个小案例
- 创建一个项目
- 写一个简单的接口
- Postman测试该接口 得到结果
Controller层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserServiceImpl userService;
@RequestMapping("/hello")
public String hello(@RequestBody Map<String,String> map) throws IOException {
return userService.findAddress(map);
}
}
Service层
//import org.springframework.transaction.annotation.Transactional;
@Service
public class UserServiceImpl implements UserService {
public String findAddress(Map<String, String> map) throws IOException {
//获取用户的姓名和身份证号进行校验
String name = map.get("name");
String idCardNo = map.get("idCardNo");
String address = AliIdCardReturnAddress.getAddress(idCardNo, name);
System.out.println(address);
return address;
}
AliIdCardReturnAddress类是我自己封装的(根据阿里云提供的代码进行封装的)
AliIdCardReturnAddress类中的getAddress方法
public static String getAddress(String idCardNo,String name) throws IOException {
String host = "https://jmidcardv1.market.alicloudapi.com";
String path = "/idcard/validate";
String method = "POST";
String appcode = "自己的appcode";
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
Map<String, String> bodys = new HashMap<String, String>();
bodys.put("idCardNo", idCardNo);
bodys.put("name", name);
HttpResponse response =null;
try {
response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
} catch (Exception e) {
e.printStackTrace();
}
return EntityUtils.toString(response.getEntity());
}
HttpUtil从网站上下载(阿里官方提示的)
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
最后运行调用该接口就能得到返回结果
可以有一个实体类来接收返回结果 这样就可以选择获取哪个数据,可以使用json在线解析
将结果解析成一个实体类