Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

Схема интеграции

  1. Выставляем счёт
    • Либо с помощью метода API CreateInvoice
    • Либо можно сформировать ссылку, при переходе покупателя на которую счёт выставится автоматически
  2. Покупатель оплачивает счёт
    • Либо на нашей платежной странице
    • Либо в нашем виджете
    • Либо на вашем сайте, с помощью метода BankCardPayment (у вашей организации должна быть сертификация PCI DSS)
  3. Получаем статус оплаты
    • Либо ждем HTTP POST запроса об изменении статуса от IntellectMoney
    • Либо периодически вызываем метод API GetBankCardPaymentState

Авторизация в API

Для авторизации в запросе нужно передать 3 строки: ваш Bearer токен и два хеша.

HTTP заголовок Authorization

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

HTTP заголовок Sign

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

Шаблон формирования заголовка 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 со следующими параметрами:

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

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

  1. Заменить имена параметров в шаблоне их значениями, и подставить секретный ключ вместо signSecretKey. Получаем строку:
462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::21baff51c1a342f3ac059e61e0894583

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

Этот хеш передаем в заголовке Sign.

Параметр hash

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

Шаблон формирования параметра hash
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::secretKey
Здесь secretKey - ключ, заданный в личном кабинете в настройках магазина. Это ключ, как и весь шаблон, не связаны с ключем и шаблоном из заголовка Sign.

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

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

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

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


462539::myorder::::10.00::RUB::::e@e.ru::::::::::::::::my_very_secret_key


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

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




Методы API

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

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

Заголовки
Authorization: Bearer <ваш токен>
Sign: <хеш рассчитанный по шаблону ниже>
Content-Type: application/json или application/x-www-form-urlencoded
Accept: application/json или application/xml
Шаблон формирования заголовка Sign
eshopId::orderId::serviceName::recipientAmount::recipientCurrency::userName::email::successUrl::failUrl::backUrl::resultUrl::expireDate::holdMode::preference::signSecretKey
Шаблон формирования параметра 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
Обязательный
Валюта платежа.
Допустимые значения
- TST (тестовая валюта)
- RUB
- USD
- EUR
email
Обязательный
E-mail покупателя. До 100 символов.
hash
Обязательный
Контрольная подпись запроса
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

Пример запроса

Заголовки
Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 58654f0550d44fb36fdb986080318aa9b277e1c7336ff6bdb2d00e329f2550e2
Тело
{
    "eshopId": "465932",
    "orderId": "a072334a33c0428d8a447072a779ddf0",
    "recipientAmount": "15.00",
    "recipientCurrency": "TST",
    "email": "e.mozgovoy+1@intellectmoney.ru",
    "hash": "9b37951051c0ef86f837d1ed5a0780f6"
}


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

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

{
    "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 <ваш токен>
  • Sign: <хеш рассчитанный по шаблону ниже>
  • Content-Type: application/json или application/x-www-form-urlencoded
  • Accept: application/json или application/xml

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

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

Параметры

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

Пример запроса

Заголовки:

Content-Type: application/json
Accept: application/json
Authorization: Bearer 92022dd8245a56d8a73446b43ebb3590
Sign: 0ae3bb9779c482057580595c6b47e437ee6a4dda1065002e7d77ab597956bb70

Тело:

{
    "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 <ваш токен>
  • Sign: <хеш рассчитанный по шаблону ниже>
  • Content-Type: application/json или application/x-www-form-urlencoded
  • Accept: application/json или application/xml Шаблон формирования заголовка Sign: eshopId::invoiceId::pan::cardHolder::expiredMonth::expiredYear::cvv::returnUrl::ipAddress::signSecretKey Шаблон формирования параметра 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
Обязательный
Контрольная подпись запроса

Пример запроса

Заголовки:

Content-Type: application/json
Accept: application/json
Authorization: Bearer 7b51b65ec7da4b518bc0ef41617adf3a
Sign: a861e54fd1aae4e0686a4dd532ba15daf892058752329a07f57b0cb8d199a05b

Тело:

{
    "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

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