我正在尝试使用 GoCardless API 沙箱创建客户,但只收到 403 禁止错误
{"error": {
"message": "Forbidden request",
"errors": [ {
"reason": "forbidden",
"message": "Forbidden request"
}],
"documentation_url": "https://developer.gocardless.com/api-reference#forbidden",
"type": "invalid_api_usage",
"request_id": "8b870491-e8ca-436c-a602-bb613bba7d96",
"code": 403
}}
我已经使用 OAuth 获取了一个不记名令牌,我用它来发帖到沙盒 url
https://api-sandbox.gocardless.com/customers
使用此 url 和不记名令牌,我可以获取客户并更新我通过沙盒客户端门户手动创建的客户。如果我故意将令牌设为无效值,我会收到 401 错误,因此我确信令牌是正确的。
错误类型“invalid_api_usage”的文档如下
这是您提出的请求的错误。它可能是无效的 URL,身份验证标头可能丢失、无效或授予的权限不足,您可能已达到速率限制,或者您的请求语法可能不正确。这些错误将给出具体问题的更多细节。
我可以更新客户的事实,我相信跨越了该列表中的大多数潜在问题。
我现在使用 GoCardless API 示例的确切帖子正文内容来创建客户以验证语法是否正确。
{
"customers": {
"email": "user@example.com",
"given_name": "Frank",
"family_name": "Osborne",
"address_line1": "27 Acer Road",
"address_line2": "Apt 2",
"city": "London",
"postal_code": "E8 3GX",
"country_code": "GB",
"metadata": {
"salesforce_id": "ABCD1234"
}
}
}
我从 SoapUI 而不是我的应用程序运行这些请求,所以我可以确定我正在发送我期望发送的内容。
从 API 文档中,我了解到我的应用程序必须具有批准的支付页面才能在实时环境中创建客户,但是它的前缀是一个声明,这在沙盒环境中不受限制。
限制
虽然在沙盒环境中可以访问整个 GoCardless API,但在 live 中存在以下限制。
支付页面限制
除非您的付款页面已被我们的赞助银行批准为符合方案规则,否则您必须使用重定向流 API 来创建客户、银行账户和委托书。
因此,以下端点受到限制:
- 客户:创造
- 客户银行账户:创建
- 任务:创建,恢复
- Javascript 流程:所有端点
在我看来,如果 Create Customer 在沙盒环境中受到限制,我将得到 403 禁止响应,但是 API 文档明确指出情况并非如此。
我的问题基本上是我做错了什么?也许有人能发现我忘记或误解的东西。