Редактирование операции по расписанию через API запроса

Для редактирования операции по расписанию через API используется метод setScheduleOperation() из Personal API.

Здесь в отличие от создания операции дополнительно передается operation, для указания редактируемой операции.

Пример редактирования операции по расписанию
<?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' => 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' => 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';
		
		// Расчет подписи для заголовка авторизации 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

  1. Перходим в раздел Подписки.
  2. Выбираем желаемую операцию.
  3. В окне операции нажимаем Изменить подписку.
  4. Изменяем параметры и сохраняем операцию.

  • No labels