<?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;
}
}
?>