Я был в состоянии сделать запросы API с другими конечными точками просто отлично, но конечная точка для совершения покупок, кажется, не работает вообще. Похоже, что это ошибка сервера с их стороны, но я решил спросить здесь на всякий случай, если совершу неосторожную ошибку.
Я написал несколько версий своей функции, но это одна из них:
function getLCInfo($endpoint, $getData = false) {
$api_url = "https://api.lendingclub.com/api/investor/";
$verison = "v1";
$account_id = "12345678";
$ContentType = "application/json";
$url = "$api_url$verison/accounts/$account_id/$endpoint/";
if($getData) {
$url .= "?" . urldecode(http_build_query($getData));
echo $url;
}$key = "aaaaaaaaaaaaaaaa99999999";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array('Authorization: ' . $key,
'Content-type: ' . $ContentType ,
'Accept: ' . $ContentType,
'X-LC-Application-Key: ' . $account_id));
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$output = curl_exec( $ch );
curl_close( $ch );
return json_decode($output);
}
Это их документация:
Этот подресурс предоставляет сводку по счету инвестора.
Операция: ПОЛУЧИТЬ
URL: https://api.lendingclub.com/api/investor/v1/accounts/[investor
Идентификатор] / сделки /Параметры URL: Id инвестора — это можно получить из учетной записи
Сводный раздел на сайте Lending Club, когда пользователь вошел в систему.Параметры запроса: Нет.
Поддерживаемые форматы: JSON-запрос на покупку заметок
Заголовки запроса / ответа: NAME TYPE NULLABLE DESCRIPTION
Строка помощи № Идентификатор инвестора, от имени которого партнер
запрос на покупку одной или нескольких заметок для заметок Array No Массив из одного
или более примечаний loanId String Нет Числовой идентификатор кредита, чей
запрошенное примечание для заказа на покупку ID Строка Нет Числовой идентификатор
порядок для заметки noteId String No Числовой идентификатор заметки
bidPrice String Нет Положительное числовое значение в долларах ($) и центах
представляет желаемую цену покупки для ноты. Пример запроса: JSON —{ "aid":70654,"notes": [ {"loanId":3349795,"orderId":19979983,"noteId":5730626,"bidPrice":9.79}, {"loanId":707414,"orderId":1369944,"noteId":4154191,"bidPrice":23.84}, {"loanId":1076461,"orderId":2133757,"noteId":7827843,"bidPrice":34.45}
] }
Образец ответа—
{ buyNoteConfirmations: [ 3 ] : { loanId: 3349795 noteId: 5730626 bidPrice: 9.79 outstandingAccruedInterest: null outstandingPrincipal: null yieldToMaturity: null executionStatus: [ 1 ] : "
NOTE_DOES_NOT_EXIST «}
1: {loanId: 707414 noteId: 4154191 bidЦена: 23,84 невыполненныхAccruedInterest: null невыполненныхPrincipal: null
yieldToMaturity: null executeStatus: [1]: «NOTE_NOT_AVAILABLE»}
2: {loanId: 1076461 noteId: 7827843 bidPrice: 34.45 НепогашенныйAccruedInterest: null невыполненныйPrincipal: null yieldToMaturity: пустое значение
Это то, что происходит, когда я тестирую в Почтальоне
Размещение данных:
POST /api/investor/v1/accounts/87308218/trades/ HTTP/1.1
Host: api.lendingclub.com
Authorization: aaaaaaaaaaa111111
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 68d283a6-08f0-6789-3542-3a1baa554ce7
{
"aid":70654,"notes":
[
{"loanId":3349795,"orderId":19979983,"noteId":5730626,"bidPrice":9.79},
{"loanId":707414,"orderId":1369944,"noteId":4154191,"bidPrice":23.84},
{"loanId":1076461,"orderId":2133757,"noteId":7827843,"bidPrice":34.45}
]
}
и я попытался использовать GET, как написано в их документации.
GET /api/investor/v1/accounts/87308218/trades/?aid=12345678&notes[0][loanId]=17213188&notes[0][orderId]=25300948&notes[0][noteId]=48382917&notes[0][bidPrice]=6.77&notes[1][loanId]=17213188&notes[1][orderId]=25300943&notes[1][noteId]=48382538&notes[1][bidPrice]=6.77 HTTP/1.1
Host: api.lendingclub.com
Authorization: aaaaaaaaaaa111111
Cache-Control: no-cache
Postman-Token: b34cb60b-91ea-c82e-349f-d395b01b1dc0
Заранее спасибо!
Я понял! Оказывается, у LendingClub была неправильная информация в их документации (супер расстраивает!).
Мое решение состояло в том, чтобы изменить Операцию на POST вместо GET, и конечная точка была неправильной.
У них есть URL: https://api.lendingclub.com/api/investor/v1/accounts/[investor id] / trades /, это должен быть URL: https://api.lendingclub.com/api/investor/v1/accounts// сделки / покупки
(что на самом деле имеет гораздо больше смысла, поскольку конечная точка продажи их API заканчивается на / trades / sell.
Я надеюсь, что какой-то разработчик из LendingClub прочтет это и отредактирует документацию API, я уверен, что я не одинок в этом!
Других решений пока нет …