GoCardless API с использованием Classic ASP
Я создаю следующий запрос в VBScript и отправляю в песочницу без gocard:
url="https://api-sandbox.gocardless.com/"
typ="GET"
Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
xml.Open typ, url, False
xml.setRequestHeader "Authorization", "Bearer " & GCAccessToken
xml.SetRequestHeader "GoCardless-Version", "2015-07-06"
xml.SetRequestHeader "Accept","application/json"
xml.SetRequestHeader "Content-Type", "application/json"
xml.Send
GetGC = xml.responseText
Set xml = Nothing
Ответ, который я всегда получаю, несмотря на любые изменения, которые я делаю:
{"error":{"message":"not found","errors":[{"reason":"not_found","message":"not found"}],"documentation_url":"https://developer.gocardless.com/api-reference#not_found","type":"invalid_api_usage","request_id":"0AA4000DECCD_AC121CEB1F90_5BE18701_19AD0009","code":404}}
Любая помощь будет оценена. Успешно сделали подобное для Stripe, но теперь нужно использовать GC.
1 ответ
Если вы прочитали ответ от API
{
"error": {
"message": "not found",
"errors": [{
"reason": "not_found",
"message": "not found"
}
],
"documentation_url": "https://developer.gocardless.com/api-reference#not_found",
"type": "invalid_api_usage",
"request_id": "0AA4000DECCD_AC121CEB1F90_5BE18701_19AD0009",
"code": 404
}
}
Похоже, ошибка является кодом состояния HTTP (как это обычно бывает с RESTful API) - 404 Not Found
просматривая ссылку на документацию, приведенную в ответе;
404
Не обнаружена. Запрашиваемый ресурс не найден или аутентифицированный пользователь не может получить доступ к ресурсу. Тело ответа объяснит, какой ресурс не был найден.
Так что проблема может быть;
- Вы не смогли аутентифицироваться с использованием токена в предоставленном коде.
- Вы прошли проверку подлинности, но у вас нет разрешения на доступ к ресурсу.
- Ресурс, который вы ищете, не существует.
В данном конкретном случае я бы предложил, потому что ресурс не существует, так как код не указывает ресурс, только базовый URL-адрес API, который не будет представлять собой конечную точку API, с которой вы можете взаимодействовать.
Из документации видно, что необходимо указать действительную конечную точку в URL-адресе, на момент написания этой статьи существует 15 основных конечных точек, с которыми необходимо взаимодействовать, а также 2 вспомогательных конечных точки.
Например, запрос / ответ о создании платежа будет выглядеть так:
POST https://api.gocardless.com/payments HTTP/1.1
{
"payments": {
"amount": 100,
"currency": "GBP",
"charge_date": "2014-05-19",
"reference": "WINEBOX001",
"metadata": {
"order_dispatch_date": "2014-05-22"
},
"links": {
"mandate": "MD123"
}
}
}
HTTP/1.1 201 (Created)
Location: /payments/PM123
{
"payments": {
"id": "PM123",
"created_at": "2014-05-08T17:01:06.000Z",
"charge_date": "2014-05-21",
"amount": 100,
"description": null,
"currency": "GBP",
"status": "pending_submission",
"reference": "WINEBOX001",
"metadata": {
"order_dispatch_date": "2014-05-22"
},
"amount_refunded": 0,
"links": {
"mandate": "MD123",
"creditor": "CR123"
}
}
}
К сожалению, пример кода, приведенный в вопросе, на самом деле ничего не делает, поэтому сложно предположить, что вы пытаетесь сделать. В заключение я бы предложил повторно посетить документацию по API и просмотреть предоставленные образцы.