Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Операции привязывается к исходному счету, который должен быть оплачен или захолдирован. В уведомление об оплате исходного счета, должен бытьпараметр recurringState = Activate (рекуррентные платежи активированы).

Создание операции по расписанию через API

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

Code Block
languagephp
titleПример создания операции по расписанию
linenumberstrue
collapsetrue
<?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;
	}
}

?>

Создание операции по расписанию через личный кабинет IntellectMoney

  1. Переходим в раздел Подписки.
  2. Нажимаем Добавить.
  3. Указываем номер исходного СКО в поле Исходный счет, или при помощи поиска(Image Added) выбираем один из доступных.
  4. Далее заполняем оставшиеся данные (сумма, план выполнения).

Image Added

Image Added

Описание

Multiexcerpt include
MultiExcerptNamesetScheduledOperationDescription
PageWithExcerptPersonal API

Полное описание функционала смотрите в Personal API пункт SetScheduledOperation()-Редактирование операций по расписанию.

Пример на языке программирования PHP

Multiexcerpt include
MultiExcerptNamesetScheduledOperationExample
PageWithExcerptPersonal API

Результатом выполнения данного примера станет получение CronOperationId, данное значение нужно передать в параметре Operation для редактирования операции по расписанию.

Вспомогательные функции

Multiexcerpt include
MultiExcerptNamecURLdescription
PageWithExcerptВспомогательные функции для взаимодействия с API системы IntellectMoney

Multiexcerpt include
MultiExcerptNamecurlRequestDescription
PageWithExcerptВспомогательные функции для взаимодействия с API системы IntellectMoney

Multiexcerpt includeMultiExcerptNamegetTokenExamplePageWithExcerptPersonal API