步骤1:创建 Payment Intent
根据拿到支付方式的时机不同,有两种做法:- 直接支付
- 延迟确认
步骤2:处理响应
根据响应中的intent_status 字段决定下一步动作:
intent_status | 动作 |
|---|---|
SUCCEEDED | 支付已完成。更新你的订单状态。 |
REQUIRES_CUSTOMER_ACTION | 客户需要完成额外步骤(例如 3DS 验证)。参见处理客户动作。 |
REQUIRES_PAYMENT_METHOD | payment attempt 已失败。提示客户更换支付方式或换张卡。 |
PENDING | 支付处理中。等待 webhook 通知。 |
成功响应示例
步骤3:处理客户动作
当intent_status 为 REQUIRES_CUSTOMER_ACTION 时,next_action 字段会告诉你客户需要做什么。
3DS 重定向
如果卡需要 3D Secure 身份验证,next_action 会携带一个重定向 URL:
return_url。详细的 3DS 集成说明见:
展示二维码
对于电子钱包支付(AlipayCN、WeChatPay 等),next_action 可能会携带一个二维码:
步骤4:获取支付结果
使用下列一种或两种方式来确认最终支付状态:Webhooks(推荐)
配置你的服务端接收来自 UQPAY 的异步通知。这是最可靠的方式。 关键 webhook 事件:acquiring.payment_intent.succeeded—— 支付已完成acquiring.payment_attempt.failed—— payment attempt 失败。注意:acquiring.payment_intent.failed只在 PI 超时自动关闭(30 分钟过期)时触发,单次尝试失败不会触发它。acquiring.payment_attempt.capture_requested—— 请款已提交。收到这个事件也意味着支付已成功。
Retrieve 接口(轮询)
直接查询支付状态:电子钱包支付
同一套 API 也支持电子钱包支付方式。把payment_method 对象替换成对应的钱包类型即可:
AlipayCN 二维码示例
AlipayCN 二维码示例
next_action.display_qr_code 供客户扫码。AlipayCN 付款码示例(线下)
AlipayCN 付款码示例(线下)

