本文介紹銀行卡要素(銀行卡二要素、銀行卡三要素和銀行卡四要素)API接口。
接口信息
接口名稱:BankMetaVerify。
服務地址:
北京地域:cloudauth.cn-beijing.aliyuncs.com(IPv4)或cloudauth-dualstack.cn-beijing.aliyuncs.com(IPv6)。
上海地域:cloudauth.cn-shanghai.aliyuncs.com(IPv4)或cloudauth-dualstack.cn-shanghai.aliyuncs.com(IPv6)。
請求方法:POST和GET。
傳輸協議:HTTPS。
接口說明:銀行卡要素一致性核驗, 包含:
銀行卡二要素(姓名+銀行卡號)。
銀行卡三要素(姓名+證件號碼+銀行卡號)。
銀行卡四要素(姓名+證件號碼+手機號+銀行卡號)。
請求參數
名稱 | 類型 | 是否必選 | 描述 | 示例值 |
ParamType | String | 是 | 參數類型:
說明 請在如下入參字段中詳細閱讀MD5加密規則。 | normal |
VerifyMode | Strng | 是 | VERIFY_BANK_CARD:銀行卡認證模式。 表示將傳入的銀行卡號和用戶的真實姓名、證件號、手機號是否匹配。 | VERIFY_BANK_CARD |
ProductType | String | 是 | 調用產品類型:
| BANK_CARD_4_META |
BankCard | String | 是 | 銀行卡號:
| 1234567890**** |
UserName | String | 是 | 姓名:
| 張三 |
IdentityType | String | 否 | 證件類型(傳空值默認為身份證,其他證件類型詳見下表)。 | 01 |
IdentifyNum | String | 否 | 證件號:
重要 ProductType為以下取值時,此項必選。
| 33010312345678**** |
Mobile | String | 否 | 手機號:
重要 ProductType = BANK_CARD_4_META 時,此項必選。 | 1304567**** |
證件類型列表
IdentityType | 對應證件 |
01 | 身份證 |
02 | 軍官證 |
03 | 護照 |
04 | 港澳居民來往內地通行證 |
05 | 臺灣居民來往大陸通行證 |
06 | 警官證 |
07 | 士兵證 |
08 | 外國護照 |
09 | 外國人永久居留身份證 |
10 | 港澳居民居住證 |
11 | 臺灣居民居住證 |
響應參數
名稱 | 類型 | 描述 | 示例值 | |
RequestId | String | 請求ID。 | 130A2C10-B9EE-4D84-88E3-5384FF039795 | |
Message | String | 返回信息。 | success | |
Code | String | 返回碼:200為成功,其他為失敗。 重要
| 200 | |
ResultObject | BizCode | String | 核驗結果:
| 1 |
SubCode | String | 核驗詳情:
| 101 |
SDK調用示例
以下為您介紹不同語言SDK的調用示例。
Java
使用Maven引入SDK:
以下依賴版本僅供參考,建議在實際配置時獲取最新依賴版本。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>cloudauth20190307</artifactId>
<version>2.8.0</version>
</dependency>
Credentials工具配置方法,請參見管理訪問憑據。
示例:
import com.aliyun.cloudauth20190307.Client;
import com.aliyun.cloudauth20190307.models.BankMetaVerifyRequest;
import com.aliyun.cloudauth20190307.models.BankMetaVerifyResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
import java.util.Arrays;
import java.util.List;
public class BankMetaVerify {
public static void main(String[] args) throws Exception {
// 通過以下代碼創建API請求并設置參數。
BankMetaVerifyRequest request = new BankMetaVerifyRequest();
request.setParamType("normal");
request.setProductType("BANK_CARD_4_META");
request.setVerifyMode("VERIFY_BANK_CARD");
request.setUserName("張**");
request.setIdentifyNum("411***************");
request.setBankCard("621****************");
request.setMobile("131********");
// 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
request.setIdentityType("01");
// 推薦,支持服務路由。
BankMetaVerifyResponse response = bankMetaVerifyAutoRoute(request);
// 不支持服務自動路由。
//BankMetaVerifyResponse response = bankMetaVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
System.out.println(response.getBody().getRequestId());
System.out.println(response.getBody().getCode());
System.out.println(response.getBody().getMessage());
System.out.println(response.getBody().getResultObject() == null ? null
: response.getBody().getResultObject().getBizCode());
System.out.println(response.getBody().getResultObject() == null ? null
: response.getBody().getResultObject().getSubCode());
}
private static BankMetaVerifyResponse bankMetaVerifyAutoRoute(BankMetaVerifyRequest request) {
// 上海區域服務:第一個為主區域Endpoint,第二個為備區域Endpoint。
List<String> endpoints = Arrays.asList("cloudauth.cn-shanghai.aliyuncs.com", "cloudauth.cn-beijing.aliyuncs.com");
// 北京區域服務:第一個為主區域Endpoint,第二個為備區域Endpoint。
// List<String> endpoints = Arrays.asList("cloudauth.cn-beijing.aliyuncs.com", "cloudauth.cn-shanghai.aliyuncs.com");
BankMetaVerifyResponse lastResponse = null;
for (int i=0; i<endpoints.size(); i++) {
try {
BankMetaVerifyResponse response = bankMetaVerify(endpoints.get(i), request);
lastResponse = response;
// 服務端錯誤,切換到下個區域調用。
if(response != null){
if(500 == response.getStatusCode()){
continue;
}
if(response.getBody() != null){
if("500".equals(response.getBody().getCode())){
continue;
}
}
}
return response;
} catch (Exception e) {
e.printStackTrace();
if(i == endpoints.size()-1){
throw new RuntimeException(e);
}
}
}
return lastResponse;
}
private static BankMetaVerifyResponse bankMetaVerify(String endpoint, BankMetaVerifyRequest request)
throws Exception {
// 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
// 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
// 本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。如何配置環境變量,請參見http://m.bestwisewords.com/document_detail/378657.html。
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config();
config.setCredential(credentialClient);
config.setEndpoint(endpoint);
// 設置http代理。
//config.setHttpProxy("http://xx.xx.xx.xx:xxxx");
// 設置https代理。
//config.setHttpsProxy("http://xx.xx.xx.xx:xxxx");
Client client = new Client(config);
// 創建RuntimeObject實例并設置運行參數。
RuntimeOptions runtime = new RuntimeOptions();
runtime.readTimeout = 5000;
runtime.connectTimeout = 5000;
return client.bankMetaVerifyWithOptions(request, runtime);
}
}
PHP
關于PHP SDK源代碼,請參見PHP SDK包。
通過Composer來管理項目依賴(推薦)
composer require alibabacloud/cloudauth-20190307 2.5.0
使用composer.json文件
{ "require": { "alibabacloud/cloudauth-20190307": "2.5.0" } }
示例:
<?php
namespace AlibabaCloud\SDK\Sample\Verify\Id;
use AlibabaCloud\Credentials\Credential;
use AlibabaCloud\SDK\Cloudauth\V20190307\Cloudauth;
use AlibabaCloud\SDK\Cloudauth\V20190307\Models\BankMetaVerifyRequest;
use AlibabaCloud\SDK\Cloudauth\V20190307\Models\BankMetaVerifyResponse;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use Exception;
class BankMetaVerify
{
/**
* createClient
* @param string $endpoint
* @return Cloudauth
*/
public static function createClient(string $endpoint): Cloudauth
{
// 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
// 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
// 本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。如何配置環境變量,請參見 http://m.bestwisewords.com/document_detail/311677.html。
$credential = new Credential([]);
$config = new Config([
// 使用credential配置憑證
"credential" => $credential,
// 設置HTTP代理。
// "httpProxy" => "<http://xx.xx.xx.xx:xxxx>",
// 設置HTTPS代理
// "httpsProxy" => "<https://xx.xx.xx.xx:xxxx>",
"endpoint" => $endpoint
]);
return new Cloudauth($config);
}
/**
* @return void
*/
public static function main(){
$request = new BankMetaVerifyRequest([
"paramType" => "normal",
"productType" => "BANK_CARD_4_META",
"verifyMode" => "VERIFY_BANK_CARD",
"userName" => "張*",
"identifyNum" => "411***************",
"bankCard" => "621*****************",
"mobile" => "131********",
// 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
"identityType" => "01",
]);
// 推薦,支持服務路由。
$response = self::bankMetaVerifyAutoRoute($request);
// 不支持服務自動路由。
// $response = self::bankMetaVerify("cloudauth.cn-shanghai.aliyuncs.com", $request);
var_dump($response->body->requestId);
var_dump($response->body->code);
var_dump($response->body->message);
var_dump($response->body->resultObject->bizCode);
var_dump($response->body->resultObject->subCode);
}
/**
* bankMetaVerifyAutoRoute
* @param BankMetaVerifyRequest $request
* @return BankMetaVerifyResponse|null
*/
public static function bankMetaVerifyAutoRoute(BankMetaVerifyRequest $request): ?BankMetaVerifyResponse
{
//上海區域推薦使用
$endpoints = [
"cloudauth.cn-shanghai.aliyuncs.com",
"cloudauth.cn-beijing.aliyuncs.com"
];
//北京區域推薦使用
// $endpoints = [
// "cloudauth.cn-beijing.aliyuncs.com",
// "cloudauth.cn-shanghai.aliyuncs.com"
// ];
foreach($endpoints as $endpoint){
try {
$response = self::bankMetaVerify($endpoint, $request);
if (Utils::equalNumber(500, $response->statusCode)) {
continue;
}
if(Utils::equalString("500", $response->body->code)){
continue;
}
return $response;
}
catch (Exception $err) {
var_dump($err -> getCode());
var_dump($err -> getMessage());
}
}
return null;
}
/**
* bankMetaVerify
* @param string $endpoint
* @param BankMetaVerifyRequest $request
* @return BankMetaVerifyResponse
*/
public static function bankMetaVerify(string $endpoint, BankMetaVerifyRequest $request): BankMetaVerifyResponse
{
$client = self::createClient($endpoint);
// 創建RuntimeObject實例并設置運行參數。
$runtime = new RuntimeOptions([]);
$runtime->readTimeout = 5000;
$runtime->connectTimeout = 5000;
return $client->bankMetaVerifyWithOptions($request, $runtime);
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
BankMetaVerify::main();
Credentials工具配置方法,請參見管理訪問憑據。
Python
關于Python SDK源代碼,請參見Python SDK包。
引入依賴并安裝SDK:
pip install alibabacloud_tea_openapi==0.2.5
pip install alibabacloud_credentials==0.3.2
pip install alibabacloud_cloudauth20190307==2.5.0
Credentials工具配置方法,請參見管理訪問憑據。
示例:
from alibabacloud_cloudauth20190307.client import Client as CloudauthClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_cloudauth20190307 import models as cloudauth_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_tea_util import models as util_models
from alibabacloud_credentials.client import Client as CredClient
class BankMetaVerify:
def __init__(self):
pass
@staticmethod
def create_client(
endpoint: str,
) -> CloudauthClient:
# 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
# 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
# 本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。如何配置環境變量,請參見 http://m.bestwisewords.com/zh/sdk/developer-reference/configure-credentials。
cred=CredClient()
config = open_api_models.Config(
credential=cred,
# 設置HTTP代理。
# http_proxy='http://xx.xx.xx.xx:xxxx',
# 設置HTTPS代理。
# https_proxy='https://username:password@xxx.xxx.xxx.xxx:9999',
endpoint=endpoint
)
return CloudauthClient(config)
@staticmethod
def main() -> None:
request = cloudauth_models.BankMetaVerifyRequest(
param_type='normal',
verify_mode = "VERIFY_BANK_CARD",
product_type = "BANK_CARD_4_META",
user_name='張x',
identify_num='411***************',
bank_card = "621*****************",
mobile = "131********",
# 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
identityType = "01"
)
response = BankMetaVerify.bank_meta_verify_auto_route(request)
# 不支持服務自動路由。
# response = BankMetaVerify.bank_meta_verify('cloudauth.cn-shanghai.aliyuncs.com', request)
print(response.body.request_id)
print(response.body.code)
print(response.body.message)
print(response.body.result_object.biz_code)
print(response.body.result_object.sub_code)
@staticmethod
def bank_meta_verify_auto_route(
request: cloudauth_models.BankMetaVerifyRequest,
) -> cloudauth_models.BankMetaVerifyResponse:
# 上海區域推薦使用
endpoints = [
'cloudauth.cn-shanghai.aliyuncs.com',
'cloudauth.cn-beijing.aliyuncs.com'
]
# 北京區域推薦使用
# endpoints = [
# 'cloudauth.cn-beijing.aliyuncs.com',
# 'cloudauth.cn-shanghai.aliyuncs.com'
# ]
for endpoint in endpoints:
try:
response = BankMetaVerify.bank_meta_verify(endpoint, request)
if UtilClient.equal_number(500, response.status_code):
continue
if response is not None and response.body is not None:
if UtilClient.equal_string("500", response.body.code):
continue
return response
except Exception as err:
print(err)
continue
return None
@staticmethod
def bank_meta_verify(
endpoint: str,
request: cloudauth_models.BankMetaVerifyRequest,
) -> cloudauth_models.BankMetaVerifyResponse:
client = BankMetaVerify.create_client(endpoint)
# 創建RuntimeObject實例并設置運行參數。
runtime = util_models.RuntimeOptions()
runtime.read_timeout = 5000
runtime.connect_timeout = 5000
return client.bank_meta_verify_with_options(request, runtime)
if __name__ == '__main__':
BankMetaVerify.main()
Go
引入Credentials工具并安裝SDK:
go get -u github.com/aliyun/credentials-go
go get github.com/alibabacloud-go/cloudauth-20190307/v3
Credentials工具配置方法,請參見管理訪問憑據。
示例:
package main
import (
"fmt"
cloudauth "github.com/alibabacloud-go/cloudauth-20190307/v3/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
"github.com/aliyun/credentials-go/credentials"
)
func CreateClient (endpoint *string) (_result *cloudauth.Client, _err error) {
//阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
//強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
//本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。
// 初始化Credential。
credential, _err := credentials.NewCredential(nil)
if _err != nil {
panic(_err)
}
// 初始化Client。
config := &openapi.Config{
// 使用Credential配置憑證。
Credential: credential,
Endpoint: endpoint,
// 設置HTTP代理。
// HttpProxy: tea.String("http://xx.xx.xx.xx:xxxx"),
// 設置HTTPS代理。
// HttpsProxy: tea.String("https://username:password@xxx.xxx.xxx.xxx:9999"),
}
//_result = &cloudauth.Client{}
_result, _err = cloudauth.NewClient(config)
return _result, _err
}
func _main () (_err error) {
request := &cloudauth.BankMetaVerifyRequest{
ParamType: tea.String("normal"),
UserName: tea.String("張*"),
IdentifyNum: tea.String("411***************"),
VerifyMode: tea.String("VERIFY_BANK_CARD"),
ProductType: tea.String("BANK_CARD_4_META"),
BankCard: tea.String("621*****************"),
Mobile: tea.String("131********"),
// 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
IdentityType: tea.String("01")
}
response, _err := BankMetaVerifyAutoRoute(request)
// 不支持服務自動路由。
// response, _err := BankMetaVerify(tea.String("cloudauth.cn-shanghai.aliyuncs.com"), request)
if _err != nil {
return _err
}
fmt.Println(*response.Body.RequestId)
fmt.Println(*response.Body.Code)
fmt.Println(*response.Body.Message)
fmt.Println(*response.Body.ResultObject.BizCode)
fmt.Println(*response.Body.ResultObject.SubCode)
return _err
}
func BankMetaVerifyAutoRoute (request *cloudauth.BankMetaVerifyRequest) (_result *cloudauth.BankMetaVerifyResponse, _err error) {
// 上海區域推薦使用
endpoints := []*string{tea.String("cloudauth.cn-shanghai.aliyuncs.com"), tea.String("cloudauth.cn-beijing.aliyuncs.com")}
// 北京區域推薦使用
// endpoints := []*string{tea.String("cloudauth.cn-beijing.aliyuncs.com"), tea.String("cloudauth.cn-shanghai.aliyuncs.com")}
var lastResponse *cloudauth.BankMetaVerifyResponse
for _, endpoint := range endpoints {
response, _err := BankMetaVerify(endpoint, request)
lastResponse = response
if _err != nil {
var err = &tea.SDKError{}
if _t, ok := _err.(*tea.SDKError); ok {
err = _t
// 系統異常,切換到下個地域調用。
if *err.StatusCode == 500 {
continue
}
}
return _result, _err
}
if *response.StatusCode == 500 {
continue
}
if *response.Body.Code == "500"{
continue
}
_result = response
return _result, _err
}
_result = lastResponse
return _result, _err
}
func BankMetaVerify (endpoint *string, request *cloudauth.BankMetaVerifyRequest) (_result *cloudauth.BankMetaVerifyResponse, _err error) {
client, _err := CreateClient(endpoint)
if _err != nil {
return _result, _err
}
// 創建RuntimeObject實例并設置運行參數。
runtime := &util.RuntimeOptions{}
runtime.ReadTimeout = tea.Int(5000)
runtime.ConnectTimeout = tea.Int(5000)
_result = &cloudauth.BankMetaVerifyResponse{}
_body, _err := client.BankMetaVerifyWithOptions(request, runtime)
if _err != nil {
return _result, _err
}
_result = _body
return _result, _err
}
func main() {
err := _main()
if err != nil {
panic(err)
}
}
.NET
引入依賴并安裝SDK:
方式一:通過.NET命令行安裝。
dotnet add package AlibabaCloud.SDK.Cloudauth20190307 --version 2.5.0 dotnet add package Aliyun.Credentials
方式二:使用包管理安裝。
Install-Package AlibabaCloud.SDK.Cloudauth20190307 -Version 2.5.0 Install-Package Aliyun.Credentials
Credentials工具配置方法,請參見管理訪問憑證。
示例:
using System;
using System.Collections.Generic;
using Tea;
namespace BankMetaVerify
{
public class Program
{
public static AlibabaCloud.SDK.Cloudauth20190307.Client CreateClient(string endpoint)
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
Credential=new Aliyun.Credentials.Client(null)
};
config.Endpoint = endpoint;
return new AlibabaCloud.SDK.Cloudauth20190307.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyRequest request = new AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyRequest
{
ParamType = "normal",
VerifyMode = "VERIFY_BANK_CARD",
ProductType = "BANK_CARD_4_META",
UserName = "張*",
IdentifyNum = "411***************",
BankCard = "621*****************",
Mobile = "131********",
// 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
IdentityType = "01"
};
AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse response = BankMetaVerifyAutoRoute(request);
// 不支持服務自動路由。
//AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse response = BankMetaVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
Console.WriteLine(response.Body.RequestId);
Console.WriteLine(response.Body.Code);
Console.WriteLine(response.Body.Message);
Console.WriteLine(response.Body.ResultObject.BizCode);
Console.WriteLine(response.Body.ResultObject.SubCode);
}
public static AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse BankMetaVerifyAutoRoute(AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyRequest request)
{
// 上海區域推薦使用
List<string> endpoints = new List<string>
{
"cloudauth.cn-shanghai.aliyuncs.com",
"cloudauth.cn-beijing.aliyuncs.com"
};
// 北京區域推薦使用
// List<string> endpoints = new List<string>
// {
// "cloudauth.cn-beijing.aliyuncs.com",
// "cloudauth.cn-shanghai.aliyuncs.com"
// };
AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse lastResponse = null;
foreach (var endpoint in endpoints)
{
try
{
AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse response = BankMetaVerify(endpoint, request);
lastResponse = response;
if (response is not null)
{
if (AlibabaCloud.TeaUtil.Common.EqualNumber(500, (int)(response.StatusCode)))
{
continue;
}
if (response.Body is not null)
{
if (AlibabaCloud.TeaUtil.Common.EqualString("500", response.Body.Code))
{
continue;
}
}
}
return response;
}
catch (TeaException err)
{
Console.WriteLine(err);
// 網絡異常,切換到下個區域調用。
if (AlibabaCloud.TeaUtil.Common.EqualString("ServiceUnavailable", err.Code))
{
continue;
}
}
catch (Exception _err)
{
Console.WriteLine(_err);
continue;
}
}
return lastResponse;
}
public static AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyResponse BankMetaVerify(string endpoint, AlibabaCloud.SDK.Cloudauth20190307.Models.BankMetaVerifyRequest request)
{
AlibabaCloud.SDK.Cloudauth20190307.Client client = CreateClient(endpoint);
// 創建RuntimeObject實例并設置運行參數。
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
runtime.ReadTimeout = 5000;
runtime.ConnectTimeout = 5000;
return client.BankMetaVerifyWithOptions(request, runtime);
}
}
}
Node.js
引入依賴并安裝SDK:
npm install @alicloud/tea-util
npm install @alicloud/openapi-client
npm install @alicloud/cloudauth20190307@2.4.0
npm install @alicloud/credentials
Credentials工具配置方法,請參見管理訪問憑證。
示例:
const Config = require("@alicloud/openapi-client");
const CloudAuth = require("@alicloud/cloudauth20190307");
const CloudAuthClient = CloudAuth.default;
const {RuntimeOptions} = require("@alicloud/tea-util");
const { default: Credential } = require('@alicloud/credentials');
function createClient(endpoint) {
// 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維。
// 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。
// 本示例通過阿里云Credentials工具從環境變量中讀取AccessKey,來實現API訪問的身份驗證。
const cred = new Credential();
const config = new Config.Config({
credential: cred,
// 設置Endpoint。
endpoint: endpoint,
// 設置HTTP代理。
// httpProxy: "http://xxx.xxx.xxx.xxx:9999",
// 設置HTTPS代理。
// httpsProxy: "https://username:password@xxx.xxx.xxx.xxx:9999",
});
return new CloudAuthClient(config);
}
async function bankMetaVerify(endpoint, request) {
const client = createClient(endpoint);
// 創建RuntimeObject實例并設置運行參數。
const runtime = new RuntimeOptions([]);
runtime.readTimeout=5000;
runtime.connectTimeout=5000;
return await client.bankMetaVerifyWithOptions(request, runtime);
}
async function bankMetaVerifyAutoRoute(request) {
// 上海區域推薦使用
const endpoints = [
"cloudauth.cn-shanghai.aliyuncs.com",
"cloudauth.cn-beijing.aliyuncs.com"
];
// 北京區域推薦使用
// const endpoints = [
// "cloudauth.cn-beijing.aliyuncs.com",
// "cloudauth.cn-shanghai.aliyuncs.com"
// ];
for (const endpoint of endpoints) {
try {
const response = await bankMetaVerify(endpoint, request);
if (response.statusCode === 500) {
continue;
}
if(response.body !== null){
if(response.body.code === "500"){
continue;
}
}
return response;
} catch (err) {
console.log(err);
continue;
}
}
return null;
}
async function main(){
// 通過以下代碼創建API請求并設置參數。
const request = new CloudAuth.BankMetaVerifyRequest({
// 固定值。
paramType: "normal",
verifyMode: "VERIFY_BANK_CARD",
productType: "BANK_CARD_4_META",
identifyNum: "411***************",
userName: "張*",
bankCard: "621*****************",
mobile: "131********",
// 此項非必填,默認為01(身份證),如果填入其他類型,需要在IdentifyNum中傳入對應的證件號。
identityType: "01"
});
// 推薦,支持服務路由。
const response = await bankMetaVerifyAutoRoute(request);
// 不支持服務自動路由。
// const response = await bankMetaVerify("cloudauth.cn-shanghai.aliyuncs.com", request);
if (response){
console.log(response.body.requestId);
console.log(response.body.code);
console.log(response.body.message);
console.log(response.body.resultObject.bizCode);
console.log(response.body.resultObject.subCode);
}
}
main().then(function (response) {});