Редактирование операции по расписанию через API запроса
Для редактирования операции по расписанию через API используется метод setScheduleOperation()
из Personal API.
Здесь в отличие от создания операции дополнительно передается operation, для указания редактируемой операции.
Описание
Multiexcerpt include | ||||
---|---|---|---|---|
|
Полное описание функционала смотрите в Personal API пункт SetScheduledOperation()-Редактирование операций по расписанию.
В Создание операций по расписанию мы получили CronOperationId ("ece5b08a-8951-4739-8d71-ee589676bcd2"), данное значение указываем в параметре Operation.
Пример на языке программирования PHP
В примере ниже мы изменим сумму платежа со 100 рублей на 200 рублей
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<?php $userToken = getToken(); $data = array( 'UserTokenIntellectmoney::GetUserToken([ // Параметры метода 'login' => 'myLogin', 'password' => $userToken'myPassword', // Данные для авторизации API запросов и расчета подписей 'Operationtoken' => 'ece5b08a-8951-4739-8d71-ee589676bcd2Bearer myToken', 'ObjectId 'signSecretKey' => 3496318551,'mySignSecretKey', ]); Intellectmoney::SetScheduledOperationData([ //Номер счёта к оплате в системе IntellectMoney 'ObjectTypeValПараметры метода 'userToken' => $userToken, 'operation' => 'd4542e64-4a19-414c-a60f-30e3bedc8e6d', 'objectId' => 3496318551, 'objectTypeVal' => 1, 'paramsJson' => '{ "Amount": 10 }', 'ParamsJsonrepeatPlan' => '{"Amount":"200" "StartAt": "2025-01-01T12:00:00+00:00", "PeriodLength": 1, "PeriodType": "Day" }', 'retryOnFailPlan' => '{ "PeriodLength": 5, 'RepeatPlan"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
- Перходим в раздел Подписки.
- Выбираем желаемую операцию.
- В окне операции нажимаем Изменить подписку.
- Изменяем параметры и сохраняем операцию.
Multiexcerpt include