Secure Remote Commerce
Secure Remote Commerce (SRC) 是一个智能的免密码在线结账选项,为付款人提供快速便捷的结账体验。 SRC 为所有参与的卡组织(包括 Mastercard、Visa、American Express、Discover 等)提供单一结账按钮(又称“Click to Pay”)和标准化的结账流。 SRC 基于 EMVCo 的 SRC 规范构建,取代了 Masterpass、Visa Checkout 和 Amex Express Checkout。
付款人可以使用他们的电子邮件地址创建 SRC 配置文件。 结账过程中,付款人必须提供此电子邮件地址,并使用一次性代码执行额外的验证步骤。 他们还可以选择“记住我”选项,在以后使用同一个浏览器时跳过验证。
付款人可以在他们的 SRC 配置文件中存储多个信用卡、借记卡或预付卡,关联的账单地址和多个送货地址。 卡详细信息将被安全存储,还将通过提供网络令牌化来提供额外的安全性。
SRC 允许您的付款人选择要用于付款的付款详细信息;但是,付款本身使用在网关中为您的商家配置文件配置的收单行来处理。
网关的付款页 (<<checkout>>) 支持 SRC,或者,如果您使用自己的付款页,通过 JavaScript SDK 支持 SRC。
主要优点
SRC 提供以下好处:
- 为付款人提供快速、易用的结账选项,降低放弃结账的风险
- 使用网络令牌时授权批准率会更高
- 减少付款人欺诈
- 安全交换付款数据,包括卡详细信息、账单和送货地址详细信息
先决条件
如果您希望将 SRC 作为结账选项提供给付款人:
- 与 your payment service provider 联系,确定您可以使用 SRC。
- 从 Merchant Administration 中的管理菜单,单击 SRC 配置,按照说明注册 SRC 并为商家配置文件启用 SRC。 您必须有所需权限才能更新 SRC 配置。
SRC 作为 <<checkout>> 的结账选项
如果您使用的是网关的付款页 (Hosted Checkout),在您为商家配置文件启用了 SRC,并且在提交 Create Checkout Session 请求以发起 Hosted Checkout 交互时使用的是 <<webServicesIntegration>> 版本 57 或更高版本,SRC 会自动作为结账选项提供给付款人。
虽然付款人的 SRC 配置文件本身可以包含任何支持的卡组织的卡,但是对于指定交易,付款人只能对符合以下条件的卡使用 SRC:
- 已在您的商家配置文件中为卡组织启用 SRC,并且
- 您的商家配置文件已配置为使用此组织和交易货币处理卡。
送货地址: 付款人无法在 SRC 交互过程中选择送货地址,因为目前不支持通过 <<checkout>> 收集送货地址。
账单地址: 在 SRC 交互过程中始终会收集账单地址。
3DS 支付验证: 如果您配置了 3DS 支付验证 (3DS),Hosted Checkout 会在 SRC 交互之后自动执行 3DS 身份验证。
要使用 <<checkout>>,请执行实施 <<checkout>> 集成中定义的步骤。
调用 Checkout.configure()
时,包含以下详细信息:
交互国家/地区 | 对于 SRC 交互,交互国家/地区确定在 SRC 交互过程中呈现给付款人的特定于国家/地区的内容,如条款和条件。 默认使用在网关中根据您的商家配置文件配置的值。 如果要为此交互覆盖此值,请将 interaction.country 字段添加到 Checkout.configure() 方法中。 |
交互区域设置 | 对于 SRC 交互,交互区域设置确定显示语言。 默认情况下,使用付款人浏览器中配置的语言。 如果付款人的语言无法确定或不受支持,将使用 en_US。 如果要覆盖此值,请将 interaction.locale 字段添加到 Checkout.configure() 方法中。 目前,支持的语言有英语(英国)(en_UK)、西班牙语(西班牙)(es_ES)、法语(加拿大)(fr_CA)、葡萄牙语(巴西)(pt_BR) 和中文(中国香港)(zh_HK)。 |
商家名称 | 提供您的交易名称,即付款人已知的名称。 此名称可能会在 SRC 交互过程中显示。 |
商家 URL | 提供付款人正在使用的网站的 URL。 例如,https://example.com。 此 URL 可能会在 SRC 交互过程中显示。 |
付款人电子邮件 | 在 SRC 交互过程中始终会收集付款人的电子邮件地址。 如果您已经知道付款人的电子邮件地址,请将 customer.email :<您的付款人的电子邮件地址> 添加到 Checkout.configure() 中,以允许付款人在 SRC 交互过程中绕过电子邮件地址输入。 |
<html> <head> <script src="https://qnbalahli.test.gateway.mastercard.com/static/srci/1.2.0/srci.min.js" data-error="errorCallback" data-cancel="cancelCallback"></script> <script type="text/javascript"> function errorCallback(error) { console.log(JSON.stringify(error)); } function cancelCallback() { console.log('Payment cancelled'); } Checkout.configure({ merchant: "<gateway_merchant_ID>", session: { id: "<session_ID>", }, customer: { email: "<payer_email_address>" }, order: { amount: "60", currency: "USD", description: "High level description of the goods contained in the order", id: "<your_unique_order_ID>", }, interaction: { country: "USA", locale: "en_US", operation: "AUTHORIZE", merchant: { name: "<merchant_name>", url: "<website_URL>", address: { line1: "200 Sample St", line2: "1234 Example Town" } } } }); </script> </head> <body> ... <input type="button" value="Pay with Lightbox" onclick="Checkout.showLightbox();" /> <input type="button" value="Pay with Payment Page" onclick="Checkout.showPaymentPage();" /> ... </body> </html>
SRC 作为付款页的结账选项
如果您使用自己的付款页,希望向付款人提供 SRC 作为结账选项,请使用网关提供的 SRCI JavaScript SDK (srci.js)。
这是一种客户端 JavaScript 集成,可让您直接从付款人的浏览器发起 SRC 交互,它可以确保在 SRC 交互过程中付款人选择的付款详细信息直接从付款人的浏览器提交到网关。
要使用 SRCI JavaScript SDK,请按照以下步骤操作。
步骤 1: 创建会话
通过从您的服务器端应用程序提交 Create Session
请求来创建会话。 响应将返回一个会话 ID,您必须在后续步骤中使用此 ID 来引用此会话。
步骤 2: 更新会话中的订单金额和货币
通过从您的服务器端应用程序提交 Update Session
请求来更新会话中的订单金额和货币。 后续查询可用于使用此货币的付款的 SRC,需要执行此步骤。
URL | https://qnbalahli.test.gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/session/<your_session_ID> |
HTTP 方法 | PUT |
{ "order":{ "amount":100.00, "currency":"USD" } }
步骤 3: 在付款页中包含 SRCI JavaScript SDK
通过在 head
元素内添加 script
元素,在付款页包含网关提供的 SRCI JavaScript SDK (srci.js)。 这会将 SRCi
对象放入窗口名称空间。
<script type="text/javascript" src="https://qnbalahli.test.gateway.mastercard.com/static/srci/1.2.0/srci.min.js"></script>
步骤 4: 配置 SRC 集成
加载付款页时,通过调用 SRCi.configure()
方法发起 SRC 交互。
<html> <head> <script type="text/javascript" src="https://qnbalahli.test.gateway.mastercard.com/static/srci/1.2.0/srci.min.js"></script> <script type="text/javascript"> var callback = function (response) { if(response.result === "SUCCESS") { console.log("Response from SDK: %s", response.restApiResponse); } else if(response.result === "ERROR") { console.log("An error occurred"); } } SRCi.configure( "<your_gateway_merchant_ID>", "<your_merchant_name>", "<your_merchant_URL>", "<your_session_ID>", { wsVersion: 57 }, callback ); </script> </head> <body> ... </body> </html>
商家详细信息
merchantId
是必需的,让网关可以正确确定您的付款选项。
merchantName
和 merchantUrl
字段将被提交到 SRC 服务器。 这些详细信息可能在 SRC 交互期间显示给付款人。
提供您的交易名称,即付款人已知的名称,以及付款人正在使用的网站的 URL。
版本
请将此值设置为 57。这是您提交 Create Session
请求时要使用的版本。
回调
使用 callback
参数定义要在 SRCi.configure()
完成后调用的操作。 例如,您可能想要在方法成功时进行记录:
var srciConfigCallback = function (resp) { var response = resp.restApiResponse; if (response.result === "ERROR") { console.error("SRC could not successfully be configured"); } else if (response.result === "SUCCESS") { console.log("SRC was successfully configured"); } }
SRCi.configure()
调用可能返回以下错误响应:
response.cause |
resp.explanation |
所需操作 |
---|---|---|
错误 | 缺少参数: configure() 方法的所有必需参数有 Merchant ID、Merchant Name、Merchant URL、Hosted Session ID 和回调函数。 |
修复您的集成。 您必须提供所有强制请求字段 |
错误 | 缺少参数: “商家 URL”是 configure() 方法的必需参数 |
修复您的集成。 您必须提供商家 URL 字段。 |
错误 | 回调必须是一个函数。 | 修复您的集成。 |
错误 | API 版本必须为 <MIN_VERSION> 或更高版本。 |
修复您的集成。 将 wsVersion 设置为 57。 |
返回错误时,请勿继续进行下一步。 请向付款人提供另一种付款方式。
高级配置
SDK 使用 Payment Options Inquiry
操作来检索有关您的 SRC 商家配置文件配置的详细信息(例如,可以使用 SRC 的所有组织的列表)。 但是,如果您已经在付款人会话期间更早提交了 Payment Options Inquiry
请求,则可以通过在请求中添加 configuration
元素来传送这些详细信息。
这样,SDK 不会再次执行 Payment Options Inquiry
请求。 wsVersion
参数指示用于提交 Payment Options Inquiry
请求的 <<webServicesIntegration>> 版本。
<html> <head> <script type="text/javascript" src="https://qnbalahli.test.gateway.mastercard.com/static/srci/1.2.0/srci.min.js"></script> // Response from the Payment Options Inquiry call. This value to SRCi.configure() is optional. If it is not passed in, a call will be made from the SDK to the API to retrieve it. var paymentOptionsInquiryResponse = { merchant: "<gateway_merchant_ID>", paymentTypes: { card: { cardTypes: [{ cardType: "MASTERCARD", schemeTokenTypes: "CRYPTOGRAM_3DSECURE" }, { cardType: "VISA", schemeTokenTypes: "CRYPTOGRAM_3DSECURE" }, { cardType: "AMEX", schemeTokenTypes: "DYNAMIC_CSC_AND_EXPIRY" }], walletProviders: [{ secureRemoteCommerce: { defaultPayerCountry: "USA", shippingAddressCountries : "USA,CAN" scheme: [{ dpaId: "<DPA_ID>", // As configured for this scheme on your merchant profile. name: "MASTERCARD" }, { dpaId: "<DPA_ID>", // As configured for this scheme on your merchant profile. name: "VISA" }, { name: "AMERICAN_EXPRESS" }] }, walletProvider: "SECURE_REMOTE_COMMERCE" }] } }, result: "SUCCESS" } SRCi.configure({ "<gateway_merchant_ID>", "<merchant_name>", "<merchant_URL>", "<session_ID>", configuration: { wsVersion: 57, paymentOptions: paymentOptionsInquiryResponse }, callback: function (response) { if(response.result === "SUCCESS") { console.log("Response from SDK: %s", response.restApiResponse); } else if(response.result === "ERROR") { console.log("An error occurred"); } } }); </script> </head> <body> ... </body> </html>
示例 SRCi.configure()
响应
以下示例显示成功的 SRCi.configure()
调用。
{ result: "SUCCESS" restApiResponse: <Payments Options Inquiry response> }
此响应在 restApiResponse
字段中包含 Payments Options Inquiry
响应,其只是用于传递信息。 但是,您之后可能需要在付款人会话期间使用此信息,而不是使用 PAYMENT_OPTIONS_INQUIRY
请求来检索它。
以下示例显示未成功的 SRCi.configure()
调用。
{ result: "ERROR" cause: <cause> explanation: <explanation> }
在这种情况下,请付款人选择另一个结账选项。
步骤 5: 将 SRC 显示为结账选项
如果 SRCi.configure()
成功,在您的付款页上将 SRC 显示为结账选项。 有关品牌要求,请参见 SRC 用户界面指南。
使用 Payment Options Inquiry
响应中返回的 SRC 配置详细信息确定在按钮中显示哪些组织徽标。 对于每个支持的组织,Payment Options Inquiry
响应会在 paymentTypes.card.walletProviders[n].secureRemoteCommerce.scheme[n].name
字段中包含该组织的名称。
步骤 6: 启动 SRC UI
当付款人选择 SRC 作为结账选项时,通过调用 SRCi.launchUI()
方法启动 SRC UI。
var payloadCallback = function (correlationId, scheme) { console.log("Payload callback complete with correlation id %s and scheme %s", correlationId, scheme); }; var errorCallback = function (error) { console.log("Error callback triggered with error: %s", error); }; var cancelCallback = function () { console.log("Cancel callback triggered"); }; SRCi.launchUI({ orderAmount: "100.00", orderCurrency: "USD" }, payloadCallback, errorCallback, cancelCallback );
除了强制字段外,您还可以提供一些可选字段:
SRCi.launchUI( { "orderAmount":"60" "orderCurrency":"USD", "customerEmail":"<payer_email_address>", "collectShippingAddress":true, "interactionCountry":"CAN" "interactionLocale":"fr" } );
付款人电子邮件地址收集
在 SRC 交互过程中始终会收集付款人的电子邮件地址。 如果您已经知道付款人的电子邮件地址,请将 customerEmail
字段添加到 SRCi.launchUI()
方法中,以允许付款人在 SRC 交互过程中绕过电子邮件地址输入。
账单地址收集
在 SRC 交互过程中始终会收集账单地址。
送货地址收集
默认情况下,SRC 不会收集付款人的送货地址。 如果您希望 SRC 收集付款人的送货地址,请在 SRCi.launchUI()
方法中添加 collectShippingAddress:true
。
默认情况下,付款人可以选择任何送货地址国家/地区。 要限制商品送达国家/地区列表,您必须通过 Merchant Administration 使用允许国家/地区列表或排除国家/地区列表为 SRC 配置商家配置文件。 如果您定义了任何限制,付款人只能选择允许的送货地址国家/地区。
您不能覆盖特定请求的支持送货地址国家/地区。
交互国家/地区
交互国家/地区确定在 SRC 交互过程中呈现给付款人的特定于国家/地区的内容,如条款和条件。 默认使用在网关中根据您的商家配置文件配置的值。 如果要为此交互覆盖此值,请将 interactionCountry
字段添加到 SRCi.launchUI()
方法中。
交互区域设置
交互区域设置确定 SRC 交互期间使用的语言。 默认情况下,使用付款人浏览器中配置的语言。 如果付款人的语言无法确定或不受支持,将使用 en_US。 如果要覆盖此值,请将 interactionLocale
字段添加到 SRCi.launchUI()
方法中。 目前,支持的语言有英语(英国)(en_UK)、西班牙语(西班牙)(es_ES)、法语(加拿大)(fr_CA)、葡萄牙语(巴西)(pt_BR) 和中文(中国香港)(zh_HK)。
回调
您必须定义要在 SRCi.launchUI()
完成后要调用的操作,如下所示:
payloadCallback |
付款人在 SRC UI 中完成交互后触发的回调函数。 此函数使用两个参数 correlationId 和 scheme
这些详细信息随后必须用于检索此 SRC 交互的付款详细信息(参见步骤 7)。 |
|||||||||||||||||||||
errorCallback |
加载 SRC UI 遇到错误时触发的回调函数。 此函数使用将填充一个包含错误详细信息的错误对象的参数。
|
|||||||||||||||||||||
cancelCallback |
付款人取消 SRC 交互或 SRC UI 关闭时触发的回调函数。 不使用任何参数。 |
步骤 7: 更新会话中的 SRC 付款详细信息
付款人成功完成 SRC 交互后,您必须请求网关检索 SRC 交互的付款详细信息并将其存储在会话中。
提交包含以下各项的 Update Session From Wallet
请求:
- 请求 URL 中的会话 ID,以及
payloadCallback
中返回的correlationId
和组织
URL | https://qnbalahli.test.gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/session/<your_session_ID> |
HTTP 方法 | POST |
{ "apiOperation":"UPDATE_SESSION_FROM_WALLET", "order":{ "walletProvider":"SECURE_REMOTE_COMMERCE" }, "wallet":{ "secureRemoteCommerce":{ "srcCorrelationId":"<correlationId_provided_in_payloadCallback>", "scheme":"<scheme_provided_in_payloadCallback>" } } }
如果会话已使用来自 SRC 交互的付款详细信息成功更新,您可以继续。 如果会话未成功更新,让付款人选择另一个结账选项。
步骤 8: 执行 3DS 支付验证(可选)
如果要对付款人进行身份验证,请使用会话执行 3DS 支付验证。 请参见使用 3DS JavaScript API 实施 3DS 集成了解详细信息。
步骤 9: 执行付款操作
如果会话已使用来自 SRC 交互(以及 3DS 支付验证,如果在步骤 8 中执行)的付款详细信息成功更新,请使用会话提交付款以从服务器端应用程序进行处理。 例如,您可以提交 Authorize
请求。 来自 SRC 交互的会话中存储的付款详细信息用于处理付款。 您可以将会话用于多个 API 操作;更多信息请参见使用会话。
URL | https://qnbalahli.test.gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
HTTP 方法 | PUT |
{ "session":{ "id":"<session_ID>" } "..." }
以下 HTML 示例代码显示如何将 SRCi.js 集成到付款页中。 请注意以下几点:
SRCi.configure()
必须在srci.min.js
脚本加载到页面后立即调用。 尝试在按钮点击处理程序内调用SRCi.configure()
会导致有些浏览器阻止 SRC 付款窗口打开。- “支付”按钮事件处理程序必须首先检查 JavaScript SDK 是否完全配置。 尝试在成功配置之前调用
SRCi.launchUI()
会引发错误,对付款人体验造成负面影响。 - “支付”按钮应该在调用 SRCi.launchUI() 之前禁用,之后在每个回调中重新启用。 尝试多次调用
SRCi.launchUI()
可能会导致意外行为。
<html> <head> <script type="text/javascript" src="https://qnbalahli.test.gateway.mastercard.com/static/srci/1.2.0/srci.min.js"></script> <script type="text/javascript"> var configured = false; //SRCi global object is initialized by srci script SRCi.configure( "<gateway_merchant_ID>", "<merchant_name>", "<merchant_URL>", "<session_ID>", { wsVersion: 57 }, function (response) { if(response.result === "SUCCESS") { configured = true; console.log("Response from SDK: %s", response.restApiResponse); } else if(response.result === "ERROR") { console.log("An error occurred"); } } ); var payloadCallback = function (correlationId, scheme) { console.log("Payload callback complete with correlation id %s and scheme %s", correlationId, scheme); enablePayButton(); }; var errorCallback = function (error) { console.log("Error callback triggered with error %s", error); enablePayButton(); }; var cancelCallback = function () { console.log("Cancel callback triggered"); enablePayButton(); }; function enablePayButton() { document.getElementById("payButton").disabled = false; } function disablePayButton() { document.getElementById("payButton").disabled = true; } function pay() { if (configured) { // ensure only one payment window is launched disablePayButton(); SRCi.launchUI({ orderAmount: "100.00", orderCurrency: "USD" }, payloadCallback, errorCallback, cancelCallback ); } else { console.error("SRCi is not configured"); } } </script> </head> <body> <button id="payButton" type="button" onclick="pay();">Pay</button> </body> </html>
SRC 付款详细信息
此部分介绍为 SRC 交互返回的付款详细信息。
为 SRC 交互返回的付款详细信息类型
SRC 支持返回不同类型的付款详细信息以进行处理。 SRC 系统返回的付款详细信息取决于网关请求的类型、您在 SRC 系统中的配置以及卡组织。 SRC 通常会返回网络令牌、令牌过期时间和完整密文(如果卡组织支持)。
但是,在网关无法将带有完整密文的网络令牌发送给收单行的情况下,SRC 必须改为提供网络令牌、令牌过期时间和动态卡安全码 (CSC)。 网关会自动确保请求正确的付款详细信息类型。
如果卡不支持网络令牌化(例如,发卡机构未参与),SRC 将返回卡详细信息(卡号和卡过期时间),而不是网络令牌详细信息(网络令牌、令牌过期时间和密文或动态 CSC)。
如果您是美国商家,并且已表明您希望利用“杜尔宾修正案”规定的权利,SRC 将提供借记卡的卡详细信息(卡号和卡过期时间)。
API 交易响应中的 SRC 付款详细信息
付款人在 SRC 交互过程中选择的付款详细信息将存储在会话中,并在使用会话执行的 API 请求的交易响应中返回。 当 SRC 提供网络令牌详细信息时,将同时提供网络令牌详细信息和(隐藏)卡详细信息。
根据 SRC 系统返回的付款详细信息的类型,您将在 API 响应中收到以下详细信息。
带有完整密文的网络令牌 (American Express 不支持此类型的网络令牌) (此密文不在交易响应中返回) |
|
带有动态 CSC 的网络令牌 (此 CSC 不在交易响应中返回) |
|
卡号和过期时间 |
|
付款人详细信息
付款人的姓名和电话号码在交易响应中的 customer
参数组中提供。
如果您将 consumerEmailAddressRequested
设置为 true,付款人的电子邮件地址将在交易响应中的 customer.email
字段中提供。
账单地址详细信息
与卡关联的账单地址详细信息在交易响应中的 billing.address
参数组中提供。
送货地址详情
如果将 collectShippingAddress
设置为 true
,送货地址详细信息将在交易响应中的 shipping.address
参数组中提供。
商家发起交易
如果您后续要使用这些付款详细信息来发起系列付款(如定期付款或分期付款),则不能将 SRC 作为结账选项提供给付款人。 未来版本将支持此功能。
测试您的集成
为使用 SRC 完成与网关的集成后,可以使用测试商家配置文件(您的商家 ID,前缀为 TEST
)进行测试。 使用测试商家配置文件时,网关会为 SRC 交互提供模拟器。SRC 模拟器使用一组无法修改的预定义付款详细信息。根据预定义的付款详细信息,您可以触发和测试不同的方案,如下所述。
下表的第二列指示付款人在 SRC 交互过程中选择的 FPAN 的后 4 位数字。 要触发方案,在付款人的 SRC 交互过程中选择模拟器上的相应 FPAN。
组织 | FPAN 的后 4 位数字 | SRC 关联 ID | 生成的 API UPDATE_SESSION_FROM_WALLET 响应 | 生成的 API AUTHORIZE 或 PAY 响应 |
---|---|---|---|---|
Mastercard | xxx0007 | 783a935d-c6a9-4289-b19d-c3336f998b57 |
|
|
Visa | xxx0003 | 12345671-visaTAVV-expiry0822-colShiptrue |
|
|
组织 | FPAN 的后 4 位数字 | SRC 关联 ID | 生成的 API UPDATE_SESSION_FROM_WALLET 响应 | 生成的 API AUTHORIZE 或 PAY 响应 |
---|---|---|---|---|
Mastercard | xxx0008 | 261af700-e576-43bf-af92-bd0f6810e8fb |
|
|
Visa | xxx0002 | 12345671-visaDTVV-expiry0822-colShiptrue |
|
|
American Express | xxx0017 | cf3de1e0-55a2-44cf-9563-5ef9e648c492 |
|
|
组织 | FPAN 的后 4 位数字 | SRC 关联 ID | 生成的 API UPDATE_SESSION_FROM_WALLET 响应 | 生成的 API AUTHORIZE 或 PAY 响应 |
---|---|---|---|---|
Mastercard | xxx0305 | 8e455e8b-4e52-46cf-a3da-83aa3cf9a76e |
|
|
Visa | xxx0001 | 12345671-visa1-expiry0822 |
|
|
American Express | xxx4564 | bb978084-42b7-4985-af9d-2e41ee0a370c |
|
|
使用 3DS 支付验证测试 SRC
如果您的商家配置文件已启用 EMV 3DS 支付验证 (3DS2),您可以使用下表中显示的 SRC 测试详细信息来触发无障碍流或质询流。
组织 | FPAN 的后 4 位数字 | SRC 关联 ID | 生成的 API 响应 |
---|---|---|---|
Mastercard | xxx0009 | 1049624e-cc67-45f6-bd5f-c625eb4c6cc1 |
|
Visa | xxx4222 | 12345671-SRC3DSChallenge-expiry0822-colShiptrue |
|
American Express | xxx0017 | 16e051bc-bd25-46db-a7d3-d2944fbb05cf |
|
组织 | FPAN 的后 4 位数字 | SRC 关联 ID | 生成的 API 响应 |
---|---|---|---|
Mastercard | xxx0010 | 16e051bc-bd25-46db-a7d3-d2944fbb05cf |
|
Visa | xxx4180 | 12345671-SRC3DSFrictionless-expiry0822-colShiptrue |
|
American Express | xxx4564 | 17e051bc-bd25-46db-a7d3-d2944fbb05cf |
|