辅助功能

  • 下载地址

SDK下载

Demo下载

  • 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);

	//根据响应结果,进行业务逻辑处理
	// ......
  													
											
  • 参数说明

调用参数详见 汇率查询接口