Versions Compared

Key

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

...

Отправка API запроса

Параметры , передаваемые в форме выставления счета запросе, описаны в документации протокола IntellectMoney: Протокол приема платежей Intellectmoney.

Обязательными параметрами являются:

  • eshopId - номер магазина в системе IntellectMoney
  • recipientAmount - Сумма платежа - любая сумма больше 10 рублей
  • recipientCurrency - Валюта платежа - указываем RUB
  • orderId - номер заказа/покупки в системе интернет-магазина
  • hash - контрольная подпись, правила формирования описаны тут.
  • recurringType - Тип операции рекарринга принимает одно значение - "Activate"
  • serviceName - описание покупки в системе интернет-магазина

Важный параметр:

  • user_email - email плательщика, если данный параметр не передан или передан не корректно, платежная система предложит покупателю ввести email.

Пример создания формы

Начальные параметры:

Multiexcerpt include
MultiExcerptNamebase_params
PageWithExcerptПримеры

В примере используется сочетание языка программирования - PHP и языка разметки - HTML

Merchant 2.0 API.

Code Block
<?php 

Intellectmoney::CreateInvoice([	
	// Параметры метода
	'eshopId' => 456093,
	'orderId' => 1,
	'serviceName' => null,
	'recipientAmount' => '10.00',
	'recipientCurrency' => 'RUB',
	'userName' => null,
	'email' => 'test@mail.ru',
	'successUrl' => null,
	'failUrl' => null,
	'backUrl' => null,
	'resultUrl' => null,
	'expireDate' => null,
	'holdMode' => null,
	'preference' => null,
	'recurringType' => 'Activate',
	
	// Данные для авторизации API запросов и расчета подписей
	'token' => 'Bearer myToken',
	'signSecretKey' => 'mySignSecretKey',
	'eshopSecretKey' => 'mySecretKey',
]);

class IntellectMoney 
{	
	// Создание счета для операций по расписанию
	public static function CreateInvoice($params) {
		// URL запроса
		$url = 'https://api.intellectmoney.ru/merchant/createInvoice';
		
		// Расчет подписи для заголовка авторизации API запросов, sign (SHA256)
		$signSignature = [
			$params['eshopId'], 
			$params['orderId'], 
			$params['serviceName'], 
			$params['recipientAmount'], 
			$params['recipientCurrency'], 
			$params['userName'], 
			$params['email'],
			$params['successUrl'],
			$params['failUrl'],
			$params['backUrl'],
			$params['resultUrl'],
			$params['expireDate'],
			$params['holdMode'],
			$params['preference'],
			$params['signSecretKey'],
		];         
		$signHash = hash('sha256', implode('::', $signSignature)); 
		
		// Заголовки запроса
		$headers = [			
			'Authorization: '.$params['token'],
			'Sign: '.$signHash,
		];
		
		// Расчет подписи для переданных данных из счёта, purchaseHash (MD5)
		$purchaseHashSignature = [
			$params['eshopId'], 
			$params['orderId'], 
			$params['serviceName'], 
			$params['recipientAmount'], 
			$params['recipientCurrency'], 
			$params['recurringType'],
			$params['eshopSecretKey'],
		]; 
		$purchaseHash = md5(implode('::', $purchaseHashSignature));
		
		// Расчет подписи для преданных данных, hash (MD5)
		$hashSignature = [
			$params['eshopId'], 
			$params['orderId'], 
			$params['serviceName'], 
			$params['recipientAmount'], 
			$params['recipientCurrency'], 
			$params['userName'], 
			$params['email'],
			$params['successUrl'],
			$params['failUrl'],
			$params['backUrl'],
			$params['resultUrl'],
			$params['expireDate'],
			$params['holdMode'],
			$params['preference'],
			$params['eshopSecretKey'],
		]; 
		$hash = md5(implode('::', $hashSignature));
		
		// Данные (тело) запроса
		$data = [			 
			'eshopId' => $params['eshopId'], 
			'orderId' => $params['orderId'], 
			'serviceName' => $params['serviceName'], 
			'recipientAmount' => $params['recipientAmount'], 
			'recipientCurrency' => $params['recipientCurrency'], 
			'userName' => $params['userName'], 
			'email' => $params['email'], 
			'successUrl' => $params['successUrl'], 
			'failUrl' => $params['failUrl'], 
			'backUrl' => $params['backUrl'], 
			'resultUrl' => $params['resultUrl'], 
			'expireDate' => $params['expireDate'], 
			'holdMode' => $params['holdMode'], 
			'preference' => $params['preference'], 
			'recurringType' => $params['recurringType'], 
			'purchaseHash' => $purchaseHash, 
			'hash' => $hash, 
		];
		
		// Выполняем запрос
		$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.

Code Block
<?php
    $eshopId = "456093
Code Block
<?php
    $eshopId = "456093";
    $recipientAmount=10.00;
    $recipientCurrency = "RUB";
    $orderId = 1; 
    $serviceName = 'Оплата заказа 1';
    $secretKey 
	$recipientAmount = 'mySecretKey'10.00;
    $recurringType$recipientCurrency = "ActivateRUB";
    $email = "test@mail.ru"; 
	$recurringType = "Activate";
  
  $secretKey = 'mySecretKey'; 

	$hash_str = $eshopId."::".$orderId."::".$serviceName."::".$recipientAmount."::".$recipientCurrency."::".$recurringType."::".$secretKey;
    $hash = md5($hash_str);
?>

<form action='https://merchant.intellectmoney.ru/ru/' enctype="application/x-www-form-urlencoded">
    <input id='eshopId' type='hidden' value='<?=$eshopId?>' name='eshopId'/>
    <input id='orderId' type='hidden' value='<?=$orderId?>' name='orderId'/>
    <input id='serviceName' type='hidden' value='<?=$serviceName?>' name='serviceName'/>
    <input id='recipientAmount' type='hidden' value='<?=$recipientAmount?>' name='recipientAmount'/>
    <input type='hidden' value='<?=$recipientCurrency?>' name='recipientCurrency'/>
    <input id='user_email' type='hidden' value='<?=$email?>' name='email'/>
    <input id='recurringType' type='hidden' value='<?=$recurringType?>' name='recurringType'/>
    <input type='hidden' name='hash' value="<?=$hash?>" />
    <input type=submit value='createInvoce' /><br/>
</form>

Дополнительная информация

В ручную, через личный кабинет IntellectMoney

  • Переходим в раздел "Прием платежей".

Image Added


  • Выбираем "Выставление счета на email".

Image Added


  • Выбираем магазин и заполняем данные.
  • Нажимаем "Расширенные опции" и активируем опцию "Инициировать рекарринг".

Image Added

Image Added


  • Нажимаем "Выставить счет" и в ссылке всплывающего окна будет указан номер счета.

Image AddedИнформацию о примерах можно посмотреть тут: Примеры