一、什么是银行卡三要素?
输入银行卡卡号、姓名、身份证号码,验证此三要素是否一致。支持所有带银联标识的银行卡。
二、银行卡三要素使用哪些场景?
例如:金融领域
(1)网上银行与手机银行在用户注册或添加新的银行卡时,通过银行卡三要素接口进行验证,确保用户输入的银行卡信息准确无误,保障账户安全及后续资金交易的顺利进行。例如,用户在某银行手机银行 APP 上绑定新的银行卡,系统会调用银行卡三要素接口进行验证,只有验证通过后,用户才能使用该银行卡进行转账、缴费等操作。当用户进行大额转账等重要交易时,再次验证银行卡三要素,可进一步降低交易风险,防止因银行卡信息错误导致资金错误划拨。
(2)第三方支付平台对于像支付宝、微信支付等第三方支付平台,在用户绑定银行卡进行快捷支付时,银行卡三要素接口是关键的验证环节。它可以确保用户提供的银行卡信息真实有效,保障支付过程的安全可靠。例如,用户首次在支付宝上绑定银行卡,支付宝会通过银行卡三要素接口验证信息,若信息不一致,将无法成功绑定,从而保护用户资金安全,防止他人冒用银行卡进行非法支付。在用户进行账户提现操作时,验证银行卡三要素可以确保资金准确无误地提现到用户本人名下的银行卡,避免资金提现到错误账户。
三、如何用Java实现调用接口?
下面我们以阿里云的接口为例,该接口支持4种语言,包括Java、C#、physon、PHP,我们今天要展示Java的示例代码,如下:
public static void main(String[] args) {
String host = "https://kzbank3v1.market.alicloudapi.com";
String path = "/api-mall/api/bankcard3/check";
String method = "POST";
String appcode = "你自己的AppCode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
//根据API的要求,定义相对应的Content-Type
headers.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
Map<String, String> querys = new HashMap<String, String>();
Map<String, String> bodys = new HashMap<String, String>();
bodys.put("bankcard", "银行卡号");
bodys.put("idcard", "身份证号码");
bodys.put("name", "姓名");
try {
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}
正确返回示例代码如下:
{
"msg": "成功",
"success": true,
"code": 200,
"data": {
"msg": "一致",
"result": 0, // 0一致,1不一致,2查无
"orderNo": "202406282009008501069",
"desc": "认证信息匹配"
}
}