Для вызова методов 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. |
...
| Section |
|---|
| Column |
|---|
| Параметры| Имя параметра | Описание |
|---|
eshopId Обязательный | ID магазина, в котором был выставлен счёт | invoiceId Обязательный | Номер счёта | hash Обязательный | Контрольная подпись запроса | Expand |
|---|
| title | Формирование подписи запроса |
|---|
| | Multiexcerpt include |
|---|
| MultiExcerptName | Параметр hash |
|---|
| addpanel | true |
|---|
| PageWithExcerpt | Быстрый старт |
|---|
|
|
|
|
| Column |
|---|
| Tip |
|---|
| 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"
} |
|
| Tip |
|---|
| icon | false |
|---|
| title | Пример ответа |
|---|
| Для получения ответа в формате JSON в запросе должен быть заголовок Accept: application/json | Code Block |
|---|
| {
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"EshopId": 465932,
"Result": {
"PaymentStep": "InProcess",
"State": {
"Code": 0,
"Desc": "Успешно обработан"
}
}
} |
|
|
|
...
| Section |
|---|
| Anchor |
|---|
| BankCardPaymentApiMethod |
|---|
| BankCardPaymentApiMethod |
|---|
|
| Column |
|---|
| BankCardPayment - ОПЛАТА БАНКОВСКОЙ КАРТОЙPOST https://api.intellectmoney.ru/merchant/bankcardpayment | Multiexcerpt include |
|---|
| MultiExcerptName | Заголовки Merchant 2.0 API |
|---|
| 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. Если у вас её нет, то оплату можно реализовать перенаправлением покупателя на нашу платежную страницу, либо внедрением нашего платежного виджета на сайт. |
|
...