辅助功能
下载地址
SDK 版本记录
版本 |
日期 |
说明 |
v1.0.1 |
2021-11-18 |
java sdk上线 |
身份鉴权?
简介
身份信息验证
二要素鉴权?
验证姓名+身份证号的正确性/一致性
调用示例
Java
// 商户的私钥(base64编码格式)
String base64PrivateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMpT/BKCrfkPKbMggoIQVpYL8chw8e9do+vuh5f5OsZNVm+BAtpJY+nGTBW4ggWEbtDWh4e+IsCVDzeXVDUmPO4GXro0o7QZpOVN+bo28k1x69tw65HMLTgjx3jjrQK7JdON7cqbtqWN624GVMgk5mJGu0ua+eBiOPuIBM3Re+61AgMBAAECgYEAqWvWIjHnOCzoQCSy4/KGbrKlzbA2BrgksUVVqX57Jt5PyKMBHoRh87mmsHGF/tS8boeViac/NoAa8/P2AWN5lGFl8Z9A4NlpXojA+vn7bn2fIjDzsB8s2txkmskuzzoDhUSeiPGf/HjPG7w6fl1BiHiix2xRr8Bw5wTeMJmsXQECQQDwrktdw8NP0FzmqmyFzTfz97UDsexKQfLSaFq31YydMoYlHEwsZcZhNTTBx71tni7/2eEQdVtFToAQRbEvGJBVAkEA1zTDC18DBHeGQdMwywrdc9BhbYY4a2ucc8XhRHScQzzyG4WgSFTrorLAH6QohpmFHfHm0Ws6AfDDhdQwuNTE4QJARI6hUTguLlH/5ISvHP3z7j6lBURtNknKzTyEetENmMmHhJKm8A6dj5sESB6JSuxAHwkFHxcOxJMzz27KpcutcQJAfnQNS6g3kK9e31zmJdiriXrfVMjybAReeRTEKkJO859jL9LT/MyRbReVlsIR4g1hT9gtZc6Y1j0P1pp5SpITYQJAdxwKEBXokaZwWy2gzEt3XdXBYoR5lvg/3T4GSEMBJZRmlmZpBOTbg/yYaf7lXtGUm+mZ3UZsCfJvwufit314sw==";
// 汇付国际的公钥(base64编码格式)
String base64PublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvBaKblsfXTEAFLujPiQ3PlWL1TJd+l/ApN/16BcArl6Oo18Tb6xOCLlcFBr3xgmVokc8DP32PHAQdtmS8/Y9HziMFaf8NxTNH9whA7GobU1dmVP+tI31z1S5ZO82knNW9ghbcDwLCo251AWHg5tP4wgRCBOJS+bSuyRuAW15M/wIDAQAB";
// 二要素鉴权服务的url(测试环境)
String serverUrl = "https://hfgj.testpnr.com/pay/idAuth.htm";
// 实例化客户端
GcbPayClient gcbPayClient = new DefaultGcbPayClient(serverUrl, base64PrivateKey, base64PublicKey);
// 构建请求对象
GcbIdAuthRequest request = new GcbIdAuthRequest();
String randomNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
//必填,商户号,由我司提供的商户号+01,共13位数字
request.setMerchantAcctId("1001215986501");
//必填,终端号,由我司提供的终端号
request.setTerminalId("IDCK001");
//必填,业务处理流水号,商户端鉴权请求流水号
request.setTrxId(randomNum);
//必填,证件类型,如果商户提交以商户为准,证件类型默认为身份证:1
request.setIdType("1");
//必填,姓名,-
request.setName("王文斌");
//必填,身份证号,-
request.setIdNumber("411081199004235955");
//非必填,扩展字段1,英文或中文字符串
request.setExt1("");
//非必填,扩展字段2,英文或中文字符串
request.setExt2("");
//发送请求
GcbIdAuthResponse response = gcbPayClient.execute(request);
//根据响应结果,进行业务逻辑处理
// ......
参数说明
调用参数详见 二要素鉴权接口 。
三四要素鉴权?
三要素:姓名+身份证号+银行卡号,验证三者的一致性。
四要素:姓名+身份证号+银行卡号+手机号,验证四者的一致性。
调用示例
Java
// 商户的私钥(base64编码格式)
String base64PrivateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMpT/BKCrfkPKbMggoIQVpYL8chw8e9do+vuh5f5OsZNVm+BAtpJY+nGTBW4ggWEbtDWh4e+IsCVDzeXVDUmPO4GXro0o7QZpOVN+bo28k1x69tw65HMLTgjx3jjrQK7JdON7cqbtqWN624GVMgk5mJGu0ua+eBiOPuIBM3Re+61AgMBAAECgYEAqWvWIjHnOCzoQCSy4/KGbrKlzbA2BrgksUVVqX57Jt5PyKMBHoRh87mmsHGF/tS8boeViac/NoAa8/P2AWN5lGFl8Z9A4NlpXojA+vn7bn2fIjDzsB8s2txkmskuzzoDhUSeiPGf/HjPG7w6fl1BiHiix2xRr8Bw5wTeMJmsXQECQQDwrktdw8NP0FzmqmyFzTfz97UDsexKQfLSaFq31YydMoYlHEwsZcZhNTTBx71tni7/2eEQdVtFToAQRbEvGJBVAkEA1zTDC18DBHeGQdMwywrdc9BhbYY4a2ucc8XhRHScQzzyG4WgSFTrorLAH6QohpmFHfHm0Ws6AfDDhdQwuNTE4QJARI6hUTguLlH/5ISvHP3z7j6lBURtNknKzTyEetENmMmHhJKm8A6dj5sESB6JSuxAHwkFHxcOxJMzz27KpcutcQJAfnQNS6g3kK9e31zmJdiriXrfVMjybAReeRTEKkJO859jL9LT/MyRbReVlsIR4g1hT9gtZc6Y1j0P1pp5SpITYQJAdxwKEBXokaZwWy2gzEt3XdXBYoR5lvg/3T4GSEMBJZRmlmZpBOTbg/yYaf7lXtGUm+mZ3UZsCfJvwufit314sw==";
// 汇付国际的公钥(base64编码格式)
String base64PublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvBaKblsfXTEAFLujPiQ3PlWL1TJd+l/ApN/16BcArl6Oo18Tb6xOCLlcFBr3xgmVokc8DP32PHAQdtmS8/Y9HziMFaf8NxTNH9whA7GobU1dmVP+tI31z1S5ZO82knNW9ghbcDwLCo251AWHg5tP4wgRCBOJS+bSuyRuAW15M/wIDAQAB";
// 三要素/四要素加密公钥
String bast64EncryptKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV26dQC7QEbHi/8/MYZQLGzyY2cpJGpCzl28hDp8e49cQiLs4SRFOnpPzoWux2elGfTmHOT6l5nJyysHwU8J6AZF6Vhl3vfXQdCnRcNInXfsEP+AKA26wfkpxDe/YvUqhy6MVqiful0qqO8lOCZ+PJ/4dOsqHYI/HLgJ5Wi8x9DwIDAQAB";
// 三四要素鉴权服务的url(测试环境)
String serverUrl = "https://hfgj.testpnr.com/idauth/identityAuth.htm";
// 实例化客户端
GcbPayClient gcbPayClient = new DefaultGcbPayClient(serverUrl, base64PrivateKey, base64PublicKey);
// 构建请求对象
GcbMultiFactorAuthRequest request = new GcbMultiFactorAuthRequest();
String randomNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
//必填,商户号,由我司提供的商户号+01,共13位数字
request.setMerchantAcctId("1001215986501");
//必填,终端号,由我司提供的终端号
request.setTerminalId("IDCK001");
//必填,商户请求流水号,只允许使用字母、数字、_和-,每商户提交的订单号,必须在各自系统中唯一
request.setReqNo(randomNum);
//必填,鉴权类型:03-三要素鉴权,04-四要素鉴权
request.setAuthType("03");
//必填,证件类型:身份证-1
request.setIdType("1");
String plainTxt = "";
if ("03".equals(request.getAuthType())) {
plainTxt = "name=王文斌" + "&idNumber=411081199004235955" + "&cardNumber=4682037906128888";
} else {
plainTxt = "name=王文斌" + "&idNumber=411081199004235955" + "&cardNumber=4682037906128888" + "&mobileNumber=15015160170";
}
//必填,三要素/四要素密文。加密前明文按照以下固定格式拼串;三要素:姓名=张三&证件号码=210000199009091234&银行卡号=6214888888888888;四要素:姓名=张三&证件码=210000199009091234&银行卡号=6214888888888888&手机号码=13888888888
request.setCiphertext(SecurityUtils.encrypt(plainTxt, base64PublicKey));
//非必填,扩展字段1,英文或中文字符串,鉴权完成后,按照原样返回给商户
request.setExt1("");
//非必填,扩展字段2,英文或中文字符串,鉴权完成后,按照原样返回给商户
request.setExt2("");
//发送请求
GcbMultiFactorAuthResponse response = gcbPayClient.execute(request);
//根据响应结果,进行业务逻辑处理
// ......
参数说明
调用参数详见 三四要素鉴权接口 。
汇率查询?
简介
查询指定币别与人民币的兑换汇率。
调用示例
Java
// 商户的私钥(base64编码格式)
String base64PrivateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMpT/BKCrfkPKbMggoIQVpYL8chw8e9do+vuh5f5OsZNVm+BAtpJY+nGTBW4ggWEbtDWh4e+IsCVDzeXVDUmPO4GXro0o7QZpOVN+bo28k1x69tw65HMLTgjx3jjrQK7JdON7cqbtqWN624GVMgk5mJGu0ua+eBiOPuIBM3Re+61AgMBAAECgYEAqWvWIjHnOCzoQCSy4/KGbrKlzbA2BrgksUVVqX57Jt5PyKMBHoRh87mmsHGF/tS8boeViac/NoAa8/P2AWN5lGFl8Z9A4NlpXojA+vn7bn2fIjDzsB8s2txkmskuzzoDhUSeiPGf/HjPG7w6fl1BiHiix2xRr8Bw5wTeMJmsXQECQQDwrktdw8NP0FzmqmyFzTfz97UDsexKQfLSaFq31YydMoYlHEwsZcZhNTTBx71tni7/2eEQdVtFToAQRbEvGJBVAkEA1zTDC18DBHeGQdMwywrdc9BhbYY4a2ucc8XhRHScQzzyG4WgSFTrorLAH6QohpmFHfHm0Ws6AfDDhdQwuNTE4QJARI6hUTguLlH/5ISvHP3z7j6lBURtNknKzTyEetENmMmHhJKm8A6dj5sESB6JSuxAHwkFHxcOxJMzz27KpcutcQJAfnQNS6g3kK9e31zmJdiriXrfVMjybAReeRTEKkJO859jL9LT/MyRbReVlsIR4g1hT9gtZc6Y1j0P1pp5SpITYQJAdxwKEBXokaZwWy2gzEt3XdXBYoR5lvg/3T4GSEMBJZRmlmZpBOTbg/yYaf7lXtGUm+mZ3UZsCfJvwufit314sw==";
// 汇付国际的公钥(base64编码格式)
String base64PublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvBaKblsfXTEAFLujPiQ3PlWL1TJd+l/ApN/16BcArl6Oo18Tb6xOCLlcFBr3xgmVokc8DP32PHAQdtmS8/Y9HziMFaf8NxTNH9whA7GobU1dmVP+tI31z1S5ZO82knNW9ghbcDwLCo251AWHg5tP4wgRCBOJS+bSuyRuAW15M/wIDAQAB";
// 汇率查询服务的url(测试环境)
String serverUrl = "https://hfgj.testpnr.com/pay/inquiry.htm";
// 实例化客户端
GcbPayClient gcbPayClient = new DefaultGcbPayClient(serverUrl, base64PrivateKey, base64PublicKey);
// 构建请求对象
GcbExRateQueryRequest request = new GcbExRateQueryRequest();
String randomNum = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
//必填,会员账号,由我司提供的商户号+01,共13位数字
request.setMerchantAcctId("1001215986501");
//必填,终端号,由我司提供的终端号
request.setTerminalId("IDCK001");
//必填,商户订单号,只允许使用字母、数字、_。同一商户提交的订单号,必须在自身账户交易中唯一
request.setOrderId(randomNum);
//必填,订单币种,3位币别码
request.setOrderCurrency("CNY");
//必填,商户订单金额,整型数字,单位为分。日韩元支持的最小单位为元
request.setOrderAmount("10000");
//必填,数字串,一共14位。格式为:yyyyMMddHHmmss
request.setOrderTime(time);
//非必填,扩展字段1,英文或中文字符串,原样返回给商户
request.setExt1("");
//非必填,扩展字段2,英文或中文字符串,原样返回给商户
request.setExt2("");
//发送请求
GcbExRateQueryResponse response = gcbPayClient.execute(request);
//根据响应结果,进行业务逻辑处理
// ......
参数说明
调用参数详见 汇率查询接口 。