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

Revolut Pay沙箱环境返回404(错误码3006)问题求助

解决Revolut B2B沙箱支付接口返回3006(资源未找到)问题

可能的原因及排查步骤

  • 端点路径验证:核对官方沙箱API文档,确认支付接口路径是否正确。部分场景下,沙箱环境的支付接口可能存在路径差异,比如是否应为/api/1.0/payments而非/api/1.0/pay。
  • 请求方法检查:确保请求使用的是POST方法,代码和Postman中均需确认未误选其他方法。
  • 账户与交易对手有效性:
    • 检查发起支付的account_id属于当前授权商户,且账户状态正常(无冻结、有可用余额)。
    • 确认receiver内的counterparty_id和account_id匹配,且该交易对手已完成沙箱环境下的必要验证流程。
  • Request ID唯一性:request_id必须为全局唯一值,避免重复使用历史请求ID,沙箱环境会拒绝重复ID的请求。
  • 授权令牌权限:尽管其他API可正常调用,但支付接口可能需要额外的payments权限范围。在Revolut开发者后台检查API密钥是否包含该权限。

代码优化建议

增加错误捕获与日志输出,便于排查问题:

import requests
import json
import uuid

# 生成唯一request_id
request_id = str(uuid.uuid4())
url = "https://sandbox-b2b.revolut.com/api/1.0/pay"

payload = json.dumps({
  "request_id": request_id,
  "account_id": "********",
  "receiver": {
    "counterparty_id": "**********",
    "account_id": "**********"
  },
  "amount": 10,
  "charge_bearer": "debtor",
  "currency": "GBP",
  "reference": "**********"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer ••••••'
}

try:
    response = requests.post(url, headers=headers, data=payload)
    print(f"响应状态码: {response.status_code}")
    print(f"响应头: {dict(response.headers)}")
    print(f"响应内容: {response.text}")
    
    if response.status_code != 200:
        error_data = response.json()
        print(f"错误代码: {error_data.get('code')}, 错误信息: {error_data.get('message')}")
except Exception as e:
    print(f"请求异常: {str(e)}")

额外排查点

  • 确认沙箱环境的支付金额限制,检查amount是否符合要求(GBP 10通常合规,但部分场景可能需调整)。
  • 验证Authorization头格式是否正确,必须为Bearer <令牌>格式,确保未遗漏Bearer前缀。

内容的提问来源于stack exchange,提问作者python nessovo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:16:01