Операции привязывается к исходному счету, который должен быть оплачен или захолдирован. В уведомление об оплате исходного счета, должен быть параметр recurringState = Activate (рекуррентные платежи активированы).
Для создания операции по расписанию через API используется метод setScheduleOperation()
из Personal API.
<?php $userToken = Intellectmoney::GetUserToken([ // Параметры метода 'login' => 'myLogin', 'password' => 'myPassword', // Данные для авторизации API запросов и расчета подписей 'token' => 'Bearer myToken', 'signSecretKey' => 'mySignSecretKey', ]); Intellectmoney::SetScheduledOperationData([ // Параметры метода 'userToken' => $userToken, 'operation' => null, 'objectId' => 3496318551, 'objectTypeVal' => 1, 'paramsJson' => '{ "Amount": 10 }', 'repeatPlan' => '{ "StartAt": "2025-01-01T12:00:00+00:00", "PeriodLength": 1, "PeriodType": "Day" }', 'retryOnFailPlan' => '{ "PeriodLength": 5, "PeriodType": "Minute" }', 'retryOnFailCount' => 3, 'isSingle' => 0, 'fireOnSkip' => 1, 'state' => 0, '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'; // Расчет подписи для заголовка авторизации 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; } } ?> |