Отправка API запроса
Параметры передаваемые в запросе, описаны в документации Personal API.
Code Block |
---|
<?php
$userToken = Intellectmoney::GetUserToken([
// Параметры метода
'login' => 'myLogin',
'password' => 'myPassword',
// Данные для авторизации API запросов и расчета подписей
'token' => 'Bearer myToken',
'signSecretKey' => 'mySignSecretKey',
]);
Intellectmoney::SetScheduledOperationData([
// Параметры метода
'userToken' => $userToken,
'operation' => 'd4542e64-4a19-414c-a60f-30e3bedc8e6d',
'objectId' => 3496318551,
'objectTypeVal |
Описание
Multiexcerpt include | ||||
---|---|---|---|---|
|
Полное описание функционала смотрите в Personal API пункт SetScheduledOperation()-Редактирование операций по расписанию.
В Создание операций по расписанию мы получили CronOperationId ("ece5b08a-8951-4739-8d71-ee589676bcd2"), данное значение указываем в параметре Operation.
Пример на языке программирования PHP
В примере ниже мы изменим сумму платежа со 100 рублей на 200 рублей
Code Block | ||||
---|---|---|---|---|
| ||||
$userToken = getToken(); $data = array( 'UserToken' => $userToken, 'Operation' => 'ece5b08a-8951-4739-8d71-ee589676bcd2', 'ObjectId' => 3496318551,//Номер счёта к оплате в системе IntellectMoney 'ObjectTypeVal' => 1, 'paramsJson' => '{ "Amount": 10 }', 'ParamsJsonrepeatPlan' => '{"Amount":"200" "StartAt": "2025-01-01T12:00:00+00:00", "PeriodLength": 1, "PeriodType": "Day" }', 'retryOnFailPlan' => '{ "PeriodLength": 'RepeatPlan5, "PeriodType": "Minute" }', 'retryOnFailCount' => "0 0 12 1/4 * ? *", 'RetryOnFailPlan' => "0 0/15 * 1/1 * ? *", 'RetryOnFailCount' => 3, 'FireOnSkip' => 1, 'EndExecDate' => "12.12.2021", 'State' => 1 ); $request = curlRequest( 3, 'isSingle' => 0, 'fireOnSkip' => 1, 'state' => 1, 'endExecDate' => '01.01.2030', // Данные для авторизации API запросов и расчета подписей 'token' => 'Bearer myToken', 'signSecretKey' => 'mySignSecretKey', ]); class IntellectMoney { // Аутентификация клиента API public static function GetUserToken($params) { // URL запроса $url = 'https://api.intellectmoney.ru/personal/user/getUserToken'; // Расчет подписи для заголовка авторизации API запросов, sign (SHA256) $signSignature = [ '', $params['login'], $params['password'], '', $params['signSecretKey'], ]; $signHash = hash('sha256', implode('::', $signSignature)); // Заголовки запроса $headers = [ 'Authorization: '.$params['token'], 'Sign: '.$signHash, ]; // Данные (тело) запроса $data = [ 'login' => $params['login'], 'password' => $params['password'], ]; // Выполняем запрос $response = Intellectmoney::CurlRequest($url, $headers, $data); $responseXml = simplexml_load_string($response); $userToken = $responseXml->Result->UserToken; return (string)$userToken; } // Cоздание или редактирование операций по расписанию public static function SetScheduledOperationData($params) { // URL запроса $url = 'https://api.intellectmoney.ru/personal/scheduler/setScheduledOperationData', $data); $result = simplexml_load_string($request); |
Вспомогательные функции
Multiexcerpt include | ||||
---|---|---|---|---|
|
Multiexcerpt include | ||||
---|---|---|---|---|
|
/setscheduledoperationdata';
// Расчет подписи для заголовка авторизации API запросов, sign (SHA256)
$signSignature = [
$params['userToken'],
'',
'',
$params['operation'],
$params['objectId'],
$params['objectTypeVal'],
$params['paramsJson'],
$params['repeatPlan'],
$params['retryOnFailPlan'],
$params['retryOnFailCount'],
$params['isSingle'],
$params['fireOnSkip'],
$params['state'],
'',
'',
$params['endExecDate'],
$params['signSecretKey'],
];
$signHash = hash('sha256', implode('::', $signSignature));
// Заголовки запроса
$headers = [
'Authorization: '.$params['token'],
'Sign: '.$signHash,
];
// Данные (тело) запроса
$data = [
'userToken' => $params['userToken'],
'operation' => $params['operation'],
'objectId' => $params['objectId'],
'objectTypeVal' => $params['objectTypeVal'],
'paramsJson' => $params['paramsJson'],
'repeatPlan' => $params['repeatPlan'],
'retryOnFailPlan' => $params['retryOnFailPlan'],
'retryOnFailCount' => $params['retryOnFailCount'],
'isSingle' => $params['isSingle'],
'fireOnSkip' => $params['fireOnSkip'],
'state' => $params['state'],
'endExecDate' => $params['endExecDate'],
];
// Выполняем запрос
$response = Intellectmoney::CurlRequest($url, $headers, $data);
print_r((string)$response);
}
private static function CurlRequest($url, $headers, $data) {
$queryString = http_build_query($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
?> |
В ручную, через личный кабинет IntellectMoney
- Переходим в раздел "Подписки".
- Выбираем нужную подписку со статусом "Активен".
- Нажимаем "Изменить подписку".
- Изменяем данные.
- Нажимаем "Сохранить".
...