You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PayPal Orders API v2支付获批后退款,需额外调用API吗?

PayPal Orders API v2 款项退回问题解决

是的,你必须调用订单捕获API,这是你缺失的关键步骤。

当你在创建订单时设置intent: 'CAPTURE',整个支付流程分为两步:

  • 第一步:创建订单并引导用户完成授权,此时订单状态变为APPROVED,银行账户扣款只是临时授权,资金并未实际转入你的账户
  • 第二步:调用捕获API,将授权的资金正式转入你的账户

如果跳过第二步,PayPal会在一段时间后(通常数小时内)自动取消这笔授权,导致款项退回至用户账户。

捕获API调用示例(适配你的代码风格)

def capture_paypal_order(token, order_id):
    capture_headers = {
        'Content-Type': 'application/json',
        'Authorization': f'Bearer {token}'
    }

    response = requests.post(f"https://{paypal_url}/v2/checkout/orders/{order_id}/capture", 
                             headers=capture_headers,
                             data=json.dumps({}))  # 空请求体即可

    return response

完整流程补充

  1. 调用你已有的create_paypal_payment函数,从响应中提取id字段(即order_id)
  2. 用户通过返回的payer_action链接完成支付,查询订单状态确认变为APPROVED
  3. 立即调用上述capture_paypal_order函数,传入token和order_id
  4. 检查捕获接口的响应,确认订单状态变为COMPLETED,此时资金会正式留存,不会被退回

注意:捕获操作需在订单APPROVED状态后尽快执行,避免因超时自动取消授权。

内容的提问来源于stack exchange,提问作者Ali Joghataee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:48:12