美文网首页
芝麻认证以及信用分查看测试

芝麻认证以及信用分查看测试

作者: 假鞋子 | 来源:发表于2017-05-08 20:50 被阅读0次

    关于芝麻信用认证和授权,请先下载官方的jdk,并将xxxx处填写有效信息。或者点击下载

    package ailv;
    
    import java.io.UnsupportedEncodingException;
    import java.net.URLDecoder;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    
    import com.antgroup.zmxy.openplatform.api.DefaultZhimaClient;
    import com.antgroup.zmxy.openplatform.api.ZhimaApiException;
    import com.antgroup.zmxy.openplatform.api.request.ZhimaAuthInfoAuthorizeRequest;
    import com.antgroup.zmxy.openplatform.api.request.ZhimaCustomerCertificationCertifyRequest;
    import com.antgroup.zmxy.openplatform.api.request.ZhimaCustomerCertificationInitializeRequest;
    import com.antgroup.zmxy.openplatform.api.request.ZhimaCustomerCertificationQueryRequest;
    import com.antgroup.zmxy.openplatform.api.response.ZhimaCustomerCertificationInitializeResponse;
    import com.antgroup.zmxy.openplatform.api.response.ZhimaCustomerCertificationQueryResponse;
    
    
    
    public class Test {
        
        //芝麻开放平台地址
        private String gatewayUrl     = "https://zmopenapi.zmxy.com.cn/openapi.do";
        //商户应用 Id
        private String appId          = "xxxxx";
        //商户 RSA 私钥
        private String privateKey     = "xxxxx";
        //芝麻 RSA 公钥
        private String zhimaPublicKey = "xxxxx";
                                        
        
        private String biz_no = "";
            
        //认证初始化,根据信息获取biz_no,用户可以据次对账
        public String  getBiz_no(String name,String idCard) {
            ZhimaCustomerCertificationInitializeRequest request = new ZhimaCustomerCertificationInitializeRequest();
            request.setPlatform("zmop");
            //request.setTransactionId(Serial.dao.getNewCode("transactionId"));// 必要参数,可以了解为和芝麻的订单号,自定义生成,芝麻的transid小于32位
            request.setTransactionId("zmxy20170511123456123");
            request.setProductCode("w1010100000000002978");// 必要参数,认证的产品编号,此处不变
            request.setBizCode("FACE");// 必要参数,认证方式,
            request.setIdentityParam("{\"identity_type\":\"CERT_INFO\",\"cert_type\":\"IDENTITY_CARD\",\"cert_name\":\""+name+"\",\"cert_no\":\""+idCard+"\"}");// 必要参数
            request.setExtBizParam("{}");// 必要参数
            DefaultZhimaClient client = new DefaultZhimaClient(
                gatewayUrl,
                appId,
                privateKey,
                zhimaPublicKey);
            try {
                ZhimaCustomerCertificationInitializeResponse response = (ZhimaCustomerCertificationInitializeResponse) client
                    .execute(request);
                //System.out.println(response.isSuccess());
                //System.out.println(response.getErrorCode());
                //System.out.println(response.getErrorMessage());
                //System.out.println(response.getBizNo());
                System.out.println(response.getBody());
                biz_no = response.getBizNo();
            } catch (ZhimaApiException e) {
                e.printStackTrace();
            }
            return biz_no;
        }
            
        //创建加密url,复制到手机浏览器打开app
        public void createdUrl(){
            if(biz_no==null){
                System.out.print("出错");
                return;
            }
            ZhimaCustomerCertificationCertifyRequest request = new ZhimaCustomerCertificationCertifyRequest();
            request.setPlatform("zmop");
            request.setBizNo(biz_no);// 必要参数
            // 设置回调地址,必填. 如果需要直接在支付宝APP里面打开回调地址使用alipay协议
            // alipay://www.taobao.com 或者 alipays://www.taobao.com,分别对应http和https请求
            request.setReturnUrl("http://localhost");// 必要参数
            DefaultZhimaClient client = new DefaultZhimaClient(gatewayUrl, appId, privateKey,zhimaPublicKey);
            try {
                String url = client.generatePageRedirectInvokeUrl(request);
                System.out.println("generateCertifyUrl url:" + url);
            } catch (ZhimaApiException e) {
                e.printStackTrace();
            }
        }
            
            //认证查询
        public void CertificationQuery(){
             ZhimaCustomerCertificationQueryRequest req = new ZhimaCustomerCertificationQueryRequest();
             req.setChannel("apppc");
             req.setPlatform("zmop");
             req.setBizNo(biz_no);// 必要参数 
             DefaultZhimaClient client = new DefaultZhimaClient(gatewayUrl, appId, privateKey, zhimaPublicKey);
             try {
                 ZhimaCustomerCertificationQueryResponse response =(ZhimaCustomerCertificationQueryResponse)client.execute(req);
                 System.out.println(response.isSuccess());
                 System.out.println(response.getErrorCode());
                 System.out.println(response.getErrorMessage());
                 System.out.println(response.getBody());
             } catch (ZhimaApiException e) {
                 e.printStackTrace();
             }
        }
            
            
        //获取用户进行授权操作的url,当点击操作授权后,会跳转到指定页面,同时携带open_id
        public void  testZhimaAuthInfoAuthorize(String name,String idCard, String state) {
            ZhimaAuthInfoAuthorizeRequest req = new ZhimaAuthInfoAuthorizeRequest();
            req.setChannel("apppc");
            req.setPlatform("zmop");
            req.setIdentityType("2");// 必要参数 
            req.setIdentityParam("{\"name\":\""+name+"\",\"certType\":\"IDENTITY_CARD\",\"certNo\":\""+idCard+"\"}");// 必要参数 
            req.setBizParams("{\"auth_code\":\"M_APPSDK\",\"channelType\":\"app\",\"state\":\""+state+"\"}");// 
            DefaultZhimaClient client = new DefaultZhimaClient(gatewayUrl, appId, privateKey, zhimaPublicKey);
            try {
                String url = client.generatePageRedirectInvokeUrl(req);
                System.out.println(url);
            } catch (ZhimaApiException e) {
                e.printStackTrace();
            }
        }
    
        //解密验签url
        public Map<String,String> getResult(String url) {
            //将加密前的url参数放在map中
            Map<String,String> paramsMap = URLParamsToMap(url);
            
             //从回调URL中获取params参数
            String params = paramsMap.get("params");
            //从回调URL中获取sign参数
            String sign = paramsMap.get("sign");
            //需要将最后解析好的url参数放在map中,所以先定义好
            String result = "";
            
            DefaultZhimaClient client = new DefaultZhimaClient(gatewayUrl, appId, privateKey, zhimaPublicKey);
            try {
                result = client.decryptAndVerifySign(params, sign);
            } catch (ZhimaApiException e) {
                e.printStackTrace();
            }
            return URLParamsToMap(result);        
        }
        
        //将url参数改成放到map中
        public Map<String,String> URLParamsToMap(String url){
            Map<String,String> params = new HashMap<String,String>();
            String parameterString = url.substring(url.indexOf("?")+1);
            String[] parameterKeyValues = parameterString.split("&");
             
            for (int i = 0; i < parameterKeyValues.length; i++) {
                 String[] KeyValues = parameterKeyValues[i].split("=");
                 //可能会出现有key没有value的情况
                 if(KeyValues.length == 1){
                     KeyValues = Arrays.copyOf(KeyValues, 2);
                     KeyValues[1] = null;
                 }
                 String key = KeyValues[0].trim();
                 String values;
                try {
                    values = null == KeyValues[1] ? null : URLDecoder.decode(KeyValues[1].trim(),"UTF-8");
                    params.put(key, values);
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
             }
            return params;
        }
        
        public static void main(String[] args) {
            Test result = new  Test();
            //result.getBiz_no("XXX","xxxxx");
            //result.createdUrl();
            //result.testZhimaAuthInfoAuthorize("XXX","xxxxx");
            //result.getResult(此处填写回传的url即上面方法的返回值授权后的url);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:芝麻认证以及信用分查看测试

          本文链接:https://www.haomeiwen.com/subject/mamwzttx.html