Page tree

Versions Compared

Key

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


Section


Column
width60%


Info

Эта статья - вступление в работу с API IntellectMoney. Информацию по всему доступному функционалу можно найти в последующих статьях раздела Методы API

Без запроса доступа к API можно использовать методы из этой статьи с валютой TST. 

Чтобы начать пользоваться всем доступным функционалом, после заключения договора запросите доступ к API. Подробнее здесь.

Для вызова методов API нужно придумать и задать свой секретный ключ в настройках магазина, на вкладке "Подключение магазина". Также, после заключения договора, нужно получить Bearer токен с доп. ключом на странице Безопасность, они понадобятся для авторизации:

Image Added

Уровень PCI DSS нужен для методов API, в которых передаются карточные данные, например для метода BankCardPayment

До заключения договора можно использовать валюту TST, она не требует авторизации (для нее не обязательно передавать заголовки Authorization и Sign).


Column
width40%

Table of Contents



...

Multiexcerpt
hiddentrue
MultiExcerptNameHTTP Заголовок Sign

В заголовке Sign нужно передать хеш, сформированный из остальных параметров. Хеш формируется по шаблону, которой уникален для каждого метода. Для примера, вот шаблон из метода CreateInvoice

Для вызова методов API нужно задать секретный ключ в личном кабинете, настройках магазина, на вкладке "Подключение магазина". Также, для авторизации, нужно получить Bearer токен со вторым секретным ключом на странице Безопасность.

Multiexcerpt
hiddentrue
MultiExcerptNameHTTP Заголовок Sign

HTTP заголовок Sign

В заголовке Sign нужно передать хеш, сформированный из остальных параметров. Хеш формируется по шаблону, которой уникален для каждого метода. Для примера, вот шаблон из метода CreateInvoice:

Code Block
languagetext
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
languagetext
titleПараметры
eshopId: 462539
orderId: myorder
recipientAmount: 10.00
recipientCurrency: RUB
email: e@e.ru

Для рассчета хеша нужно:

Заменить имена параметров в шаблоне их значениями, и подставить секретный ключ вместо signSecretKey. Получаем строку

:

Code Block
languagetext
462539
titleШаблон формирования заголовка Sign
eshopId::
myorder
orderId::serviceName::
10.00
recipientAmount::
RUB
recipientCurrency::userName::
e@e.ru
email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::
21baff51c1a342f3ac059e61e0894583

Эту строку нужно закодировать в UTF-8 и посчитать от нее хеш SHA256. Получаем хеш:

Code Block
languagetext
1c4e379396faee212c676d500ee12a21354d8f68b1acbc40b64065cd7dcd50fa

Полученный хеш записываем в заголовок Sign.

Multiexcerpt
hiddentrue
MultiExcerptNameHTTP заголовок Authorization

HTTP заголовок Authorization

В заголовке Authorization нужно передать Bearer токен в формате Bearer 92022dd8245a56d8a73446b43ebb3590. Bearer token (вместе с секретным ключом) можно запросить в личном кабинете.

signSecretKey

В нем signSecretKey - секретный ключ, полученный вместе с Bearer токеном на странице https://lk.intellectmoney.ru/profile/security/api (можно получить после заключения договора), остальное - параметры передаваемые в метод.

Скажем, что вы вызываете метод CreateInvoice со следующими параметрами:

Code Block
Multiexcerpt
hiddentrue
MultiExcerptNameПараметр hash

Параметр hash

У каждого метода API имеется параметр hash. Чтобы рассчитать этот хеш, нужно использовать шаблон, уникальный для каждого метода. К примеру, вот шаблон из метода CreateInvoice:

Code Block
languagetext
titleШаблон формирования параметра hashПараметры
eshopId:: 462539
orderId::serviceName:: myorder
recipientAmount:: 10.00
recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey

Здесь secretKey - ключ, заданный в личном кабинете в настройках магазина. Это ключ, как и весь шаблон, не связаны с ключем и шаблоном из заголовка Sign.

Возьмем такие параметры для примера
 RUB
email: e@e.ru

Для рассчета хеша нужно:

  1. Заменить имена параметров в шаблоне их значениями, и подставить секретный ключ вместо signSecretKey. Получаем строку:

    Code Block
    languagetext
    462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::21baff51c1a342f3ac059e61e0894583


  2. Эту строку нужно закодировать в UTF-8 и посчитать от нее хеш SHA256. Получаем хеш:

    Code Block
    languagetext
  1. 1c4e379396faee212c676d500ee12a21354d8f68b1acbc40b64065cd7dcd50fa


Полученный хеш записываем в заголовок Sign.


Multiexcerpt
hiddentrue
MultiExcerptNameHTTP заголовок Authorization

В заголовке Authorization нужно передать Bearer токен в формате Bearer 92022dd8245a56d8a73446b43ebb3590. Bearer token (вместе с секретным ключом) можно запросить в личном кабинете после заключения договора.


Для расчета параметра hash нужно:

Заменить имя каждого параметра его значением, и подставить секретный ключ вашего магазина вместо secretKey

:

Multiexcerpt
hiddentrue
MultiExcerptNameПараметр hash

У каждого метода API имеется параметр hash. Чтобы рассчитать этот хеш, нужно использовать шаблон, уникальный для каждого метода. К примеру, вот шаблон из метода CreateInvoice

titleПараметры
eshopId: 462539
orderId: myorder
recipientAmount: 10.00
recipientCurrency: RUB
email: e@e.ru
Code Block
languagetext
462539
titleШаблон формирования параметра hash
eshopId::
myorder
orderId::serviceName::
10.00
recipientAmount::
RUB
recipientCurrency::userName::
e@e.ru
email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::
my_very_secret_keyЗакодировать полученную строку в UTF-8 и расчитать её MD5 хеш
secretKey

Здесь secretKey - ключ, заданный в личном кабинете в настройках магазина. Это ключ, как и весь шаблон, не связаны с ключем и шаблоном из заголовка Sign.

Возьмем такие параметры для примера:

Code Block
languagetext
7a97ff0cda3d7593c1a69a04d0a78a13

Полученный хеш нужно передать в параметре hash.

titleПараметры
eshopId: 462539
orderId: myorder
recipientAmount: 10.00
recipientCurrency: RUB
email: e@e.ru

Для расчета параметра hash нужно:

  1. Заменить имя каждого параметра его значением, и подставить секретный ключ вашего магазина вместо secretKey:

    Code Block
    languagetext
    462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::my_very_secret_key


  2. Закодировать полученную строку в UTF-8 и расчитать её MD5 хеш:

    Code Block
    languagetext
    7a97ff0cda3d7593c1a69a04d0a78a13


Полученный хеш нужно передать в параметре hash.


CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ

POST https://api.intellectmoney.ru/merchant/createInvoice

Заголовки:

Authorization: Bearer <ваш токен>

Multiexcerpt
hiddentrue
MultiExcerptNameЗаголовки Merchant 2.0 API

Заголовки:

  • Authorization: Bearer <ваш токен>

    Expand
    titleФормирование заголовка Authorization

    Multiexcerpt include
    MultiExcerptNameHTTP заголовок Authorization
    addpaneltrue
    PageWithExcerptAPI: Быстрый старт


  • Sign: <хеш рассчитанный по шаблону>

Section
Column
width60%
Expand
titleФормирование заголовка Authorization

Multiexcerpt include
MultiExcerptNameHTTP заголовок Authorization
addpaneltrue
PageWithExcerptБыстрый старт

Sign: <хеш рассчитанный по шаблону ниже>
  • Expand
    titleФормирование заголовка Sign

    Multiexcerpt include
    MultiExcerptNameHTTP Заголовок Sign
    addpaneltrue
    PageWithExcerptAPI: Быстрый старт


  • Content-Type: application/json или application/x-www-form-urlencoded
  • Accept: application/json или application/xml
code


languagetext
Multiexcerpt
hidden
true
titleШаблон формирования заголовка Sign
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey
Code Block
languagetext
titleШаблон формирования параметра hash
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey
Column Section Column
width60%
Имя параметраОписаниеeshopId
ОбязательныйID магазинаorderId
ОбязательныйУникальный идентификатор покупки из вашей системы.
до 50 символовrecipientAmount
ОбязательныйСумма платежа, разделенная точкой. Минимальное значение - 10.00.
До 13 символов, до 2 цифр после точки.recipientCurrency
ОбязательныйВалюта платежа.
Допустимые значения
- TST (тестовая валюта)
- RUB
- USD
- EURemail
ОбязательныйE-mail покупателя. До 100 символов.hash
Обязательный

Контрольная подпись запроса

Expand
titleФормирование подписи запроса

Multiexcerpt include
MultiExcerptNameПараметр hash
addpaneltrue
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
iconfalse
titleПример запроса
Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2
Code Block
languagetext
titleТело
{
    "eshopId": "465932",
    "orderId": "a072334a33c0428d8a447072a779ddf0",
    "recipientAmount": "15.00",
    "recipientCurrency": "TST",
    "email": "e.mozgovoy+1@intellectmoney.ru",
    "hash": "9b37951051c0ef86f837d1ed5a0780f6"
}
Tip
iconfalse
titleПример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Code Block
languagetext
titleТело
{
    "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
            }
        ]
    }
}

...

width60%

GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖА

POST https://api.intellectmoney.ru/merchant/getbankcardpaymentstate

Code Block
languagetext
titleЗаголовки
Authorization: Bearer <ваш токен>
Sign: <хеш рассчитанный по шаблону ниже>
Content-Type: application/json или application/x-www-form-urlencoded
Accept: application/json или application/xml
Code Block
languagetext
titleШаблон формирования заголовка Sign
eshopId::invoiceId::signSecretKey
Code Block
languagetext
titleШаблон формирования параметра hash
eshopId::invoiceId::secretKey

...

width60%

Параметры

...

Контрольная подпись запроса

Expand
titleФормирование подписи запроса

Multiexcerpt include
MultiExcerptNameПараметр hash
addpaneltrue
PageWithExcerptБыстрый старт

...

iconfalse
titleПример запроса
Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70
Code Block
languagetext
titleТело
{
    "eshopId": "465932",
    "invoiceId": "3227169792",
    "hash": "815ec9d288bd6926bc37304cde7db05e"
}

Пример ответа

Чтобы получить ответ в формате JSON, нужно добавить в запрос заголовок Accept: application/json

{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "PaymentStep": "InProcess",
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}

...

width60%

BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙ

POST https://api.intellectmoney.ru/merchant/bankcardpayment

Code Block
languagetext
titleЗаголовки
Authorization: Bearer <ваш токен>
Sign: <хеш рассчитанный по шаблону ниже>
Content-Type: application/json или application/x-www-form-urlencoded
Accept: application/json или application/xml
Code Block
languagetext
titleШаблон формирования заголовка Sign
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey
Code Block
languagetext
titleШаблон формирования параметра hash
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::secretKey

Используется для передачи реквизитов банковской карты и дальнейшей оплаты счета.

Для использования этого метода у вашей организации должна быть сертификация PCI DSS. Если у вас её нет, то оплату можно реализовать перенаправлением покупателя на нашу платежную страницу, либо внедрением нашего платежного виджета на сайт.

MultiExcerptNameВозможные значения Currency


Expand
titleВозможные значения
  • TST (тестовая валюта)
  • RUB
  • USD
  • EUR



Multiexcerpt
hiddentrue
MultiExcerptNameВозможные значения OperationState.Code


Expand
titleВозможные значения


0Успех
2Ошибка




Multiexcerpt
hiddentrue
MultiExcerptNameВозможные значения Result.State.Code


Expand
titleВозможные значения


0Успех
1Успех с предупреждениями
любое другое значениеОшибка




Section


Column
width60%

CreateInvoice - ВЫСТАВЛЕНИЕ СЧЁТА К ОПЛАТЕ

Multiexcerpt include
MultiExcerptNameЗаголовки Merchant 2.0 API
PageWithExcerptAPI: Быстрый старт

Code Block
languagetext
titleШаблон формирования заголовка Sign
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey


Code Block
languagetext
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
PageWithExcerptAPI: Быстрый старт

email
Обязательный
E-mail покупателя.
До 100 символов.
hash
Обязательный

Контрольная подпись запроса

Expand
titleФормирование подписи запроса

Multiexcerpt include
MultiExcerptNameПараметр hash
addpaneltrue
PageWithExcerptAPI: Быстрый старт


serviceNameНазначение платежа - описание товара или услуги.
До 1024 символов.
userNameИмя покупателя
До 255 символов.
successUrlАдрес, на который происходит перенаправление плательщика с платежной страницы после успешной оплаты
До 512 символов.
failUrlАдрес, на который происходит перенаправление плательщика с платежной страницы в случае неуспешной оплаты
До 512 символов.
backUrlАдрес ссылки "Вернуться в магазин" на платежной странице
До 512 символов.
resultUrlАдрес, на который система IntellectMoney посылает HTTP/S POST запросы об изменении состояния cчёта
До 512 символов.
preference

Возможные способы оплаты счёта. Если не передавать, счет можно будет оплатить любым из подключенных способов.

Expand
titleВозможные значения
  • BankCard
  • YandexPay
  • Sbp

Можно перечислить несколько значений через запятую, например BankCard,YandexPay,Sbp


holdMode

Сразу списывать средства с карты, или холдировать (замораживать)

Expand
titleВозможные значения
  • 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
iconfalse
titleПример запроса


Localtab Group


Localtab
activetrue
titleСырое тело


Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2


Code Block
languagetext
titleТело
{
    "eshopId": "465932",
    "orderId": "a072334a33c0428d8a447072a779ddf0",
    "recipientAmount": "15.00",
    "recipientCurrency": "TST",
    "email": "e.mozgovoy+1@intellectmoney.ru",
    "hash": "9b37951051c0ef86f837d1ed5a0780f6"
}



Localtab
titlePHP (библиотека IM)


Code Block
languagephp
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
titleBash/Curl


Code Block
languagebash
#!/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
iconfalse
titleПример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Code Block
languagetext
titleТело
{
    "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
width60%

GetBankCardPaymentState - СОСТОЯНИЕ ПЛАТЕЖА

POST https://api.intellectmoney.ru/merchant/getbankcardpaymentstate

Multiexcerpt include
MultiExcerptNameЗаголовки Merchant 2.0 API
PageWithExcerpt@self

Code Block
languagetext
titleШаблон формирования заголовка Sign
eshopId::invoiceId::signSecretKey


Code Block
languagetext
titleШаблон формирования параметра hash
eshopId::invoiceId::secretKey

Запрос

Имя параметраОписание
eshopId
Обязательный
ID магазина, в котором был выставлен счёт
invoiceId
Обязательный
Номер счёта
hash
Обязательный

Контрольная подпись запроса

Expand
titleФормирование подписи запроса

Multiexcerpt include
MultiExcerptNameПараметр hash
addpaneltrue
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 - Описание результата выполнения запроса
    • PaymentStep - Текущее состояние платежа

      Expand
      titleВозможные значения


      CreatedСоздан
      InProcessВ обработке
      SendTo3DSОжидается прохождение 3DS
      ActivationPaymentОжидается завершение активационного платежа
      ErrorОплата завершилась ошибкой
      OkОплачен




Column


Tip
iconfalse
titleПример запроса


Localtab Group


Localtab
activetrue
titleСырое тело


Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70


Code Block
languagetext
titleТело
{
    "eshopId": "465932",
    "invoiceId": "3227169792",
    "hash": "815ec9d288bd6926bc37304cde7db05e"
}



Localtab
titlePHP (библиотека IM)


Code Block
languagephp
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
titleBash/Curl


Code Block
languagebash
#!/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
iconfalse
titleПример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Code Block
languagetext
titleТело
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "PaymentStep": "InProcess",
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}




...

width60%

Параметры

...

Контрольная подпись запроса

Expand
titleФормирование подписи запроса

Multiexcerpt include
MultiExcerptNameПараметр hash
addpaneltrue
PageWithExcerptБыстрый старт

...

iconfalse
titleПример запроса
Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b
Code Block
languagetext
titleТело
{
    "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
width60%

BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙ

POST https://api.intellectmoney.ru/merchant/bankcardpayment

Multiexcerpt include
MultiExcerptNameЗаголовки Merchant 2.0 API
PageWithExcerpt@self

Code Block
languagetext
titleШаблон формирования заголовка Sign
eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey


Code Block
languagetext
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
addpaneltrue
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
iconfalse
titleПример запроса


Localtab Group


Localtab
activetrue
titleСырое тело


Code Block
languagetext
titleЗаголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b


Code Block
languagetext
titleТело
{
    "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
titlePHP (библиотека IM)


Code Block
languagephp
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
titleBash/Curl


Code Block
languagebash
#!/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
iconfalse
titleПример ответа

Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json

Code Block
languagetext
titleТело
{
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "EshopId": 465932,
    "Result": {
        "State": {
            "Code": 0,
            "Desc": "Успешно обработан"
        }
    }
}