取消和捕获流程
与 Yuno 集成时,您有多种选择来实现捕获和取消操作。本指南概述了所有可用的方法,并解释了在每种情况下如何与我们的 API 交互。
我们为快速交易提供简单的实时采集,也提供高度可定制的延迟采集和取消配置,以满足您的业务需求。
概述
捕捉模式
Yuno 提供了三种获取付款的选择,由以下因素决定 capture 字段和可选的 delayed_capture_settings 配置中找到的 创建支付应用程序接口.实际功能可用性或具体实施细节可能会有所不同,具体取决于您通过哪个支付提供商进行支付。
实时采集
这种模式处理付款和转账,没有任何延迟,有效地将授权和捕获合二为一。 购买 操作。当 payment_method.detail.card.capture 设置为 true在这种情况下,交易是作为购买执行的,这意味着授权和捕获是同时进行的。
根据支付提供商的应用程序接口,Yuno 可以将其作为一个直接购买交易执行,也可以作为紧接着捕获调用的授权执行。
{
"payment_method": {
"detail": {
"card": {
"capture": true,
"card_data": {
// card details
}
}
}
}
}手动捕捉
使用这种配置,Yuno 将不会捕获付款,直到您调用 捕获 API 或在您的 尤诺仪表板.设置 capture: false 授权付款,但不捕获付款。
手动捕获具有最大的灵活性,因为您可以完全控制捕获的时间。不过,由于支付提供商对未捕获授权的时间有限制,而且这些限制因提供商和地区而异,因此必须尽快捕获。
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"card_data": {
// card details
}
}
}
}
}
捕捉不同的金额如果需要采集与最初授权不同的金额,则必须使用手动采集。实时和延迟捕获模式将始终捕获最初授权的金额。
延迟捕获
配置 capture: false 与 delayed_capture_settings 中指定的稍后时间获取付款。 delay field.
仅捕获全额延迟抓取只适用于抓取授权的全部金额。如果需要获取部分金额,则必须使用手动获取。
simplified_mode设置
simplified_mode至true将使 Yuno 在预定的捕捉尝试中发生错误时重试捕捉操作。
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P7D",
"simplified_mode": false
},
"card_data": {
// card details
}
}
}
}
}"(《世界人权宣言》) delay 字段是使用延迟捕获操作时的必填字段,并且必须遵循 ISO 8601 标准.例如
"PT3H"3小时"P7D"7天"P1M"1 个月
如果您在预定时间之前调用捕捉 API,您的调用将覆盖延迟并立即执行捕捉。此操作会自动取消预定的 Yuno 触发器。或者,您也可以通过Yuno 面板手动抓取付款。
取消模式
当您授权付款但未立即抓取付款时,这些资金会暂时扣留在客户的付款方式上。如果您决定不抓取付款,就必须取消授权以释放这些被扣留的资金,并提供更好的客户体验。取消模式可让您控制何时以及如何取消这些授权。
手动取消
使用手动取消模式,授权付款将保持激活状态,直到您明确取消为止。Yuno 不会自动取消这些授权,让您完全控制何时释放资金。您可以使用取消 API或通过 Yuno 面板界面取消授权。
尽快取消不会捕获的授权以释放被扣留的资金至关重要。如果不取消授权,客户体验会受到严重影响,因为根据客户所在地区和银行卡网络的不同,资金可能会保留不同的时间。
延迟取消
配置 delayed_cancel_settings 在取消未捕获授权时设置延迟,类似于延迟捕获。如果您决定不在指定时间内捕获客户资金,该功能可自动释放客户资金,防止无限期扣留客户的支付方式,从而显著改善客户体验。
"(《世界人权宣言》) delay 字段是使用延迟取消操作时的必填字段,并且必须跟随 ISO 8601 标准.例如
"PT3H"3小时"P7D"7天"P30D"为期30天
simplified_mode设置
simplified_mode至true将使 Yuno 在预定的取消尝试中发生错误时重试取消操作。
{
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_cancel_settings": {
"delay": "P30D",
"simplified_mode": false
},
"card_data": {
// card details
}
}
}
}
}如果您在预定时间前调用捕捉 API或取消 API,您的调用将覆盖延迟并立即执行操作。此操作会自动取消预定的 Yuno 触发器。或者,您也可以通过 Yuno 面板手动捕获或取消付款。
延迟捕捉和取消设置我们建议不要使用 两个
delayed_capture_settings和delayed_cancel_settings同时使用,以免出现意外行为。根据需要,一次只使用一种。
配置要求
delayed_capture_settings和delayed_cancel_settings只有当capture = false- 如果
capture = true,这些对象必须省略或设置为null - 可通过 APIendpoints 或 Yuno 面板执行手动操作
申请示例
示例 1:实时采集
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": true,
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Real-time capture payment",
"merchant_order_id": "000023"
}例 2:仅手动捕捉
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization only - manual capture",
"merchant_order_id": "000024"
}例 3:延迟捕获
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P7D",
"simplified_mode": false
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization with delayed capture",
"merchant_order_id": "000025"
}例 4:延迟取消
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_cancel_settings": {
"delay": "P30D",
"simplified_mode": false
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
}
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Authorization with delayed cancel",
"merchant_order_id": "000026"
}例 5:延迟捕获和取消与强化验证相结合
此示例显示了一个完整的付款请求,包含延迟捕获和取消设置,以及增强的客户验证字段:
{
"country": "US",
"amount": {
"currency": "USD",
"value": "20000"
},
"customer_payer": {
"merchant_customer_validations": {
"account_is_verified": true,
"email_is_verified": true,
"phone_is_verified": true
},
"id": "<customer_id>",
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]"
},
"workflow": "DIRECT",
"payment_method": {
"detail": {
"card": {
"capture": false,
"delayed_capture_settings": {
"delay": "P20D",
"simplified_mode": true
},
"delayed_cancel_settings": {
"delay": "P40D",
"simplified_mode": true
},
"card_data": {
"number": "4111111111111111",
"expiration_month": 11,
"expiration_year": 28,
"security_code": "123",
"holder_name": "John Doe"
},
"verify": false
}
},
"type": "CARD"
},
"account_id": "<account_id>",
"description": "Payment with card details",
"merchant_order_id": "000023"
}
备注本例同时显示了
delayed_capture_settings和delayed_cancel_settings配置在一起,我们建议一次只使用一个,以避免出现意想不到的行为。
何时使用每种模式
在以下情况下使用实时捕捉功能
- 您立即提供货物或服务
- 授权后无需验证库存或欺诈检查
- 您需要最简单的付款流程
在下列情况下使用手动捕捉
- 您需要在最终付款前核实库存
- 您想获取的金额与授权金额不同
- 您有复杂的业务逻辑来决定是捕获还是取消
- 您需要最大限度地控制采集时间
在以下情况下使用延迟捕捉
- 您希望在特定时间段后自动捕捉
- 您有一个可预测的履行流程
- 您希望在保持控制的同时减少人工干预
在以下情况下使用延迟取消
- 如果未在规定时间内捕获,您希望自动释放客户资金
- 您希望通过避免无限期扣留资金来改善客户体验
- 您有履行流程的最长时限
实地参考
| 现场 | 类型 | 说明 |
|---|---|---|
capture | boolean | 确定是否立即捕获银行卡付款(......)。true购买)或仅授权(false需要捕获或取消)。 |
delayed_capture_settings.delay | string | Yuno 捕捉付款之前的延迟。必须遵循ISO 8601 时长格式(例如,"P7D "表示 7 天,"PT3H "表示 3 小时)。 |
delayed_capture_settings.simplified_mode | boolean | 如果 true如果捕捉失败,Yuno 会重试捕捉。 |
delayed_cancel_settings.delay | string | Yuno 取消授权前的延迟时间。必须遵循ISO 8601 时长格式(例如,"P30D "表示 30 天)。 |
delayed_cancel_settings.simplified_mode | boolean | 如果 true如果取消失败,尤诺会重试。 |
2 个月前已更新