...
Отправка API запроса
Параметры , передаваемые в форме выставления счета запросе, описаны в документации протокола IntellectMoney: Протокол приема платежей Intellectmoney.
Обязательными параметрами являются:
- eshopId - номер магазина в системе IntellectMoney
- recipientAmount - Сумма платежа - любая сумма больше 10 рублей
- recipientCurrency - Валюта платежа - указываем RUB
- orderId - номер заказа/покупки в системе интернет-магазина
- hash - контрольная подпись, правила формирования описаны тут.
- recurringType - Тип операции рекарринга принимает одно значение - "Activate"
- serviceName - описание покупки в системе интернет-магазина
Важный параметр:
- user_email - email плательщика, если данный параметр не передан или передан не корректно, платежная система предложит покупателю ввести email.
Пример создания формы
Начальные параметры:
Multiexcerpt include | ||||
---|---|---|---|---|
|
В примере используется сочетание языка программирования - PHP и языка разметки - HTML
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
- Переходим в раздел "Прием платежей".
- Выбираем "Выставление счета на email".
- Выбираем магазин и заполняем данные.
- Нажимаем "Расширенные опции" и активируем опцию "Инициировать рекарринг".
- Нажимаем "Выставить счет" и в ссылке всплывающего окна будет указан номер счета.
Информацию о примерах можно посмотреть тут: Примеры