交通 - 聚合运输费用付款
聚合运输费用在您不知道要在旅行开始时收取的最终费用的场景中提供支持。 在此类场景中,最终费用在旅行期结束时(通常为 24 小时)根据该期间的行程计算。 本页内容介绍聚合运输费用的用例以及向网关提交有效请求的流程。 为 Mastercard 和 Visa 卡提交不同的请求。 对于 American Express 卡,请按照为 Mastercard 提供的说明操作。 通过聚合运输费用付款方案,
- 您可以聚合付款人在某个时间段内多次旅行的交易费用,并设置特定金额上限,并且
- 可以对此时间段内的每次旅行按固定、距离或时间的形式收费。
Mastercard Gateway 服务为以下各个付款方式提供聚合运输费用功能支持
- 处理使用 WS API 版本 66 的 EMV 交易和非接触式移动付款
- Mastercard(不包括 Maestro 卡,遵照 Mastercard 组织规则)
- Visa 卡(遵照 Visa 组织规则),以及
- American Express 卡(遵照 Mastercard 组织规则)。
先决条件
要提交聚合运输费用交易,您的商家类别代码 (MCC) 必须是以下代码中的一个:
Mastercard
- 4111 - 运输-市郊和当地通勤乘客,包括渡运
- 4131 - 公交线路
- 4784 - 桥梁和公路费用,通行费
- 7523 - 汽车停车场和车库
Visa
- 4111 - 当地和市郊通勤乘客运输,包括渡运
- 4112 - 客运铁路
- 4131 - 公交线路
American Express
- 4111 - 当地和市郊通勤乘客运输,包括渡运
- 4112 - 客运铁路
- 4131 - 公交线路
- 4784 - 通行费和桥梁费用
- 7523 - 停车场和车库
根据适用的组织规则执行 EMV 认证。Your payment service provider 必须让您能够
- 提交超额 Capture 交易,以及
- 检索未隐藏的卡号。
非接触式 EMV 付款与非接触式移动付款
为以下各个付款方式提供聚合运输费用功能支持
- 非接触式 EMV 付款:付款人在终端出示信用卡。
- 非接触式移动付款:付款人在终端出示他们的设备,如手机或手表。
非接触式移动付款
对于非接触式移动付款,您只会收到来自终端的设备特定的主账号 (DPAN) 详细信息,不会收到资金提供主账号 (FPAN) 详细信息。 每当 Authorization 包含 DPAN 时,交易响应都会包含
- 在请求中的
sourceOfFunds.provided.card.deviceSpecificNumber字段中提供的 DPAN - 在请求中的
sourceOfFunds.provided.card.deviceSpecificExpiry.year和sourceOfFunds.provided.card.deviceSpecificExpiry.month字段中提供的 DPAN 过期年份和月份 - 组织在
sourceOfFunds.provided.card.number字段中返回的 FPAN,以及 - 组织在
sourceOfFunds.provided.card.expiry.year和sourceOfFunds.provided.card.expiry.month字段中返回的 FPAN 过期年份和月份
responseControls.sensitiveData=UNMASK。
付款账户识别
从 API 版本 65 开始,添加了在交易响应中填充付款账户引用 (PAR) 的网关支持。 对于交易响应 RETRIVE_TRANACTION 和 RETRIVE_ORDER: PAR 在 sourceOfFunds.provided.card.paymentAccountReference 字段中返回。
场景
有多个遵照组织规则处理聚合运输费用付款的场景。
新卡首次点击
Mastercard 或 American Express 卡
与处理旅行期场景的首次点击一样处理此场景。
Visa 卡
要验证卡是否有效,提交 Verify 请求,并提供以下详细信息。
order.id中的订单识别码transaction.id中 Verification 交易的订单中的唯一识别码order.amount或order.amount=0中没有订单金额order.currency中的订单货币- 包含旅行期内首次点击的有效 EMV 标签数据的
sourceOfFunds.provided.card.emvRequest transaction.source=CARD_PRESENTposTerminal.attended=UNATTENDEDposTerminal.location=MERCHANT_TERMINAL_ON_PREMISESposTerminal.cardholderActivated=SELF_SERVICE_TERMINALposTerminal.inputCapability=CONTACTLESS_CHIPposTerminal.panEntryMode=CONTACTLESSposTerminal.pinEntryCapability=PIN_NOT_SUPPORTEDposTerminal.lane=99991111posTerminal.cardPresenceCapability=CARD_PRESENT
以下是旅行期开始前进行卡验证的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "VERIFY",
"order": {
"amount": "0.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "400555xxxxxx0019=391220xxxx06711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT"
}
}
您可以提交此请求
- 首次使用卡时
- 定期提交以确保卡仍然有效,或
- 卡被从拒绝列表中删除后首次使用。
旅行期内的首次点击
Mastercard 或 American Express 卡
要向此卡的聚合运输费用的付款授权,提交 Authorization 请求,并提供以下详细信息。
order.id中的订单识别码transaction.id中 Authorization 交易的订单中的唯一识别码order.amount中的面额order.currency中的订单货币transaction.transit.aggregatedFare.type=FAREtransaction.transit.aggregatedFare.transportationMode with a valid enumeration value that reflects the transportation mode used by the payer for the first trip- 包含有效的行程开始日期的
transaction.transit.aggregatedFare.aggregationStartDate - 包含旅行期内首次点击的有效 EMV 数据的
sourceOfFunds.provided.card.emvRequest transaction.source=CARD_PRESENTposTerminal.attended=UNATTENDEDposTerminal.location=MERCHANT_TERMINAL_ON_PREMISESposTerminal.cardholderActivated=SELF_SERVICE_TERMINALposTerminal.inputCapability=CONTACTLESS_CHIPposTerminal.panEntryMode=CONTACTLESSposTerminal.pinEntryCapability=PIN_NOT_SUPPORTEDposTerminal.lane=99991111posTerminal.cardPresenceCapability=CARD_PRESENT
以下是一个聚合运输费用的名义 Authorization 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "1.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "545721xxxxxx0012=391220xxxxx6711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
"responseControls":{
"sensitiveData": "UNMASK"
}
}
如果请求成功,将聚合此卡的运输费用。 如果请求失败,将卡添加到拒绝列表中,并为此行程的费用发起债务追收。
Visa 卡
聚合此卡的运输费用,并确保您收集此行程的点击数据。
旅行期内的后续点击
Mastercard 或 American Express 卡
将每个行程的运输费用添加到此卡的聚合运输费用中。 在旅行期结束时,为总聚合运输费用提交 Capture 请求。
Visa 卡
将每个行程的运输费用添加到此卡的聚合运输费用中。 在旅行期结束时,为总聚合运输费用提交 Authorization。 确保收集每个行程的点击数据。
旅行期结束
Mastercard 或 American Express 卡
在旅行期结束时,您可以通过提交 Capture 请求(包含以下详细信息)来捕获旅行期内的总聚合运输费用。
- order.id 中成功 Authorization 的订单识别码
- transaction.id 中 Capture 交易的订单中的唯一交易识别码
- transaction.amount 中此旅行期的总聚合运输费用,以及
- 与 Authorization intransaction.currency 相同的订单货币。
以下是一个聚合运输费用的 Capture 请求的 REST 示例。
不要在 Capture 请求中重新提交任何其他付款详细信息,因为网关会存储每个订单的付款详细信息。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
付款人可以在下一个旅行期再次使用该卡。 根据您所在的国家/地区,您可以过账和应用的金额有不同的限制。 有关规则的更多信息,请参阅 Mastercard 组织规则。
Visa 卡
在旅行期结束时,您可以通过提交 Authorization 请求(包含以下详细信息)来为旅行期内的总聚合运输费用授权。
- 字段 order.id 中的订单识别码 - 您可以使用与用于此卡首次点击时的 Verify 请求的相同订单 ID,或使用新订单 ID。
- transaction.id 中 Authorization 交易的订单中的唯一识别码
- order.amount 中此旅行期的总聚合运输费用
- order.currency 中订单的货币
- transaction.transit.aggregatedFare.type=FARE
- 具有有效枚举值的 transaction.transit.aggregatedFare.transportationMode(反映付款人第一段行程使用的运输方式)
- 包含有效的行程开始日期的 transaction.transit.aggregatedFare.aggregationStartDate
- 包含旅行期内首次点击的有效 EMV 数据的 sourceOfFunds.provided.card.emvRequest
- sourceOfFunds.provided.card.sequenceNumber
- transaction.source=CARD_PRESENT
- posTerminal.attended=UNATTENDED
- posTerminal.location=MERCHANT_TERMINAL_ON_PREMISES
- posTerminal.cardholderActivated=SELF_SERVICE_TERMINAL
- posTerminal.inputCapability=CONTACTLESS_CHIP
- posTerminal.panEntryMode=CONTACTLESS
- posTerminal.pinEntryCapability=PIN_NOT_SUPPORTED
- posTerminal.lane=99991111
- posTerminal.cardPresenceCapability=CARD_PRESENT
以下是一个总聚合运输费用的 Authorization 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "99991111",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "12",
"year": "39"
},
"track2": "400555xxxxxx0019=391220xxxxx6711"
}
},
"type": "CARD"
},
"transaction": {
"source": "CARD_PRESENT",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
如果请求成功,提交 Capture 请求,并提供以下详细信息。
order.id中成功 Authorization 交易的订单识别码transaction.id中 Capture 交易的订单中的唯一交易识别码transaction.amount中的成功授权金额- 与
transaction.currency中的 Authorization 相同的订单货币
以下是一个聚合运输费用的 Capture 请求的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
付款人可以在下一个旅行期再次使用该卡。 如果 Authorization 请求失败,继续进入首次乘车风险场景。
首次乘车风险
Mastercard 或 American Express 卡
网关还没有为 Mastercard 首次乘车风险框架提供支持。
Visa 卡
在旅行期结束时,根据 Visa 规则,只要 Authorization 被拒绝,但允许过账,即提交单独的 Capture 请求,并提供以下详细信息:
- 字段 order.id 中的订单识别码 - 必须是新 order.id。 您不能使用用于被拒绝 Authorize 请求的相同 order.id。
- transaction.id 中 Capture 交易的订单中的唯一识别码
- order.amount 中失败的 Authorization 请求中提供的总聚合运输金额
- order.amount 中失败的 Authorization 请求中提供的订单货币
- transaction.transit.aggregatedFare.type=FARE
- 具有首次点击日期的 transaction.transit.aggregatedFare.aggregationStartDate
- 具有有效枚举值的 transaction.transit.aggregatedFare.transportationMode(反映付款人第一段行程使用的运输方式)
- 包含旅行期内首次点击的有效 EMV 数据的 sourceOfFunds.provided.card.emvRequest
- sourceOfFunds.provided.card.sequenceNumber
- transaction.source=CARD_PRESENT
- posTerminal.attended=UNATTENDED
- posTerminal.location=MERCHANT_TERMINAL_ON_PREMISES
- posTerminal.cardholderActivated=SELF_SERVICE_TERMINAL
- posTerminal.inputCapability=CONTACTLESS_CHIP
- posTerminal.panEntryMode=CONTACTLESS
- posTerminal.pinEntryCapability=PIN_NOT_SUPPORTED
- 字段 authorizationResponse.transactionIdentifier 中的 authorizationResponse.transactionIdentifier 中失败的 Authorization 响应中返回的 15 位数字值
- 字段 authorizationResponse.returnAci 中的字段 authorizationResponse.returnAci 中失败的 Authorization 中返回的 1 个字母值
- transaction.authorizationCode=VFT000 - 这是 Visa 为此目的定义的 Authorization 代码
以下是聚合运输费用的 Standalone Capture 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"posTerminal": {
"address": {
"country": "AUS",
"postcodeZip": "4000"
},
"attended": "UNATTENDED",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "teapost",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "CONTACTLESS",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"sourceOfFunds": {
"provided": {
"card": {
"emvRequest": {
"5F2A": "036",
"5F34": "099",
"82": "0000",
"84": "010101010101",
"95": "0000000000",
"9A": "161021",
"9B": "0101",
"9C": "00",
"9F02": "000000010000",
"9F03": "000000000000",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "036",
"9F1E": "0123ABCD",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F35": "12",
"9F36": "0002",
"9F37": "2A4E1690",
"9F6E": "0101"
},
"expiry": {
"month": "05",
"year": "25"
},
"track2": "400555xxxxxx0019=391220116006711"
}
},
"type": "CARD"
},
"transaction": {
"amount": "8.00",
"currency": "AUD",
"source": "CARD_PRESENT",
"authorizationCode": "VFT000",
"transit": {
"aggregatedFare": {
"type": "FARE",
"aggregationStartDate": "2022-05-05",
"transportationMode": "TRAIN"
}
}
},
"authorizationResponse": {
"transactionIdentifier": "140929101914398",
"returnAci": "Y"
}
}
在以下情况下,Visa 规则允许对失败的 Authorization 执行 Capture:
- 发卡机构拒绝了此卡的第一个 Authorization 请求
- 自上一次成功的聚合运输费用的 Authorization 以来,发卡机构拒绝了此卡的第一个 Authorization 请求,以及
- 交易金额小于或等于您所在国家/地区的退单阈值。
提交 Capture 请求后,卡仍会在拒绝列表中。 您可以使用商家发起的债务追收确定卡是否已恢复良好信誉,因而应被从拒绝列表中删除。 在新订单中提交 Authorization 请求,并提供以下详细信息:
- order.id - 必须是新 order.id
- transaction.id
- order.amount - 必须与单独的 Capture 中的金额相同
- 字段 order.currency 中的货币
- transaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATED
- 具有有效枚举值的 transaction.transit.aggregatedFare.transportationMode(强制)
- transaction.source=MERCHANT
- 具有首次点击日期的 transaction.transit.aggregatedFare.aggregationStartDate(强制)
- 字段 authorizationResponse.transactionIdentifier 和 transaction.acquirer.customData 中失败的 Authorization 响应中返回的 15 位数字值,使用语法 {"VisaTransitFailedAuthTransactionIdentifier":"<value>"}
- 包含卡号、过期日期等在内的付款详细信息。
如果 Authorization 请求成功,您必须在一小时内将卡从拒绝列表中删除,并立即取消 Authorization。
取消授权
随后,您必须在 Authorization 成功的同一个订单中提交 WS API VOID 请求,并提供以下信息:
- order.id - 必须是成功 Authorization 的 order.id
- transaction.id - 必须是订单上的新交易 ID
- transaction.targetTransactionId - 必须是成功 Authorization 的 transaction.id
您可以重复 Authorization 请求,直到达到商家发起债务追收请求允许的尝试次数或频率。 有关商家发起的债务追收的更多信息,请参见下面的债务追收场景。 发卡机构对单独的 Capture 请求负责。 这意味着成功的 Capture 并不表示付款人的账户信誉良好,可以将卡从拒绝列表中删除。
商家发起的债务追收
组织允许您尝试在不引入付款人的情况下收回未付清的运输费用债务。 当付款人的账户信誉恢复良好后,成功的债务追收会让卡再次被接受,用于旅行付款。
要提交债务追收交易,请提供付款人使用的付款详细信息。
- 非接触式 EMV 付款: 提供 FPAN 详细信息。
- 非接触式移动付款:
- 对于 Mastercard: 提供 FPAN 详细信息。 网关将在对原始交易的交易响应中提供 FPAN 详细信息。
- 对于 Visa 卡: 提供 DPAN 详细信息。 请确保存储这些详细信息,因为网关不允许您进行检索。
Mastercard 或 American Express 卡
如果您为旅行期内的第一段行程提交的 Authorization 失败,您可以尝试按照适用的 Mastercard 组织规则收回此行程的总费用。 提交 Authorization 请求,并提供以下详细信息:
order.id中的订单识别码 - 必须是新 order.id。 不能与用于 VERIFY 请求、被拒绝的 AUTHORIZE 请求或 CAPTURE 请求的 order.id 相同。transaction.id中Authorization交易的订单中的唯一识别码transaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATED- 具有有效枚举值的
transaction.transit.aggregatedFare.transportationMode(反映付款人第一段行程使用的运输方式) - 包含有效的行程开始日期的
transaction.transit.aggregatedFare.aggregationStartDate transaction.source=MERCHANT- 包含 FPAN 和 FPAN 过期时间在内的付款详细信息
以下是用于聚合运输费用债务追收的 Authorization 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "12",
"year": "39"
},
"number": "512345xxxxxx1234",
"sequenceNumber": "099"
}
},
"type": "CARD"
},
"transaction": {
"source": "MERCHANT",
"transit": {
"aggregatedFare": {
"type": "DEBT_RECOVERY_MERCHANT_INITIATED",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
如果请求成功,提交 Capture 请求,并提供以下详细信息:
- order.id 中成功 Authorization 交易的订单识别码
- transaction.id 中 Capture 交易的订单中的唯一交易识别码
- transaction.amount 中的成功授权金额
- 与 transaction.currency 中的 Authorization 相同的订单货币
以下是用于聚合运输费用债务追收的 Capture 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
成功收回债务后,将卡从拒绝列表中删除。 只有付款人账户内有足够的资金时,债务追收的 Authorization 才会成功。 发卡机构不对债务追收交易负责。 如果 Authorization 请求失败,您可以根据适用的 Mastercard 组织规则重新尝试债务追收。 Mastercard 会定义债务追收交易允许的金额和债务追收尝试的频率。 允许的金额必须小于或等于 Mastercard 定义的非接触式运输聚合交易上限。 如果您有足够的信息确定旅行期内第一段行程的 Authorization 因卡丢失或被盗被拒绝(硬性拒绝),那么您不能尝试债务追收。 如果卡丢失或被盗,您无法收回资金;这是一项硬性拒绝,或允许的债务追收尝试全部失败。
Visa 卡
如果您未提交单独的 Capture 请求,您可以尝试根据适用的 Visa 组织规则收回费用。 有关 Visa 非接触式卡的首次拒绝交易达到定义的移动和运输交易共享责任限额的更多信息,请参见首次乘车风险场景。
提交 Authorization 请求,并提供以下详细信息:
- order.id 中的订单识别码 - 必须是新 order.id。 不能与用于 VERIFY 请求、被拒绝的 AUTHORIZE 请求或 CAPTURE 请求的 order.id 相同
transaction.id中此 Authorization 交易的订单中的唯一识别码transaction.source=MERCHANTtransaction.transit.aggregatedFare.type=DEBT_RECOVERY_MERCHANT_INITIATED- 具有有效枚举值的
transaction.transit.aggregatedFare.transportationMode(反映付款人第一段行程使用的运输方式) - 包含有效的行程开始日期的
transaction.transit.aggregatedFare.aggregationStartDate - 字段
authorizationResponse.transactionIdentifier and the transaction.acquirer.customData中失败的 Authorization 响应中返回的 15 位数字值,使用以下语法: {"VisaTransitFailedAuthTransactionIdentifier":"<value>"} - 付款详细信息,包括原始交易为非接触式 EMV 付款的 FPAN 和 FPAN 过期时间,或原始交易为无接触式移动付款的 DPAN 和 DPAN 过期时间
以下是用于聚合运输费用债务追收的 Authorization 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": "15.00",
"currency": "AUD"
},
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "12",
"year": "39"
},
"number": "400555xxxxxx0019",
"sequenceNumber": "099"
}
},
"type": "CARD"
},
"transaction": {
"source": "MERCHANT",
"transit": {
"aggregatedFare": {
"type": "DEBT_RECOVERY_MERCHANT_INITIATED",
"aggregationStartDate": "2020-05-05",
"transportationMode": "TRAIN"
}
}
}
}
如果请求成功,提交 Capture 请求,并提供以下详细信息:
order.id中成功 Authorization 交易的订单识别码transaction.id中 Capture 交易的订单中的唯一交易识别码transaction.amount中的成功授权金额- 与
transaction.currency中的 Authorization 相同的订单货币
以下是用于聚合运输费用债务追收的 Capture 的 REST 示例。
| URL | https://na.gateway.mastercard.com/api/rest/version/66/merchant/CYG_S2I_MER2/order/{{order_id}}/transaction/{{transaction_id}} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"amount": "15.00",
"currency": "AUD"
}
}
根据 Visa 规则,成功收回债务后,您必须在收到 Authorization 批准后一小时内将卡从拒绝列表中删除。 如果 Authorization 请求失败,您可以根据适用的 Visa 组织规则重新尝试债务追收。 Visa 会定义允许的债务追收尝试次数。
付款人发起的债务追收
此场景适用于 Mastercard、Visa 和 American Express。 对于付款人发起的债务追收付款,您不能在 transaction. transit 参数组中提交任何字段。 付款人发起的债务追收交易将被视为付款人在商家进行购买的正常交易。
点击发起的债务追收
此场景适用于 Mastercard、Visa 和 American Express。
对于点击发起的债务追收付款,您不能在 transaction.transit 参数组中提交任何字段。 点击发起的债务追收交易将被视为付款人在商家进行购买的正常交易。
测试您的集成
有关测试集成的信息,请联系您的客户代表。