首页 > 开发 > Java > 正文

Java调用用户芝麻信用分

2024-07-14 08:42:52
字体:
来源:转载
供稿:网友

本文实例为大家分享了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<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...  商户透传的值,芝麻不做解析     */ }}

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表