小蚂蚁 发表于 2021-10-7 14:04:25

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<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)) {

    encryptedparam = splits;

   }

}

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_messagestring 缺少appid失败时的错误信息
   
open_id    string 26881...芝麻业务id
   
state    string 239...商户透传的值,芝麻不做解析
   
*/

}

}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家。
原文链接:https://blog.csdn.net/confusing_awakening/article/details/83215980

http://www.zzvips.com/article/170737.html
页: [1]
查看完整版本: Java调用用户芝麻信用分