Java调用支付宝身份认证接口
支付宝官方文档地址:https://opendocs.alipay.com/apis/api_2/alipay.user.certify.open.initialize
<!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
<dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.10.0.ALL</version>
</dependency>
初始化服务
private static String PRIVATEKEY = "***";private static String PUBLICKEY = "***";private static String APPID = "***";private static String SERVICEURL = "https://openapi.alipay.com/gateway.do";/*** 第一步 组装参数 获取certifyId** @throws AlipayApiException*/public void init() throws AlipayApiException {AlipayClient alipayClient = new DefaultAlipayClient(SERVICEURL, APPID, PRIVATEKEY, "json", "UTF-8", PUBLICKEY, "RSA2");AlipayUserCertifyOpenInitializeRequest request = new AlipayUserCertifyOpenInitializeRequest();//构造身份信息json对象,身份类型,证件类型,真实姓名,证件号码,详细取值参考文档JSONObject identityObj = new JSONObject();identityObj.put("identity_type", "CERT_INFO");identityObj.put("cert_type", "IDENTITY_CARD");identityObj.put("cert_name", "姓名");identityObj.put("cert_no", "123456");//构造商户配置json对象JSONObject merchantConfigObj = new JSONObject();// 设置回调地址merchantConfigObj.put("return_url", "/回调地址");//构造身份认证初始化服务业务参数数据JSONObject bizContent = new JSONObject();\//商户请求的唯一标识,商户要保证其唯一性,值为32位长度的字母数字组合;建议:前面几位字符是商户自定义的简称,中间可以使用一段时间,后段可以使用一个随机或递增序列bizContent.put("outer_order_no", "ZGYD201809132323000001234");bizContent.put("biz_code", "FACE");bizContent.put("identity_param", identityObj);bizContent.put("merchant_config", merchantConfigObj);request.setBizContent(bizContent.toJSONString());System.out.println(bizContent.toJSONString());AlipayUserCertifyOpenInitializeResponse response = alipayClient.execute(request);System.out.println(request.toString());if (response.isSuccess()) {String certifyId = response.getCertifyId();System.out.println(certifyId);} else {System.out.println("获取certifyId失败");}}
部分值需要从文档中选取:身份认证初始化服务
根据初始化得到的certifyId获取url;
/*** 根据certifyId获取url** @param certifyId* @return* @throws AlipayApiException*/public String getUrl(String certifyId) throws AlipayApiException {String url = "";AlipayClient alipayClient = new DefaultAlipayClient(SERVICEURL, APPID, PRIVATEKEY, "json", "UTF-8", PUBLICKEY, "RSA2");AlipayUserCertifyOpenCertifyRequest request = new AlipayUserCertifyOpenCertifyRequest();JSONObject bizContentObj = new JSONObject();bizContentObj.put("certify_id", certifyId);request.setBizContent(bizContentObj.toJSONString());AlipayUserCertifyOpenCertifyResponse response = alipayClient.pageExecute(request, "GET");if (response.isSuccess()) {url = response.getBody();System.out.println(url);}return url;}
进行认证(前端进行)
身份认证记录查询
/*** 查询身份验证结果* @param certify_id* @throws AlipayApiException*/public void query(String certifyId) throws AlipayApiException {AlipayClient alipayClient = new DefaultAlipayClient(SERVICEURL, APPID, PRIVATEKEY, "json", "UTF-8", PUBLICKEY, "RSA2");AlipayUserCertifyOpenQueryRequest request = new AlipayUserCertifyOpenQueryRequest();JSONObject bizContentObj = new JSONObject();bizContentObj.put("certify_id", certifyId);request.setBizContent(bizContentObj.toJSONString());AlipayUserCertifyOpenQueryResponse response = alipayClient.execute(request);if (response.isSuccess()) {System.out.println("调用成功");JSONObject body = JSONObject.parseObject(response.getBody());System.out.println(body.toString());String bodyString = body.getString("alipay_user_certify_open_query_response");JSONObject jsonObject = JSONObject.parseObject(bodyString);String passed = jsonObject.getString("passed");System.out.println(passed);} else {System.out.println("调用失败");}}
接口返回值中的body:{"alipay_user_certify_open_query_response":{"msg":"Success","code":"10000","material_info":"{}","passed":"F"},"sign":"******"}
通过response.getPassed()拿到的是空,可能jar包版本问题(没试其他版本);
不足之处,请多指教。
Java调用支付宝身份认证接口相关推荐
- 别无分号只此一家,Python3接入支付宝身份认证接口( alipay.user.certify)体系(2021年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_184 目前国内身份认证体系做的比较不错的大抵就是支付宝和微信两家了,支付宝的身份验证基于支付宝app的实人认证能力,采用多因子认证 ...
- JAVA调用支付宝直充接口
分类: 技术空间 2009-01-03 00:31 7011人阅读 评论(4) 收藏 举报 java string payment url service object JAVA调用支付宝的直充 ...
- java调用支付宝单笔转账接口
接入前准备:https://opensupport.alipay.com/support/helpcenter/192/201602472807?ant_source=zsearch API文档地址: ...
- Java支付宝身份验证接口接入指南(人脸验证)
Java支付宝身份验证接口接入指南 最近公司项目有人脸身份核验的需求,首先就想到了支付宝的身份验证接口,于是就需要看支付宝的开放api文档,这里就有些坑,然后就本次接入遇到的坑,做个整理.(基于web ...
- 个人身份认证接口介绍
个人身份认证接口主要是用于互联网核验用户信息的真实性,比如在各类网站发布信息需要实名.注册域名需要实名.办理固定电话入网需要实名.线上购买金融产品需要实名等,总之,在很多业务场景中都会需要用户进行实名 ...
- java调用第三方天气预报API接口
java调用第三方天气预报API接口 package com.sensordata.controller; import com.common.json.JSONObject; import java ...
- java调用个人微信api接口实现收发消息发朋友圈
个人微信api接口,java调用个人微信api接口实现收发消息发朋友圈 1.微信好友收发消息 /** * 给微信好友发消息 * @author wechatno:t ...
- 一个php文件实现支付宝身份认证
一个php文件实现支付宝身份认证 1.生成二维码 <?php header('Content-type:text/html; Charset=utf-8'); /*** 请填写以下配置信息 ** ...
- java 模拟天眼查登陆,基于Java卡的身份认证方法专利_专利申请于undefined_专利查询 - 天眼查...
1.一种基于Java卡的身份认证方法,包括java卡片与卡外实体,分别含有加密数据和 密钥,其特征在于,对加密数据和密钥拆进行如下操作步骤: (1) 拆分:分别将加密数据和密钥拆分为多段数据,之后将某 ...
最新文章
- 机器学习算法Python实现:基于情感词典的文本情感分析
- 2017上半年计算机教学计划,2016—2017学年度第二学期信息技术教学计划
- Vue实现的滑动切换路由组件
- Unity 8 和 Snap 将会是 Ubuntu 的未来
- 第四十八期:你太菜了,竟然不知道Code Review?
- Storm tick 功能
- 2021年中国在线旅游直播专题分析
- c语言编写的键盘记录程序,C程序读取键盘码的方法
- JetBrains GoLand 2018.3.5
- 如何安装uclient_UClient软件下载-UClient客户端下载 v2.0.0.1580官方版--pc6下载站
- 太可爱啦!程序员把电脑病毒当宠物养
- 手写体识别识别(pytorch):
- python幂次_python n次幂
- python搜索引擎根据关键词爬取内容
- 思考互联网发展三阶段
- 图解CPU生产全过程——以intel CORE i7为例,展望CPU架构
- 什么是照度(光照强度)?
- 07【需求评审】 UED
- 北京工业大学计算机考研录取名单,2018年北京工业大学考研拟录取名单公示——信息学部...
- JSON格式数据示例操作
热门文章
- [R语言]RMarkdown: 入门与操作
- PHP接口限定ip访问curl,PHP---CURL 访问接口问题
- 问题描述:the jar file jrt-fs.jar has no source attachment
- 移植st官方usb-hid程序出现babble detected错误
- HyperGBM之元学习器(meta_learner)
- 什么是遥控灯开关:工作及其应用解析
- ICP经营许可证需要多久能够下证
- JetPack知识点实战系列十:ExoPlayer进行视频播放的实现
- 数据科学如此火爆,为什么找个工作还那么难?
- 解决阿里云盾控制台wordpress IP验证不当漏洞