更多功能
发起授权支付的过程中,您可以根据自身业务需求选择是否使用更多功能。本文为您提供更多功能的详细说明及使用方式。
设置 3D 认证
通过 支付 接口设定 is3DSAuthentication 参数的值,指定某笔交易是否进行 3D 认证:
- is3DSAuthentication 不设置值:则等同于该参数值为
false
的情况,即该笔交易不触发 3D 验证。若 Antom 判断该笔交易为高风险则直接拒绝本次交易。 - is3DSAuthentication 值为
false
:该笔交易不触发 3D 验证。若 Antom 判断该笔交易为高风险则直接拒绝本次交易。 - is3DSAuthentication 值为
true
:该笔交易触发 3D 验证。若 Antom 判断该笔交易为高风险则直接拒绝本次交易。
智能挽回交易
通过 支付 接口设定 enableAuthenticationUpgrade 参数的值为 true
,指定某笔交易进行自动挽回:对于您指定的非 3D 认证的交易,当卡组要求该笔交易进行 3D 认证时,Antom 可自动路由至 3D 验证流程,让买家参与验证过程,从而挽回失败交易。
如果不使用自动挽回交易功能,对于您指定的非 3D 验证的交易,当卡组要求该笔交易进行 3D 认证时,即卡组认定该笔交易存在风险,如果不进行 3D 验证则支付失败。
注意:部分地区卡组发行的卡在该地区卡组交易网络下进行交易时不支持此功能,这些地区包括:巴西、韩国、新加坡、香港。
设置 3D 认证及自动挽回交易这两个功能会共同决定交易的风控验证流程,下表为您展示两个功能的交叉使用情况及对应的风控结果:
设置3D认证: is3DSAuthentication | 自动挽回交易:enableAuthenticationUpgrade | 风控结果 |
false / 不传值 | true / 不传值 | 非 3D 验证的交易失败后,该笔交易自动升级至 3D 验证,Antom 为您返回 3D 验证页面的 URL 。 |
false / 不传值 | false | 如果非 3D 验证的交易支付失败,Antom 为您返回交易失败的结果。 |
true | true / false / 不传值 | 交易需进行 3D 验证,Antom 为您返回 3D 验证页面的 URL 。 |
表 1. 3D 认证及自动挽回交易设置影响的风控结果
API 集成方式下,当 Antom 为您返回 3D 验证页面的URL后,您需要为买家展示 3D 验证页面并推进用户完成 3D验证。以下示例展示了 支付 请求的响应中为您返回 3D 验证页面URL的场景:
{
"result": {
"resultStatus": "U",
"resultCode": "PAYMENT_IN_PROCESS",
"resultMessage": "payment in process"
},
"normalUrl": "https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect/...",
"paymentId": "20221111194010890100111650285726898",
"paymentRequestId": "amsdmpay_cangxi_lj_20221111_104718_672",
"redirectActionForm": {
"redirectUrl": "https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect/...",
"method": "GET"
},
"paymentAmount": {
"currency": "HKD",
"value": "100"
},
"paymentCreateTime": "2022-11-10T18:47:20-08:00"
}
增值风控服务
如果您需求交易维度的升级风控服务,可购买 Antom 提供的增值风控服务。该服务可根据交易的风险等级,智能决策风控策略。
本功能与设置 3D 认证及智能挽回交易可结合使用,共同决定交易的风控验证流程,下表为您展示这三种功能的交叉使用情况及对应的风控结果:
增值风控 | 设置3D认证 (is3DSAuthentication) | 自动挽回交易(enableAuthenticationUpgrade) | 风控结果 |
开通 | false / 不传值 | false | 由风控服务决策是否进行 3D 验证。 |
开通 | false / 不传值 | true / 不传值 | 由风控服务决策是否进行 3D 验证。若决策结果为非 3D 验证且首次授权支付时卡组要求进行 3D 验证,Antom 为您返回 3D 验证页面的 URL 。 |
开通 | true | false / true / 不传值 | 即使风控服务决策结果为非 3D 验证,交易仍进行 3D 验证,Antom 为您返回 3D 验证页面的 URL 。 |
表 2. 增值风控开通下不同设置所影响的风控结果
注意:
- 若您购买了增值风控服务,建议无需设置 is3DSAuthentication 参数,有增值风控服务为您提供风控决策。
- 部分地区卡组发行的卡在该地区卡组交易网络下进行交易时不支持此功能,这些地区包括:巴西、韩国、新加坡、香港。
AVS 验证
地址验证系统(AVS)用于验证账单地址是否与信用卡持卡人的地址匹配,可有效防止欺诈交易的发生。当您开通 AVS 校验服务后,当买家输入持卡人的账单地址和邮编后,AVS 系统会将该信息与发卡机构中存储的对应信息进行比对,如果该信息与发卡机构记录中的信息不匹配,则交易可能会被拒绝或需要进行额外的身份验证。支付 AVS 验证可帮助减少信用卡欺诈风险。
开通 AVS 校验服务后,在不同集成方式下,您需要采取不同的方式发起 AVS 校验:
- 如果您使用服务器对服务器模式,则需在调用 支付 接口时传入 billingAddress 参数以发起 AVS 校验。
- 如果您使用托管表单模式,Antom 为用户提供支付信息收集页,在该页面会要求买家填写账单地址等信息,您无需做额外处理。
注意:
存储卡信息
您可以为买家提供绑卡服务,即支持买家在首次支付时选择存储卡信息,以便下次支付时无需再次输入卡信息。下图展示了用户选择绑卡后,再次支付时的下单页面:
图 1. 用户绑卡后续支付页面
在不同集成方式下,您需要采取不同的方式实现买家绑卡的功能。针对服务器对服务器模式和托管表单模式,您需要执行下述相应操作:
在服务器对服务器模式下,收集完买家卡信息后,您可以选择自己存储卡信息或者让 Antom 来帮助您存储卡信息用于后续支付。
- Antom 存储卡信息(推荐)
当买家在您的页面上选择存储卡片信息,您需要将收集好的卡信息通过 支付 接口传给 Antom 并指定 tokenize 字段为 true
。Antom 会将卡信息生成对应的卡令牌 (cardToken),授权支付成功后,您可以通过接收异步通知或通过 查询支付结果 接口主动查询的方式获取卡令牌 (cardToken) 及脱敏后的卡号 (cardNo),用于后续支付。
买家在授权支付阶段选择存储卡信息时,Antom 存储卡信息模式下,注意此时发送 支付 请求时需将 tokenize 字段指定为 true
。以下示例展示了您需要发送给 Antom 的 支付 请求:
{
"settlementStrategy": {
"settlementCurrency": "EUR"
},
"productCode": "CASHIER_PAYMENT",
"paymentNotifyUrl": "http://gol.alipay.net:8080/amsdemo/record/notify?env=main_GROUP&paymentMethodType=CARD",
"paymentRequestId": "2023070458941025622196",
"paymentRedirectUrl": "http://gol.alipay.net:8080/amsdemo/result?paymentRequestId=2023070458941025622196",
"paymentFactor": {
"isAuthorization": true
},
"paymentMethod": {
"paymentMethodMetaData": {
"recurringType": "",
"cvv": "123",
"is3DSAuthentication": false,
"isCardOnFile": false,
"expiryMonth": "05",
"tokenize": true,
"expiryYear": "26",
"billingAddress": {
"zipCode": "310000",
"address2": "gongzhuan Road",
"city": "hangzhou",
"state": "zhejiang",
"region": "CN"
},
"cardNo": "411227747859****"
},
"paymentMethodType": "CARD"
},
"paymentExpiryTime": "2025-11-27T12:00:01+08:30",
"paymentAmount": {
"currency": "EUR",
"value": "8204"
},
"merchantRegion": "",
"order": {
"orderAmount": {
"currency": "EUR",
"value": "8204"
},
"referenceOrderId": "202307049082433354****",
"shipping": {
"shippingName": {
"firstName": "Li",
"lastName": "Kyle",
"fullName": "Kyle Li"
},
"shippingCarrier": "DHL",
"shippingPhoneNo": "+8611012****",
"shipToEmail": "email@163.com",
"shippingAddress": {
"zipCode": "310000",
"address2": "gongzhuan Road",
"city": "hangzhou",
"state": "zhejiang",
"region": "CN"
}
},
"goods": [
{
"referenceGoodsId": "202305152647604043****",
"goodsUrl": "qinghailipipeng",
"goodsCategory": "chemical",
"goodsUnitAmount": {
"currency": "EUR",
"value": "8204"
},
"goodsQuantity": "1",
"goodsName": "boom",
"goodsSkuName": "boom boom room",
"goodsBrand": "antom boom"
}
],
"env": {
"clientIp": "1.1.1.1",
"osType": "IOS",
"terminalType": "WAP"
},
"orderDescription": "ANTOM_ZZ",
"buyer": {
"referenceBuyerId": "Kyle Li8438027539****",
"buyerName": {
"firstName": "Li",
"lastName": "Kyle",
"fullName": "Kyle Li"
}
}
}
}
当绑卡买家再次进行支付时,您需要完成以下操作:
- 在收银台页面为买家展示脱敏后的卡信息。
- 调用 支付 接口,并传入以下参数:
- paymentMethodId: 值为 cardToken 的参数值(cardToken 可从原始绑卡交易对应的 支付异步通知 和 查询支付结果 接口返回的 paymentResultInfo 中获取)。
- 额外支付验证信息字段(例如巴西卡的 cpf 字段)。
- isCardOnFile: 值为
true
,用于标记该笔交易为绑卡买家的再次交易。
以下示例展示了绑卡用户再次支付时,使用 Antom 返回的卡令牌调用 支付 接口的请求:
{
"settlementStrategy": {
"settlementCurrency": "EUR"
},
"productCode": "CASHIER_PAYMENT",
"paymentNotifyUrl": "http://gol.alipay.net:8080/amsdemo/record/notify?env=main_GROUP&paymentMethodType=CARD",
"paymentRequestId": "202307047191356537****",
"paymentRedirectUrl": "http://gol.alipay.net:8080/amsdemo/result?paymentRequestId=2023070471913565376977",
"paymentFactor": {
"isAuthorization": true
},
"paymentMethod": {
"paymentMethodId": "ALIPAYXUDrmVyZKWqfGTZelkD1O+967zi3JmCeo9vUonsnMT9bcKcly88bvcRE4C+wRjazecG+d5jFylCRsGrtK8j0****",
"paymentMethodMetaData": {
"recurringType": "SCHEDULED",
"is3DSAuthentication": false,
"isCardOnFile": true,
"networkTransactionId": "20423687633****"
},
"paymentMethodType": "CARD"
},
"paymentExpiryTime": "2025-11-27T12:00:01+08:30",
"paymentAmount": {
"currency": "EUR",
"value": "3063"
},
"merchantRegion": "",
"order": {
"orderAmount": {
"currency": "EUR",
"value": "3063"
},
"referenceOrderId": "202307045940797909****",
"shipping": {
"shippingName": {
"firstName": "Li",
"lastName": "Kyle",
"fullName": "Kyle Li"
},
"shippingCarrier": "DHL",
"shippingPhoneNo": "+8611012****",
"shipToEmail": "xihuanchishi@163.com",
"shippingAddress": {
"zipCode": "310000",
"address2": "gongzhuan Road",
"city": "hangzhou",
"state": "zhejiang",
"region": "CN"
}
},
"goods": [
{
"referenceGoodsId": "202305151728950723****",
"goodsUrl": "qinghailipipeng",
"goodsCategory": "chemical",
"goodsUnitAmount": {
"currency": "EUR",
"value": "3063"
},
"goodsQuantity": "1",
"goodsName": "boom",
"goodsSkuName": "boom boom room",
"goodsBrand": "antom boom"
}
],
"env": {
"clientIp": "1.1.1.1",
"osType": "IOS",
"terminalType": "WAP"
},
"orderDescription": "ANTOM_ZZ",
"buyer": {
"referenceBuyerId": "Kyle Li8415922738****",
"buyerName": {
"firstName": "Li",
"lastName": "Kyle",
"fullName": "Kyle Li"
}
}
}
}
- 自行存储卡信息
当买家在您的页面上选择存储卡片信息后,您需在服务端将买家信息和对应的卡信息关联存储。当买家再次发起支付时,您需在调用 支付 接口时传入卡信息,并指定 isCardOnFile 参数的值为 true
。该字段用于标记此交易为绑卡用户的再次交易,有助于提升交易成功率。
以下示例展示了绑卡用户再次支付时,您的服务端调用 支付 接口的请求示例:
{
"env": {
"terminalType": "APP",
"clientIp": "112.80.248.78",
"deviceId": "eYOIkvFpZzztgO0Yu6USdprBQZCWxDhiUAHCiK8K/cH9mT6wMaMO****",
"osType": "IOS",
"deviceLanguage": "zh_CN",
"colorDepth": 48,
"screenHeight": 768,
"screenWidth": 1024,
"timeZoneOffset": 1
},
"order": {
"orderAmount": {
"currency": "EUR",
"value": "30000"
},
"orderDescription": "Cappuccino #grande (Mika's coffee shop)",
"referenceOrderId": "ORDER_2022111414171****",
"goods": [
{
"referenceGoodsId": "38338
MIT 交易
卡授权支付场景下的自动扣款交易,也被称为 Merchant-initiated Transactions (MIT) 交易,即在用户未参与的情况下发起定期或非定期的交易。
注意:
- 此场景下的交易均为非 3D 验证的交易。
- 发起并完成 MIT 交易的前提是您已经获取了买家的授权以完成后续的 MIT 交易,买家需在首次授权支付时完成 3D 验证。
- 部分地区卡组发行的卡在该地区卡组交易网络下进行交易时不支持此功能,这些地区包括:巴西、韩国、新加坡、香港。
在 API 集成方式下,在 支付 接口中设置以下参数即可发起 MIT 交易:
- isCardOnFile: 值为
true
,用于标记该笔交易为绑卡买家的再次支付。 - recurringType:值为
SCHEDULED
或UNSCHEDULED
, 用于指定该笔交易为定期扣款或非定期扣款。 - networkTransactionId:系统需要确认您已经获取了买家的授权以完成后续的 MIT 交易,因此,您需要通过此字段传入买家进行初始授权支付时卡组分配的用于识别授权支付交易的唯一 ID。当买家首次授权支付成功后,您通过 支付结果通知 或 查询支付结果 请求的响应均可以获得该授权支付交易唯一 ID。
指定卡品牌
当买家选择双标卡进行授权支付时,您可以通过 paymentMethodRegion 或 selectedCardBrands 参数指定该笔交易使用的卡品牌或卡所属区域。下表展示了指定 paymentMethodRegion 或 selectedCardBrands 参数的值后,卡品牌的使用情况:
PaymentMethodRegion | selectCardBrands | 用于交易的卡品牌 |
GLOBAL | / | 国际卡品牌 |
FR、BR.. | / | 本地卡品牌 |
/ | VISA、CB | 指定的卡品牌 |
/ | / | 由 Antom 根据费率、成功率等因素为您选取合适的卡品牌 |
表 3. 不同卡品牌及卡所在区域设置所影响的卡交易品牌
注意:
- 卡品牌及卡所属区域信息参见支付方式。
- 巴西地区卡组发行的卡在巴西卡组交易网络下进行交易时不支持此功能。
MPI 功能
您在授权交易发起前优先让买家完成第三方 3D 核身校验,此时需要您在调用 支付 接口发起授权支付时,通过 mpiData 字段传入 3D 核身结果并指定指定交易为非 3D 认证:
字段 | 说明 |
mpiData.threeDSVersion | 传入第三方核身机构返回的 3D 协议版本号。 |
mpiData.caav | 传入第三方核身机构返回的 caav。 |
mpiData.dsTransactionId | 传入第三方核身机构返回的交易唯一标识符。 |
mpiData.eci | 传入第三方核身机构返回的 ECI。 |
is3DSAuthentication | 传入 |
enableAuthenticationUpgrade | 传入 |
您调用 支付 接口传入 mpiData 等关键信息的请求样例如下:
{
"env": {
"browserInfo": {
"acceptHeader": "*/*",
"javaEnabled": true,
"javaScriptEnabled": true,
"language": "zh_CN",
"userAgent": "Chrome/100"
},
"terminalType": "APP",
"clientIp": "112.80.248.78",
"deviceId": "eYOIkvFpZzztgO0Yu6USdprBQZCWxDhiUAHCiK8K/cH9mT6wMaMO****",
"osType": "IOS",
"deviceLanguage": "zh_CN",
"colorDepth": 48,
"screenHeight": 768,
"screenWidth": 1024,
"timeZoneOffset": 1
},
"order": {
"orderAmount": {
"currency": "EUR",
"value": "30000"
},
"orderDescription": "Cappuccino #grande (Mika's coffee shop)",
"referenceOrderId": "ORDER_2022111414171****",
"goods": [
{
"referenceGoodsId": "383382011_SGAMZ-90452****",
"goodsName": "[3 Boxes] Starbucks Cappuccino Milk Coffee Pods / Coffee Capsules by Nescafe Dolce Gusto",
"goodsUrl": "https://www.lazada.sg/products/3-boxes-starbucks-cappuccino-milk-coffee-pods-coffee-capsules-by-nescafe-dolce-gusto-i383382011-s904520356.html?clickTrackInfo=undefined&search=1&source=search&spm=a2o42.searchlist.list.3",
"goodsCategory": "Digital Goods/Digital Vouchers/Food and Beverages",
"goodsUnitAmount": {
"currency": "EUR",
"value": "30000"
},
"goodsQuantity": "10"
}
],
"shipping": {
"shippingName": {
"firstName": "Dehua",
"lastName": "Liu",
"fullName": "Dehua Skr Liu",
"middleName": "Skr"
},
"shippingAddress": {
"zipCode": "310000",
"address2": "Xihu",
"city": "Hangzhou",
"address1": "Wuchang road",
"state": "Zhejiang",
"region": "CN"
},
"shippingCarrier": "FedEx",
"shippingPhoneNo": "1234567****",
"shipToEmail": "test@gmail.com"
},
"buyer": {
"referenceBuyerId": "test1234****",
"buyerPhoneNo": "1234567****",
"buyerEmail": "example@alipay.com",
"buyerName": {
"firstName": "D****",
"lastName": "L****",
"fullName": "Dehua Skr****",
"middleName": "S****"
}
}
},
"paymentAmount": {
"currency": "EUR",
"value": "30000"
},
"paymentMethod": {
"paymentMethodType": "CARD",
"paymentMethodMetaData": {
"isCardOnFile": false,
"enableAuthenticationUpgrade": false,
"is3DSAuthentication": false,
"mpiData": {
"eci": "02",
"threeDSVersion": "2.2.0",
"caav": "cavvSample",
"dsTransactionId": "sample_dsTranascti****"
},
"cvv": "850",
"cardholderName": {
"firstName": "Tom",
"lastName": "Jay"
},
"expiryMonth": "12",
"billingAddress": {
"zipCode": "310000",
"address2": "Xihu",
"city": "Hangzhou",
"address1": "Wuchang road",
"state": "Zhejiang",
"region": "CN"
},
"expiryYear": "29",
"cardNo": "411734780615****"
}
},
"settlementStrategy": {
"settlementCurrency": "EUR"
},
"paymentNotifyUrl": "https://www.alipay.com/notify",
"paymentRedirectUrl": "https://www.alipay.com",
"paymentRequestId": "PAY_2022111414171****",
"productCode": "CASHIER_PAYMENT",
"paymentFactor": {
"isAuthorization": true
}
}
注意:韩国卡组发行的卡在韩国卡组交易网络下进行交易时,不支持此功能。