Section |
---|
Column |
---|
|
Info |
---|
Эта статья - вступление в работу с API IntellectMoney. Информацию по всему доступному функционалу можно найти в последующих статьях раздела Методы API.
Без запроса доступа к API можно использовать методы из этой статьи с валютой TST. Чтобы начать пользоваться всем доступным функционалом, после заключения договора запросите доступ к API. Подробнее здесь. |
Для вызова методов API нужно придумать и задать свой секретный ключ в настройках магазина, на вкладке "Подключение магазина". Также, |
|
...
после заключения договора, нужно получить Bearer токен с доп. ключом на странице Безопасность, они понадобятся для авторизации: Image Added Уровень PCI DSS нужен для методов API, в которых передаются карточные данные, например для метода BankCardPayment До заключения договора можно использовать валюту TST, она не требует авторизации (для нее не обязательно передавать заголовки Authorization и Sign) . |
|
...
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | HTTP Заголовок Sign |
---|
|
В заголовке Sign нужно передать хеш, сформированный из остальных параметров. Хеш формируется по шаблону, которой уникален для каждого метода. Для примера, вот шаблон из метода CreateInvoice : Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
| eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey |
В нем signSecretKey - секретный ключ, полученный вместе с Bearer токеном на странице https://lk.intellectmoney.ru/profile/security/api (можно получить после заключения договора), остальное - параметры передаваемые в метод. Скажем, что вы вызываете метод CreateInvoice со следующими параметрами: Code Block |
---|
language | text |
---|
title | Параметры |
---|
| eshopId: 462539
orderId: myorder
recipientAmount: 10.00
recipientCurrency: RUB
email: e@e.ru |
Для рассчета хеша нужно: Заменить имена параметров в шаблоне их значениями, и подставить секретный ключ вместо signSecretKey . Получаем строку: Code Block |
---|
| 462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::21baff51c1a342f3ac059e61e0894583 |
Эту строку нужно закодировать в UTF-8 и посчитать от нее хеш SHA256. Получаем хеш: Code Block |
---|
| 1c4e379396faee212c676d500ee12a21354d8f68b1acbc40b64065cd7dcd50fa |
Полученный хеш записываем в заголовок Sign . |
...
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | HTTP заголовок Authorization |
---|
|
В заголовке Authorization нужно передать Bearer токен в формате Bearer 92022dd8245a56d8a73446b43ebb3590 . Bearer token (вместе с секретным ключом) можно запросить в личном кабинете после заключения договора. |
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | Параметр hash |
---|
|
У каждого метода API имеется параметр hash . Чтобы рассчитать этот хеш, нужно использовать шаблон, уникальный для каждого метода. К примеру, вот шаблон из метода CreateInvoice : Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
| eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey |
Здесь secretKey - ключ, заданный в личном кабинете в настройках магазина. Это ключ, как и весь шаблон, не связаны с ключем и шаблоном из заголовка Sign . Возьмем такие параметры для примера: Code Block |
---|
language | text |
---|
title | Параметры |
---|
| eshopId: 462539
orderId: myorder
recipientAmount: 10.00
recipientCurrency: RUB
email: e@e.ru |
Для расчета параметра hash нужно: Заменить имя каждого параметра его значением, и подставить секретный ключ вашего магазина вместо secretKey : Code Block |
---|
| 462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::my_very_secret_key |
Закодировать полученную строку в UTF-8 и расчитать её MD5 хеш: Code Block |
---|
| 7a97ff0cda3d7593c1a69a04d0a78a13 |
Полученный хеш нужно передать в параметре hash . |
Sectionmultiexcerpt |
---|
column | width | 60% | CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ
POST https://api.intellectmoney.ru/merchant/createInvoiceMultiExcerptName | Заголовки Merchant 2.0 API |
---|
|
Заголовки: шаблону ниже>шаблону> Expand |
---|
title | Формирование заголовка Sign |
---|
| Multiexcerpt include |
---|
MultiExcerptName | HTTP Заголовок Sign |
---|
addpanel | true |
---|
PageWithExcerpt | API: Быстрый старт |
---|
|
|
- Content-Type:
application/json или application/x-www-form-urlencoded - Accept:
application/json или application/xml
|
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | Возможные значения Currency |
---|
|
Expand |
---|
Code Block |
---|
language | text |
---|
| Шаблон формирования заголовка Sign | eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey | Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
| eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey |
Column |
---|
|
Section |
---|
Column |
---|
|
Имя параметра | Описание |
---|
eshopId Обязательный | ID магазина |
orderId Обязательный | Уникальный идентификатор покупки из вашей системы. до 50 символов |
recipientAmount Обязательный | Сумма платежа, разделенная точкой. Минимальное значение - 10.00 . До 13 символов, до 2 цифр после точки. |
recipientCurrency Обязательный | Валюта платежа. Допустимые значения - TST (тестовая валюта) - RUB - USD - EUR |
email Обязательный | E-mail покупателя. До 100 символов. |
hash Обязательный | Контрольная подпись запроса
Expand |
---|
title | Формирование подписи запроса |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
serviceName | Назначение платежа - описание товара или услуги. До 1024 символов. |
userName | Имя покупателя, До 255 символов. |
successUrl | Адрес, на который происходит перенаправление плательщика с платежной страницы после успешной оплаты До 512 символов. |
failUrl | Адрес, на который происходит перенаправление плательщика с платежной страницы в случае неуспешной оплаты До 512 символов. |
backUrl | Адрес ссылки "Вернуться в магазин" на платежной странице До 512 символов. |
resultUrl | Адрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния cчёта До 512 символов. |
expireDate | Срок существования счёта - дата и время, по достижению которых оплатить счёт станет невозможно. Формат: yyyy-MM-dd HH:mm:ss . |
preference | Возможные способы оплаты счёта. Если не передавать, счет можно будет оплатить любым из подключенных способов. Допустимые значения - BankCard - YandexPay - Sbp Можно перечислить несколько значений через запятую, например "BankCard,YandexPay,Sbp". |
В этой таблице опущена часть параметров, например параметры связанные с холдированием, онлайн кассой, и рекаррингом. См. полный список параметров здесь: СЮДА НАДО ССЫЛКУ НА Merchant API
Column |
---|
Tip |
---|
icon | false |
---|
title | Пример запроса |
---|
|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
|
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2 |
Code Block |
---|
|
{
"eshopId": "465932",
"orderId": "a072334a33c0428d8a447072a779ddf0",
"recipientAmount": "15.00",
"recipientCurrency": "TST",
"email": "e.mozgovoy+1@intellectmoney.ru",
"hash": "9b37951051c0ef86f837d1ed5a0780f6"
} |
Tip |
---|
icon | false |
---|
title | Пример ответа |
---|
|
Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json
Code Block |
---|
|
{
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"State": {
"Code": 0,
"Desc": "Успешно обработан"
},
"InvoiceId": 3227169792,
"PaymentWays": [
{
"Id": 132,
"Amount": {
"Amount": 15.0000,
"Currency": "TST"
},
"InputType": "TestAcquiring",
"Preference": "BankCard",
"PreferenceTypes": [
"All",
"Popular",
"Online",
"NonComission",
"Flash"
],
"ServiceTimeOfEnrollmentType": "Flash",
"Commission": 0.0,
"IsVisible": true,
"IsActive": true,
"Position": 110
}
]
}
} |
...
GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖА
POST https://api.intellectmoney.ru/merchant/getbankcardpaymentstate
Заголовки:
Authorization: Bearer <ваш токен>
Expand |
---|
title | Формирование заголовка Authorization |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | HTTP заголовок Authorization |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
Sign: <хеш рассчитанный по шаблону ниже>
Expand |
---|
title | Формирование заголовка Sign |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | HTTP Заголовок Sign |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
...
Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
|
eshopId::invoiceId::signSecretKey |
Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
|
eshopId::invoiceId::secretKey |
| TST (тестовая валюта)RUB USD EUR
|
|
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | Возможные значения OperationState.Code |
---|
|
|
Multiexcerpt |
---|
hidden | true |
---|
MultiExcerptName | Возможные значения Result.State.Code |
---|
|
Expand |
---|
|
0 | Успех | 1 | Успех с предупреждениями | любое другое значение | Ошибка |
|
|
Section |
---|
Column |
---|
| CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ Multiexcerpt include |
---|
MultiExcerptName | Заголовки Merchant 2.0 API |
---|
PageWithExcerpt | API: Быстрый старт |
---|
|
Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
| eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey |
Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
| eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey |
ЗапросИмя параметра | Описание |
---|
eshopId Обязательный | ID магазина | orderId Обязательный | Уникальный идентификатор покупки из вашей системы. до 50 символов | recipientAmount Обязательный | Сумма платежа, разделенная точкой. Минимальное значение - 10.00 . До 13 символов, до 2 цифр после точки. | recipientCurrency Обязательный | Валюта платежа.
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения Currency |
---|
PageWithExcerpt | API: Быстрый старт |
---|
|
| email Обязательный | E-mail покупателя. До 100 символов. | hash Обязательный | Контрольная подпись запроса Expand |
---|
title | Формирование подписи запроса |
---|
| Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | API: Быстрый старт |
---|
|
|
| serviceName | Назначение платежа - описание товара или услуги. До 1024 символов. | userName | Имя покупателя До 255 символов. | successUrl | Адрес, на который происходит перенаправление плательщика с платежной страницы после успешной оплаты До 512 символов. | failUrl | Адрес, на который происходит перенаправление плательщика с платежной страницы в случае неуспешной оплаты До 512 символов. | backUrl | Адрес ссылки "Вернуться в магазин" на платежной странице До 512 символов. | resultUrl | Адрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния cчёта До 512 символов. | preference | Возможные способы оплаты счёта. Если не передавать, счет можно будет оплатить любым из подключенных способов. Expand |
---|
| Можно перечислить несколько значений через запятую, например BankCard,YandexPay,Sbp |
| holdMode | Сразу списывать средства с карты, или холдировать (замораживать) Expand |
---|
| 1 - включить холдирование0 - отключить холдированияnull /не передан - использовать настройки холдирования магазина
|
| expireDate Обязательный при holdMode = 1 | Срок существования счёта - дата и время, по достижению которых оплатить счёт станет невозможно. Формат: yyyy-MM-dd HH:mm:ss . | holdTime Обязательный при holdMode = 1 | Время, через которое захолдированные средства будут автоматически зачислены на счёт магазина или возвращены покупателю, измеряется в часах. Целое число от 1 до 119 часов |
В этой таблице опущена часть параметров, например параметры связанные с онлайн кассой и рекаррингом. См. полный список параметров в описании Merchant 2.0 API. ОтветOperationState Code - Статус предвалидации запроса
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения OperationState.Code |
---|
PageWithExcerpt | @self |
---|
|
Desc - Описание статуса предвалидации запроса
EshopId - ID магазина, в котором выставляется счётResult State Code - Результат выполнения запроса
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения Result.State.Code |
---|
PageWithExcerpt | @self |
---|
|
Desc - Описание результата выполнения запроса
InvoiceId - Номер созданного счётаPaymentWays - Список возможных способов оплатыId - ID способа оплатыAmount Amount - Сумма оплатыCurrency - Валюта оплаты
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения Currency |
---|
PageWithExcerpt | @self |
---|
|
InputType - Тип способа оплатыPreference - Название способа оплатыCommission - КомиссияIsVisible - Будет ли этот способ оплаты отображаться на платежной страницеIsActive - Доступен ли этот способ оплатыPosition - Положение в списке относительно остальных способов
|
Column |
---|
Tip |
---|
icon | false |
---|
title | Пример запроса |
---|
|
Localtab Group |
---|
Localtab |
---|
active | true |
---|
title | Сырое тело |
---|
|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
| Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2 |
Code Block |
---|
| {
"eshopId": "465932",
"orderId": "a072334a33c0428d8a447072a779ddf0",
"recipientAmount": "15.00",
"recipientCurrency": "TST",
"email": "e.mozgovoy+1@intellectmoney.ru",
"hash": "9b37951051c0ef86f837d1ed5a0780f6"
} |
|
Localtab |
---|
|
Code Block |
---|
language | php |
---|
title | Пример PHP с библиотекой IM |
---|
| // Используется библиотека https://github.com/IntellectMoney/intellectmoney-sdk-php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use IntellectMoney\SDK\MerchantApiClient;
use IntellectMoney\SDK\Structs\Common\AuthData;
use IntellectMoney\SDK\Structs\Request\CreateInvoiceDataModel;
use IntellectMoney\SDK\Structs\Common\Money;
$dataModel = new CreateInvoiceDataModel([
"eshopId" => "465932",
"orderId" => "fdsfdsfsd",
"recipientAmount" => new Money(10),
"email" => "e.mozgovoy+1@intellectmoney.ru"
]);
$authData = new AuthData("your_eshop_secret_key");
$result = MerchantApiClient::createInvoice($dataModel, $authData);
echo "<pre>";
var_dump($result); |
|
Localtab |
---|
|
Code Block |
---|
| #!/bin/bash
# Ключи
bearer_token="d41d8cd98f00b204e9800998ecf8427e"
sign_secret_key="1d5dde3821c0acfd4e3c748de9aaea5c"
eshop_secret_key="123456"
# Параметры запроса
eshop_id="465932"
order_id="order_$(date +%s | sha1sum | head -c 8)"
recipient_amount="10.00"
recipient_currency="TST"
email="e.mozgovoy+1@intellectmoney.ru"
service_name=""
user_name=""
success_url=""
fail_url=""
back_url=""
result_url=""
preference=""
hold_mode=""
expire_date=""
hold_time=""
# Генерируем хеш для заголовка Sign
sign_hash_string="${eshop_id}::${order_id}::${service_name}::${recipient_amount}::${recipient_currency}::${user_name}::${email}::${success_url}::${fail_url}::${back_url}::${result_url}::${expire_date}::${hold_mode}::${preference}::${sign_secret_key}"
sign_hash=$(echo -n "$sign_hash_string" | sha256sum | awk '{print $1}')
# Генерируем хеш для параметра hash
hash_string="${eshop_id}::${order_id}::${service_name}::${recipient_amount}::${recipient_currency}::${user_name}::${email}::${success_url}::${fail_url}::${back_url}::${result_url}::${expire_date}::${hold_mode}::${preference}::${eshop_secret_key}"
hash=$(echo -n "$hash_string" | md5sum | awk '{print $1}')
response=$(curl -X POST \
-H "Authorization: Bearer ${bearer_token}" \
-H "Sign: ${sign_hash}" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "eshopId=${eshop_id}" \
--data-urlencode "orderId=${order_id}" \
--data-urlencode "recipientAmount=${recipient_amount}" \
--data-urlencode "recipientCurrency=${recipient_currency}" \
--data-urlencode "email=${email}" \
--data-urlencode "hash=${hash}" \
--data-urlencode "serviceName=${service_name}" \
--data-urlencode "userName=${user_name}" \
--data-urlencode "successUrl=${success_url}" \
--data-urlencode "failUrl=${fail_url}" \
--data-urlencode "backUrl=${back_url}" \
--data-urlencode "resultUrl=${result_url}" \
--data-urlencode "preference=${preference}" \
--data-urlencode "holdMode=${hold_mode}" \
--data-urlencode "expireDate=${expire_date}" \
--data-urlencode "holdTime=${hold_time}" \
https://api.intellectmoney.ru/merchant/createInvoice)
echo "Response: $response" |
|
|
|
Tip |
---|
icon | false |
---|
title | Пример ответа |
---|
| Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json Code Block |
---|
| {
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"State": {
"Code": 0,
"Desc": "Успешно обработан"
},
"InvoiceId": 3227169792,
"PaymentWays": [
{
"Id": 132,
"Amount": {
"Amount": 15.0000,
"Currency": "TST"
},
"InputType": "TestAcquiring",
"Preference": "BankCard",
"Commission": 0.0,
"IsVisible": true,
"IsActive": true,
"Position": 110
}
]
}
} |
|
|
|
...
Section |
---|
Column |
---|
| GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖАPOST https://api.intellectmoney.ru/merchant/getbankcardpaymentstate Multiexcerpt include |
---|
MultiExcerptName | Заголовки Merchant 2.0 API |
---|
PageWithExcerpt | @self |
---|
|
Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
| eshopId::invoiceId::signSecretKey |
Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
| eshopId::invoiceId::secretKey |
ЗапросИмя параметра | Описание |
---|
eshopId Обязательный | ID магазина, в котором был выставлен счёт | invoiceId Обязательный | Номер счёта | hash Обязательный | Контрольная подпись запроса Expand |
---|
title | Формирование подписи запроса |
---|
| Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | @self |
---|
|
|
|
ОтветOperationState Code - Статус предвалидации запроса
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения OperationState.Code |
---|
PageWithExcerpt | @self |
---|
|
Desc - Описание статуса предвалидации запроса
EshopId - ID магазина, в котором выставляется счётResult
|
Column |
---|
Tip |
---|
icon | false |
---|
title | Пример запроса |
---|
|
Localtab Group |
---|
Localtab |
---|
active | true |
---|
title | Сырое тело |
---|
|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
| Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70 |
Code Block |
---|
| {
"eshopId": "465932",
"invoiceId": "3227169792",
"hash": "815ec9d288bd6926bc37304cde7db05e"
} |
|
Localtab |
---|
|
Code Block |
---|
language | php |
---|
title | Пример PHP с библиотекой IM |
---|
| // Используется библиотека https://github.com/IntellectMoney/intellectmoney-sdk-php <?php
require_once __DIR__ . '/../vendor/autoload.php';
use IntellectMoney\SDK\MerchantApiClient;
use IntellectMoney\SDK\Structs\Common\AuthData;
use IntellectMoney\SDK\Structs\Request\CheckInvoiceDataModel;
$dataModel = new CheckInvoiceDataModel([
"eshopId" => "465932",
"invoiceId" => "3168498287"
]);
$authData = new AuthData("your_eshop_secret_key");
$result = MerchantApiClient::getBankCardPaymentState($dataModel, $authData);
echo "<pre>";
var_dump($result); |
|
Localtab |
---|
|
Code Block |
---|
| #!/bin/bash
# Ключи
bearer_token="d41d8cd98f00b204e9800998ecf8427e"
sign_secret_key="1d5dde3821c0acfd4e3c748de9aaea5c"
eshop_secret_key="123456"
# Параметры запроса
eshop_id="465932"
invoice_id="3168498287"
# Генерируем хеш для заголовка Sign
sign_hash_string="${eshop_id}::${invoice_id}::${sign_secret_key}"
sign_hash=$(echo -n "$sign_hash_string" | sha256sum | awk '{print $1}')
# Генерируем хеш для параметра hash
hash_string="${eshop_id}::${invoice_id}::${eshop_secret_key}"
hash=$(echo -n "$hash_string" | md5sum | awk '{print $1}')
response=$(curl -X POST \
-H "Authorization: Bearer ${bearer_token}" \
-H "Sign: ${sign_hash}" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "eshopId=${eshop_id}" \
--data-urlencode "invoiceId=${invoice_id}" \
--data-urlencode "hash=${hash}" \
https://api.intellectmoney.ru/merchant/getbankcardpaymentstate)
echo "Response: $response" |
|
|
|
Tip |
---|
icon | false |
---|
title | Пример ответа |
---|
| Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json Code Block |
---|
| {
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"PaymentStep": "InProcess",
"State": {
"Code": 0,
"Desc": "Успешно обработан"
}
}
} |
|
|
|
...
Параметры
...
Контрольная подпись запроса
Expand |
---|
title | Формирование подписи запроса |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
...
icon | false |
---|
title | Пример запроса |
---|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
|
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70 |
Code Block |
---|
|
{
"eshopId": "465932",
"invoiceId": "3227169792",
"hash": "815ec9d288bd6926bc37304cde7db05e"
} |
Пример ответа
Чтобы получить ответ в формате JSON, нужно добавить в запрос заголовок Accept: application/json
{
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"PaymentStep": "InProcess",
"State": {
"Code": 0,
"Desc": "Успешно обработан"
}
}
}
...
BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙ
POST https://api.intellectmoney.ru/merchant/bankcardpayment
Заголовки:
Authorization: Bearer <ваш токен>
Expand |
---|
title | Формирование заголовка Authorization |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | HTTP заголовок Authorization |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
Sign: <хеш рассчитанный по шаблону ниже>
Expand |
---|
title | Формирование заголовка Sign |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | HTTP Заголовок Sign |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
...
Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
|
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey |
Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
|
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::secretKey |
Используется для передачи реквизитов банковской карты и дальнейшей оплаты счета.
Для использования этого метода у вашей организации должна быть сертификация PCI DSS. Если у вас её нет, то оплату можно реализовать перенаправлением покупателя на нашу платежную страницу, либо внедрением нашего платежного виджета на сайт.
...
Параметры
...
Контрольная подпись запроса
Expand |
---|
title | Формирование подписи запроса |
---|
|
Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | Быстрый старт |
---|
|
|
...
icon | false |
---|
title | Пример запроса |
---|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
|
Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b |
Code Block |
---|
|
{
"eshopId": "465932",
"invoiceId": "3227169792",
"ipAddress": "1.1.1.1",
"returnUrl": "https://example.com",
"cardHolder": "NAME SURNAME",
"pan": "4111111111111111",
"cvv": "123",
"expiredYear": "29",
"expiredMonth": "02",
"hash": "46cc4a126da424cd1495eeccd791cb71"
} |
Пример ответа
Чтобы получить ответ в формате JSON, нужно добавить в запрос заголовок Accept: application/json
Section |
---|
Anchor |
---|
| BankCardPaymentApiMethod |
---|
| BankCardPaymentApiMethod |
---|
|
Column |
---|
| BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙPOST https://api.intellectmoney.ru/merchant/bankcardpayment Multiexcerpt include |
---|
MultiExcerptName | Заголовки Merchant 2.0 API |
---|
PageWithExcerpt | @self |
---|
|
Code Block |
---|
language | text |
---|
title | Шаблон формирования заголовка Sign |
---|
| eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey |
Code Block |
---|
language | text |
---|
title | Шаблон формирования параметра hash |
---|
| eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::secretKey |
Используется для передачи реквизитов банковской карты и дальнейшей оплаты счета. Для использования этого метода у вашей организации должна быть сертификация PCI DSS. Если у вас её нет, то оплату можно реализовать перенаправлением покупателя на нашу платежную страницу, либо внедрением нашего платежного виджета на сайт. ЗапросИмя параметра | Описание |
---|
eshopId Обязательный | ID магазина, где был выставлен счёт | invoiceId Обязательный | Номер счёта к оплате | ipAddress Обязательный | IP адрес сайта, с которого выставляется платеж. | returnUrl Обязательный | Адрес, на который перенаправляет плательщика после завершения 3DS. | cardHolder | Имя и фамилия с карты | pan Обязательный | Номер карты плательщика | cvv Обязательный для карт имеющих CVV2 (CVC2) | Секретный код CVV2 (CVC2), как правило написан на обороте карты (последние три цифры на полосе для подписи). Параметр не нужно передавать, если карта не имеет кода. | expiredYear Обязательный | Год, до которого действует карта | expiredMonth Обязательный | Месяц, до которого действует карта | hash Обязательный | Контрольная подпись запроса Expand |
---|
title | Формирование подписи запроса |
---|
| Multiexcerpt include |
---|
MultiExcerptName | Параметр hash |
---|
addpanel | true |
---|
PageWithExcerpt | @self |
---|
|
|
|
ОтветOperationState Code - Статус предвалидации запроса
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения OperationState.Code |
---|
PageWithExcerpt | @self |
---|
|
Desc - Описание статуса предвалидации запроса
EshopId - ID магазина, в котором выставляется счётResult State Code - Результат выполнения запроса
Multiexcerpt include |
---|
MultiExcerptName | Возможные значения Result.State.Code |
---|
PageWithExcerpt | @self |
---|
|
Desc - Описание результата выполнения запроса
|
Column |
---|
Tip |
---|
icon | false |
---|
title | Пример запроса |
---|
|
Localtab Group |
---|
Localtab |
---|
active | true |
---|
title | Сырое тело |
---|
|
Code Block |
---|
language | text |
---|
title | Заголовки |
---|
| Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b |
Code Block |
---|
| {
"eshopId": "465932",
"invoiceId": "3227169792",
"ipAddress": "1.1.1.1",
"returnUrl": "https://example.com",
"cardHolder": "NAME SURNAME",
"pan": "4111111111111111",
"cvv": "123",
"expiredYear": "29",
"expiredMonth": "02",
"hash": "46cc4a126da424cd1495eeccd791cb71"
} |
|
Localtab |
---|
|
Code Block |
---|
language | php |
---|
title | Пример PHP с библиотекой IM |
---|
| // Используется библиотека https://github.com/IntellectMoney/intellectmoney-sdk-php <?php
require_once __DIR__ . '/../vendor/autoload.php';
use IntellectMoney\SDK\MerchantApiClient;
use IntellectMoney\SDK\Structs\Common\AuthData;
use IntellectMoney\SDK\Structs\Request\PayInvoiceBankCardDataModel;
$dataModel = new PayInvoiceBankCardDataModel([
"eshopId" => "465932",
"invoiceId" => "3227169792",
"ipAddress" => "1.1.1.1",
"returnUrl" => "https://example.com",
"cardHolder" => "NAME SURNAME",
"pan" => "4111111111111111",
"cvv" => "123",
"expiredYear" => "29",
"expiredMonth" => "02"
]);
$authData = new AuthData("your_eshop_secret_key");
$result = MerchantApiClient::bankCardPayment($dataModel, $authData);
echo "<pre>";
var_dump($result); |
|
Localtab |
---|
|
Code Block |
---|
| #!/bin/bash
# Ключи
bearer_token="d41d8cd98f00b204e9800998ecf8427e"
sign_secret_key="1d5dde3821c0acfd4e3c748de9aaea5c"
eshop_secret_key="123456"
# Параметры запроса
eshop_id="465932"
invoice_id="3227169792"
ip_address="1.1.1.1"
return_url="https://example.com"
card_holder="NAME SURNAME"
pan="4111111111111111"
cvv="123"
expired_year="29"
expired_month="02"
# Генерируем хеш для заголовка Sign
sign_hash_string="${eshop_id}::${invoice_id}::${pan}::${card_holder}::${expired_month}::${expired_year}::${cvv}::${return_url}::${ip_address}::${sign_secret_key}"
sign_hash=$(echo -n "$sign_hash_string" | sha256sum | awk '{print $1}')
# Генерируем хеш для параметра hash
hash_string="${eshop_id}::${invoice_id}::${pan}::${card_holder}::${expired_month}::${expired_year}::${cvv}::${return_url}::${ip_address}::${eshop_secret_key}"
hash=$(echo -n "$hash_string" | md5sum | awk '{print $1}')
response=$(curl -X POST \
-H "Authorization: Bearer ${bearer_token}" \
-H "Sign: ${sign_hash}" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "eshopId=${eshop_id}" \
--data-urlencode "invoiceId=${invoice_id}" \
--data-urlencode "ipAddress=${ip_address}" \
--data-urlencode "returnUrl=${return_url}" \
--data-urlencode "cardHolder=${card_holder}" \
--data-urlencode "pan=${pan}" \
--data-urlencode "cvv=${cvv}" \
--data-urlencode "expiredYear=${expired_year}" \
--data-urlencode "expiredMonth=${expired_month}" \
--data-urlencode "hash=${hash}" \
https://api.intellectmoney.ru/merchant/bankcardpayment)
echo "Response: $response" |
|
|
|
Tip |
---|
icon | false |
---|
title | Пример ответа |
---|
| Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json |
|
|
{
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"State": {
"Code": 0,
"Desc": "Успешно обработан"
}
}
} |
|
|
|