微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java调用用户芝麻信用分

这篇文章主要为大家详细介绍了Java调用用户芝麻信用分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java调用用户芝麻信用分的具体代码,供大家参考,具体内容如下

1.导入芝麻信用API:zmxy-sdk-java-20180824112425.jar 和 fastjson-1.2.48.jar

2.代码如下:

package com.zhima; 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 Demo { //芝麻开放平台地址 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 identityParams = new HashMap(); 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... 商户透传的值,芝麻不做解析 */ } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐