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]