Java如何调用芝麻信用分?
首先我觉得你肯定要去芝麻信用分官网去浏览一遍,看下接口业务流程,相关参数等。
https://b.zmxy.com.cn/technology/openDoc.htm?relInfo=zhima.credit.score.get@1.0@1.4&relType=API_DOC&LEFT_MENU_MODE=null
可以看出来相关重要的值,公私钥,相关服务ID。然后根据官网提供的SDK,示例代码,基本就可以完成。
个人总结的资料以及代码业务文档(芝麻分):
链接: https://pan.baidu.com/s/1hslY70w 密码: yc8k
个人总记的代码示例~~~~
- import java.net.URLDecoder;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.UUID;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.antgroup.zmxy.openplatform.api.DefaultZhimaClient;
- import com.antgroup.zmxy.openplatform.api.ZhimaApiException;
- import com.antgroup.zmxy.openplatform.api.internal.util.RSACoderUtil;
- import com.antgroup.zmxy.openplatform.api.request.ZhimaAuthInfoAuthorizeRequest;
- import com.antgroup.zmxy.openplatform.api.request.ZhimaAuthInfoAuthqueryRequest;
- import com.antgroup.zmxy.openplatform.api.request.ZhimaCreditScoreGetRequest;
- import com.antgroup.zmxy.openplatform.api.response.ZhimaAuthInfoAuthqueryResponse;
- import com.antgroup.zmxy.openplatform.api.response.ZhimaCreditScoreGetResponse;
- public class Test {
- //芝麻开放平台地址
- private static final String URL = "https://zmopenapi.zmxy.com.cn/openapi.do";
- //商户应用 Id
- private static final String APPID = "";
- //商户 RSA 私钥
- private static final String PRIKEY = "";
- //芝麻 RSA 公钥
- private static final String PUBKEY = "";
- //统一字符集
- private static final String CHARSET = "UTF-8";
- /**
- * 查询授权信息
- */
- public void testZhimaAuthInfoAuthorize() {
- ZhimaAuthInfoAuthorizeRequest req = new ZhimaAuthInfoAuthorizeRequest();
- req.setIdentityType("2");// 身份标识
- req.setChannel("apppc"); // PC端
- //必要参数 state: 用于给商户提供透传的参数,芝麻会将此参数透传给商户;
- req.setBizParams("{\"auth_code\":\"M_APPPC_CERT\",\"state\":\"100111211\"}");
- req.setIdentityParam("{\"certNo\":\"330621198710114617\",\"certType\":\"IDENTITY_CARD\",\"name\":\"陈金赛\"}");// 必要参数
- DefaultZhimaClient client = new DefaultZhimaClient(URL,APPID,CHARSET,PRIKEY,PUBKEY);
- try {
- String url = client.generatePageRedirectInvokeUrl(req);
- System.out.println(url);
- } catch (ZhimaApiException e) {
- e.printStackTrace();
- }
- }
- /**
- * 获取目标用户的open_id,没有openid,走授权
- */
- public void testZhimaAuthInfoReq() {
- ZhimaAuthInfoAuthqueryRequest req = new ZhimaAuthInfoAuthqueryRequest();
- // 0:芝麻信用开放账号ID 1:按照手机号进行授权 2:按照身份证+姓名进行授权 3通过公安网验证进行授权 4.通过人脸验证进行授权
- req.setIdentityType("2");
- req.setIdentityParam("{\"certNo\":\"522121198710114617\",\"certType\":\"IDENTITY_CARD\",\"name\":\"但镜宇\"}");// 必要参数
- DefaultZhimaClient client = new DefaultZhimaClient(URL,APPID,CHARSET,PRIKEY,PUBKEY);
- try {
- // 如果正常返回,直接在对象里面获取结果值
- ZhimaAuthInfoAuthqueryResponse response = client.execute(req);
- System.out.println(JSON.toJSON(response));
- /*
- 成功响应报文
- {
- "authorized": true,
- "body": "{\"success\":true,\"authorized\":true,\"open_id\":\"268816231939676969685782895\"}",
- "openId": "268816231939676969685782895",
- "params": {
- "params": "faeSa69w3kOL+ZRAuHykvufu6ogiqxA48l5hzPutKItPy/2HKtdznbzvLhutsY6KTqLgwS/Af1GN1Y7MLh+XDFtjVUf5kF/npUspRkyFUCPpASJAMxeK56vaELnZ4yCVFjVseOBYlCn4YOCZWmBpu02l7IctE6ZP3r1o4HUR+sMQYlYu2xFHfXiqX2g0vdQn81pJ/fcQ4OuBzq1d3c+qniBXf3iESni1m21nMjxeUclzCdZwXWCI1aIYQnDFgVo/58kJ9CTw/6FrffUcP+c6zvzdM8RNCefiGGuF5Vef+C6tck1kBaYoYT6BS5u4ahYteoiG+XJgzLKF+BqAplhq/A=="
- },
- "success": true
- }
- //
- 失败响应报文
- {
- "authorized": false,
- "body": "{\"success\":true,\"authorized\":false}",
- "params": {
- "params": "lGYId9CaU8McGDd8U0ZMM8Pky1/ulOE44LkgGcrWrdzmEtU1JBT5M+Jjd5e27bz45d/CNEqbwmwtg3VsozZTol42YKNi+MYzvvyZEOsUT9F68qiIPxxlOv3vGJsUpB+LJMOI8ZU7eXtHoCnbarQSOvtSylilp6dpIbAIYxbPPvSkj+7f1TiSne/7Re/XZ1qVVM18yTJyleCr+WlOe7o59lZAoiZ5bDoP2ta8MIjwlxz4/1d+IYe0f2BoZQa/9oDqJZ0MNQ0iPCbhqBKRuShPCQe8afEyOTTI0p+cROjwWTz0dwP7QXnkWBvzX3hrWXImdk7JszOVoSxAAAfwcVXNxw=="
- },
- "success": true
- }
- */
- } catch (ZhimaApiException e) {
- e.printStackTrace();
- }
- }
- /**
- * 测试查询芝麻分.
- * @throws ZhimaApiException
- */
- public static void testQueryScore() throws ZhimaApiException {
- ZhimaCreditScoreGetRequest creditScoreGetRequest = new ZhimaCreditScoreGetRequest();
- creditScoreGetRequest.setPlatform("zmop"); // 开放平台,zmop代表芝麻开放平台
- creditScoreGetRequest.setChannel("apppc"); // pc端
- //transactionId,该标记是商户每次请求的唯一标识。建议使用uuid进行传递,
- creditScoreGetRequest.setTransactionId(UUID.randomUUID().toString());
- creditScoreGetRequest.setProductCode("w1010100100000000001"); // 商户配置那块儿的产品Code
- creditScoreGetRequest.setOpenId("268816113399909561399995894"); // appid,每个人的标识
- DefaultZhimaClient client = new DefaultZhimaClient(URL,APPID,CHARSET,PRIKEY,PUBKEY);
- // 如果正常返回,直接在对象里面获取结果值
- ZhimaCreditScoreGetResponse creditScoreGetResponse = client.execute(creditScoreGetRequest);
- System.out.println(JSON.toJSON(creditScoreGetResponse));
- /*
- 成功查询响应报文
- {
- "bizNo": "ZM20160120014501763890a37b16614532255017521309",
- "body": "{\"success\":true,\"biz_no\":\"ZM20160120014501763890a37b16614532255017521309\",\"zm_score\":751}",
- "params": {
- "params": "aqiMCUg1VbZRqflPyVyLKgxShcvc3WoWLTFewqA9PvQjp6yuC99lYlGdr/Bf2FevQ2zemdPTixqQWnO7qdz0pT2x4VFWVJdldPgLVsRr37qWDcO5NjvNZzOuEYozzGSnzwhTyelqglAdzOOepM0ows+7sNVJriABtRdt1HH8gqc="
- },
- "success": true,
- "zmScore": "751"
- }
- 失败查询响应报文
- {
- "body": "{\"success\":false,\"error_code\":\"ZMCREDIT.api_product_not_match\",\"error_message\":\"输入的产品码不正确\"}",
- "errorCode": "ZMCREDIT.api_product_not_match",
- "errorMessage": "输入的产品码不正确",
- "params": {
- "params": "vJTcbtVvo0/WEG01Flve0//EbE70clk7v84B7MVJZH59/HefdyAZ1JG4opTna5ANWvY8UArsGlVIAQ+9K0169ARyJ2yoGs+0Z/fHmrXmWNNqOpcuV56A1xX6E+VOpUth8Z8RqPFKnEq4/rFJRKPA9Uhue2KM9yj6hsAbF0ZXU74="
- },
- "success": false
- }
- */
- }
- /**
- * 自动生成页面授权的url.
- * @throws Exception
- */
- public static void testPageAuth() throws Exception {
- ZhimaAuthInfoAuthorizeRequest authInfoAuthorizeRequest = new ZhimaAuthInfoAuthorizeRequest();
- authInfoAuthorizeRequest.setChannel("apppc"); // PC端
- authInfoAuthorizeRequest.setPlatform("zmop"); // 开放平台
- // 0:芝麻信用开放账号ID 1:按照手机号进行授权 2:按照身份证+姓名进行授权 3通过公安网验证进行授权 4.通过人脸验证进行授权
- authInfoAuthorizeRequest.setIdentityType("2");
- Map<String, String> identityParams = new HashMap<String, String>();
- identityParams.put("certNo", "61042619850403354X"); // 证件号码
- identityParams.put("name", "张三"); // 姓名
- identityParams.put("certType", "IDENTITY_CARD"); // 证件类型
- authInfoAuthorizeRequest.setIdentityParam(JSONObject.toJSONString(identityParams));
- DefaultZhimaClient client = new DefaultZhimaClient(URL,APPID,CHARSET,PRIKEY,PUBKEY);
- String pageAuthUrl = client.generatePageRedirectInvokeUrl(authInfoAuthorizeRequest);
- System.out.println(pageAuthUrl);
- }
- /**
- * 获取芝麻粉(GET方式)
- */
- public void testZhimaCreditWatchlistGet() {
- ZhimaCreditScoreGetRequest req = new ZhimaCreditScoreGetRequest();
- req.setProductCode("w1010100100000000001");// 必要参数
- req.setOpenId("268816231939676969685782895");// 必要参数
- DefaultZhimaClient client = new DefaultZhimaClient(URL,APPID,CHARSET,PRIKEY,PUBKEY);
- try {
- // 如果正常返回,直接在对象里面获取结果值
- ZhimaCreditScoreGetResponse response = client.execute(req);
- System.out.println(JSON.toJSON(response));
- } catch (ZhimaApiException e) {
- e.printStackTrace();
- }
- }
- /**
- * 处理回调后的参数,然后解密params
- * @param url 例如:http://xxxx.comparams%3Dxxxxx% ... xxxxx
- * @throws Exception
- */
- public static void parseFromReturnUrl(String url) throws Exception {
- int index = url.indexOf("");
- String urlParamString = url.substring(index + 1);
- String[] paraPairs = urlParamString.split("&");
- String encryptedParam = "";
- for (String paramPair : paraPairs) {
- String[] splits = paramPair.split("=");
- if ("params".equals(splits[0])) {
- encryptedParam = splits[1];
- }
- }
- String decryptedParam = RSACoderUtil.decrypt(URLDecoder.decode(encryptedParam, CHARSET),
- PRIKEY, CHARSET);
- //通过浏览器返回时,不需要decode
- System.out.println(URLDecoder.decode(decryptedParam, CHARSET));
- /*
- params主要JSON参数如下:
- 名称 类型 示例值 备注
- success String success 请求成功还是失败的标识
- error_code String 000001 失败时的错误码
- error_message String 缺少appId 失败时的错误信息
- open_id String 26881... 芝麻业务id
- state String 239... 商户透传的值,芝麻不做解析
- */
- }
- }
Java如何调用芝麻信用分?相关推荐
- android客户端直接调用芝麻信用的人脸认证
按理说,这些都应该是服务端完成的事情.可是由于种种原因,我放了一句狠话... 然后只能自己搞了.... 1.由于芝麻信用提供的SDK,在android端直接使用SSL证书验证是不通过的.所以当时有点后 ...
- 【学习笔记】互联网金融:芝麻信用分的建模过程
学习资料: 数据分析学习随记 | 互联网金融行业2C授信模型(芝麻信用) 1. 背景 互联网金融的本质是风控. 1.1 数据分析师的角色 数据分析师在金融行业基本上有两种角色: 1.1.1 数据建模师 ...
- php 芝麻信用api接口,PHP 蚂蚁芝麻信用分接口
PHP 蚂蚁芝麻信用分接口 发布时间:2020-05-25 08:06:07 来源:51CTO 阅读:136895 作者:pansw113 //私钥和公钥在芝麻信用后台设置,官网有详细说明 class ...
- 芝麻信用分750以上有什么特殊作用?
芝麻是蚂蚁金服旗下的一个信用体系,它的信息采集来源包括阿里巴巴体系里的一些平台,比如淘宝,天猫,借呗,花呗,支付宝,余额宝以及其他授权芝麻信用获取信息的平台. 而芝麻信用分的高低代表的是一个人综合的信 ...
- 为什么你的支付宝芝麻信用分就是不涨?
支付宝芝麻信用分越来越重要,应用场景越来越多,免押租物.信用购.办理证件手续.信用金融等. 芝麻信用分的高低,有时能直接影响你能否享受某些特权,还是比较重要的. 有的同学比较疑惑,为什么一直在守约,但 ...
- 大家的芝麻信用分都是多少?
支付宝的芝麻信用分对于用户来说可以说是非常重要的一个用户信用衡量标准的,而且支付宝芝麻信用分的衡量条件也是各不相同的,那么下面和大家一起来说一说支付宝芝麻信用分的作用的功能以及其评估的方式. 目前支付 ...
- 微信上线支付分对标芝麻信用分,教你如何开通!
支付宝很早以前就推出了芝麻信用分,相信大家应该都开通并正在使用,它的高低在一定程度上可以反映一个人的信用状况,可以用来做某些租赁服务的免押金门槛,甚至可以作为申请加拿大签证的重要资料,非常实用.类似的 ...
- 微信支付分开通了!对飙芝麻信用分!开通与查看攻略!
微信支付分是微信体系下对个人的消费.守约等行为的综合计算分值,为用户提供更便捷的生活方式!其实就是微信的芝麻信用分~ 如何开通?目前可以接入微信支付分的商户所提供的指定服务中,申请开通微信支付分.比如 ...
- 如何快速把芝麻信用分提高到750以上?
支付宝圈子要求芝麻信用分在750以上,那么最快提分的方式是什么.那么使用诸如像电兔贷款这样的网贷平台借款,能否快速提升积分呢? 首先我们来看看芝麻信用分是什么? 芝麻信用评分,是在用户授权的情况下,依 ...
- 淘宝芝麻信用分提升方法技巧
最近小编为大家介绍了一些关于芝麻信用分相关内容教程,不知道大家有没有看呢?今天还是有关芝麻信用分的内容,如何快速提升我们的信用分数?这也是有技巧的哦,一起来看看吧! 支付宝的芝麻信用分影响到蚂蚁花呗和 ...
最新文章
- 让协同工作更加轻松——Office 2007面面观之(8)
- shell中的条件表达式
- DDD - 如何理解Entity与VO
- POCO C++库学习和分析
- 高度有用的Java ChronoUnit枚举
- 计算机分php,计算机按照处理数据的形态分类,可以分为什么?
- vue监控指定div滑动触底
- php数据库根据手机号获取归属地,PHP通过API获取手机号码归属地
- center os 安装 mysql_MySQL数据库之center os 7 Mysql 安装
- smartsvn破解版
- Python 代理验证程序(For 无忧代理) 多线程版
- 神秘的乌克兰地狱之门
- vs code默认浏览器
- 《GPU编程与CG语言之阳春白雪下里巴人》 读书笔记1
- CF 339C Xenia and Weights 背包
- Android DEX安全攻防战
- 做软件开发,客户难找?接单难?怎么办?
- AMBA总线-结合axi-vip对axi4协议的理解1
- linux C++ 获取当前时间,以标准时间“年-月-日 时:分:秒”的形式输出
- 搞定 conda 安装包报错问题