Илтимос, маълумоти заруриро пешниҳод намоед
Мо дар муддати кӯтоҳтарин бо Шумо ба тамос мебароем
Наша платежная платформа позволяет подключить на ваш веб-сайт прием платежей с пластиковых карт в интернете в виде готовой платежной формы или с возможностью использования платежной формы на стороне мерчанта по API. С нами вы можете организовать прием платежей в интернете быстро и гибко так, как это нужно именно вам. Мы создаем продукт, который удобен не только для бизнеса, но и для разработчиков.
Запуск процесса оплаты посредством сервиса ImconPay со стороны мерчанта состоит из этих этапов:
В личном кабинете мерчанта в Мерчант > Интеграция Магазина находиться информация по ключам для взаимодействия с сервисом ImconPay. Ниже предоставлена таблица с наименованием данных ключей.
Имя | Описание |
---|---|
Client Code | Код мерчанта в системе ImconPay |
Merchant Api Key | Секретный ключ мерчанта в системе ImconPay |
Root Api Key | Секретный ключ сервиса ImconPay |
Private Key | Закрытый ключ мерчанта для формирования подписи по алгоритму RS256 |
KID | KID (Идентификатор ключа) мерчанта в системе ImconPay |
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта. Чтобы отправить запрос на сервис ImconPay для получения токена, сначала требуется формировать JWT token который будет отправляться в Authorization header-е запроса. Формируем JWT token (RFC 7519) по алгоритму RS256 с нижеследующими параметрами:
Параметр | Описание | Обяз. | |
---|---|---|---|
Private key: | |||
privateKey | Закрытый ключ мерчанта для формирования подписи по алгоритму RS256 | да | |
KID: | |||
kid | KID (Идентификатор ключа) мерчанта в системе ImconPay | да | |
Payload: | |||
iss | URL сайта мерчанта | да | |
client_code | Код мерчанта в системе ImconPay | да | |
prv | Захешериваное значение по алгоритму SHA256 конкатенацией строки: iss + client_code |
да |
Далее отправляем POST запрос с заголовком Authorization: Bearer {JWT token}
POST https://api.mtm.tj/api/auth/acquire_access_token
При успешном запросе предоставляется ответ от сервиса ImconPay как в примере ниже.
{ "status": true, "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJpc3MiOiJodHRwczovL3BheS5tdG0udGovYXBpL2F1dGgvbG9naW4iLCJpYXQiOjE3MDAwMjM0OTgsImV4cCI6MTcwMDAyNTI5OCwiY2xpZW50X2NvZGUiOiIzOGZlODJiNiIsInBydiI6ImU4YmEzMjI3NzM0ZWIzMzJjYzgwZjVmOGVhMGI1NGEzNzQ2NWU2MmIwZDM5MTZlMTBkZTgzMTRhOWJmYzUxMWIifQ.dl0XssA2qKTjMXAZnNBKlOLheIX_UngEebnTda1LGZhfd_dkmZlO6tg3sriG7-NqxiEkN5ud_-kmQYrSihDoEkvCqpLzr5ac8GDDhkiFhJfNlbbLiEDZq0T5x1YdfGC9wYJEwDHf14YhJVLpEYoHwD_Uask1uMCQwlFysztvr-OIodSKlr4h4xeBFplpOjf2Suu-itjgpZ1sCqTL25f4UpirAPCo0_dyjsMZnYBDpCF7-bIyqmHNJmS6AtvcLxG0xE_QEvukFcn67inopmJL4sYAg7d6jF-AjFdBAsHJSlVO3mlW2YtV314d2q5HAu2TEQsXp2kqK1KmZb6IylyEAQ" }
После успешного получения токена доступа в API вызовах по api.mtm.tj, нужно отправлять выданный ранее токен доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта. Чтобы отправить запрос на сервис ImconPay для получения подписи заказа, сначала требуется формировать hash который будет отправляться в числе параметров запроса. Перечень параметров запроса отображен в нижеследующей таблице. Параметр hash это захешериваное значение по алгоритму SHA256 текстовой строки которая составляется конкатенацией некоторых параметров. Ниже параметры которые должны конкатенировать.
order_id + amount + MerchantApiKey
Далее отправляем POST запрос с параметрами перечисленными в таблице.
POST https://api.mtm.tj/api/pay/create_quote
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
order_id | String | Идентификатор заказа на стороне мерчанта | да |
amount | Number(8, 2) | Стоимость покупки (заказа), разделитель точка | да |
currency | Integer | Код валюты по стандарту ISO 4217 | да |
description_cart | String | Содержимое корзины | нет |
order_type | String | Тип заказа | да |
hash | String | Рассчитанный хэш | да |
Поле order_type может иметь 2 ввида значений mpi_url, custom_url. При интеграции с платежной формой ImconPay надо отправлять значение mpi_url
При успешном запросе предоставляется ответ от сервиса ImconPay в данном ввиде.
{ "success": true, "signature": "a833440eec33d195ae27638eaa08ac10613c9bc2ad9a02be209f255838245eed", "uuid_order": "f798db9e-72cd-4fa9-acd4-d551ce910439" }
В указанных в примере местах вместо фигурных скобок надо подставить параметры. Параметры указаны в таблице.
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
signature | String | Подпись заказа | да |
uuid_order | String | Идентификатор заказа в системе ImconPay | да |
client_code | String | Код мерчанта в системе ImconPay | да |
Пример:
GET https://api.mtm.tj/pay/gateway/{signature}/{uuid_order}/{client_code}
Во время регистрации со стороны мерчанта предоставляется merchant_notify_url. При прохождение операции сервис ImconPay отправляет запрос на предоставлений merchant_notify_url.
Пример:
GET {merchant_notify_url}?uuid_order={uuid_order}
Это будет означать, что статус заказа изменился, и мерчант в этот момент должен начинать делать запрос на получение статуса оплаты заказа.
Для получения статуса заказа необходимо отправить POST-запрос с параметрами, перечисленными в таблице:
POST https://api.mtm.tj/api/pay/get_order_status
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
uuid_order | UUID | Идентификатор заказа в системе ImconPay | да |
Наша платежная платформа позволяет подключить на ваш веб-сайт прием платежей с пластиковых карт в интернете в виде готовой платежной формы или с возможностью использования платежной формы на стороне мерчанта по API. С нами вы можете организовать прием платежей в интернете быстро и гибко так, как это нужно именно вам. Мы создаем продукт, который удобен не только для бизнеса, но и для разработчиков.
Запуск процесса оплаты посредством сервиса ImconPay со стороны мерчанта состоит из этих этапов:
В личном кабинете мерчанта в Мерчант > Интеграция Магазина находиться информация по ключам для взаимодействия с сервисом ImconPay. Ниже предоставлена таблица с наименованием данных ключей.
Имя | Описание |
---|---|
Client Code | Код мерчанта в системе ImconPay |
Merchant Api Key | Секретный ключ мерчанта в системе ImconPay |
Root Api Key | Секретный ключ сервиса ImconPay |
Private Key | Закрытый ключ мерчанта для формирования подписи по алгоритму RS256 |
KID | KID (Идентификатор ключа) мерчанта в системе ImconPay |
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта. Чтобы отправить запрос на сервис ImconPay для получения токена, сначала требуется формировать JWT token который будет отправляться в Authorization header-е запроса. Формируем JWT token (RFC 7519) по алгоритму RS256 с нижеследующими параметрами:
Параметр | Описание | Обяз. | |
---|---|---|---|
Private key: | |||
privateKey | Закрытый ключ мерчанта для формирования подписи по алгоритму RS256 | да | |
KID: | |||
kid | KID (Идентификатор ключа) мерчанта в системе ImconPay | да | |
Payload: | |||
iss | URL сайта мерчанта | да | |
client_code | Код мерчанта в системе ImconPay | да | |
prv | Захешериваное значение по алгоритму SHA256 конкатенацией строки: iss + client_code |
да |
Далее отправляем POST запрос с заголовком Authorization: Bearer {JWT token}
POST https://api.mtm.tj/api/auth/acquire_access_token
При успешном запросе предоставляется ответ от сервиса ImconPay как в примере ниже.
{ "status": true, "accessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJpc3MiOiJodHRwczovL3BheS5tdG0udGovYXBpL2F1dGgvbG9naW4iLCJpYXQiOjE3MDAwMjM0OTgsImV4cCI6MTcwMDAyNTI5OCwiY2xpZW50X2NvZGUiOiIzOGZlODJiNiIsInBydiI6ImU4YmEzMjI3NzM0ZWIzMzJjYzgwZjVmOGVhMGI1NGEzNzQ2NWU2MmIwZDM5MTZlMTBkZTgzMTRhOWJmYzUxMWIifQ.dl0XssA2qKTjMXAZnNBKlOLheIX_UngEebnTda1LGZhfd_dkmZlO6tg3sriG7-NqxiEkN5ud_-kmQYrSihDoEkvCqpLzr5ac8GDDhkiFhJfNlbbLiEDZq0T5x1YdfGC9wYJEwDHf14YhJVLpEYoHwD_Uask1uMCQwlFysztvr-OIodSKlr4h4xeBFplpOjf2Suu-itjgpZ1sCqTL25f4UpirAPCo0_dyjsMZnYBDpCF7-bIyqmHNJmS6AtvcLxG0xE_QEvukFcn67inopmJL4sYAg7d6jF-AjFdBAsHJSlVO3mlW2YtV314d2q5HAu2TEQsXp2kqK1KmZb6IylyEAQ" }
После успешного получения токена доступа в API вызовах по api.mtm.tj, нужно отправлять выданный ранее токен доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта. Чтобы отправить запрос на сервис ImconPay для получения подписи заказа, сначала требуется формировать hash который будет отправляться в числе параметров запроса. Перечень параметров запроса отображен в нижеследующей таблице. Параметр hash это захешериваное значение по алгоритму SHA256 текстовой строки которая составляется конкатенацией некоторых параметров. Ниже параметры которые должны конкатенировать.
order_id + amount + MerchantApiKey
Далее отправляем POST запрос с параметрами перечисленными в таблице.
POST https://api.mtm.tj/api/pay/create_quote
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
order_id | String | Идентификатор заказа на стороне мерчанта | да |
amount | Number(8, 2) | Стоимость покупки (заказа), разделитель точка | да |
currency | Integer | Код валюты по стандарту ISO 4217 | да |
description_cart | String | Содержимое корзины | нет |
order_type | String | Тип заказа | да |
hash | String | Рассчитанный хэш | да |
Поле order_type может иметь 2 ввида значений mpi_url, custom_url. При интеграции собственной платежной формы мерчанта надо отправлять значение custom_url
При успешном запросе предоставляется ответ от сервиса ImconPay в данном ввиде.
{ "success": true, "signature": "a833440eec33d195ae27638eaa08ac10613c9bc2ad9a02be209f255838245eed", "uuid_order": "f798db9e-72cd-4fa9-acd4-d551ce910439" }
В указанных в примере местах вместо фигурных скобок надо подставить параметры. Параметры указаны в таблице.
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
signature | String | Подпись заказа | да |
uuid_order | String | Идентификатор заказа в системе ImconPay | да |
client_code | String | Код мерчанта в системе ImconPay | да |
Пример:
GET https://api.mtm.tj/pay/gateway/{signature}/{uuid_order}/{client_code}
Данный шаг надо выполнять только для мерчантов которые используют свою платёжную страницу.
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта.
Отправляем POST запрос с параметрами перечисленнемы в таблице.
POST https://api.mtm.tj/api/pay/3ds2/check
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
uuid_order | UUID | Идентификатор заказа в системе ImconPay | да |
pan | Количество цифр от 8 до 19 включительно | Полный номер карты | да |
При успешном запросе предоставляется ответ от сервиса ImconPay в данном ввиде.
{ "success": true, "threeDSProtocolVersion": "3DSv2", "threeDSServerTransID": "366b4dcd-cef6-47d8-8c29-68c9bc4e06f0", "gatherUrl": "https://3dstest.mtm.tj:8443/api/v1/client/gather" }
Поле threeDSProtocolVersion может иметь 3 ввида значений None, 3DSv1 и 3DSv2. Поле threeDSServerTransID имеет не пустое значение только при 3DSv2
После получения ответа со стороны ImconPay отправьте POST запрос на gatherUrl с параметрами формы (Content-Type: application/x-www-form-urlencoded):
threeDSServerTransID: {threeDSServerTransID}Данный шаг надо выполнять только для мерчантов которые используют свою платёжную страницу.
Данный шаг рекомендуется соверщать в закрытой части (бэкэнд) приложения мерчанта.
Отправляем POST запрос с параметрами перечисленнемы в таблице.
POST https://api.mtm.tj/api/pay/payment
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
uuid_order | UUID | Идентификатор заказа в системе ImconPay | да |
pan | Количество цифр от 8 до 19 включительно | Полный номер карты | да |
cvc | Число (длина 3) | Проверочный код карты | да |
exp_month | Число (длина 2) | Месяц, в течение которого карта истекает | да |
exp_year | Число (длина 4) | Год, когда истекает срок действия карты | да |
cardholder | String | Имя владельца карты | нет |
При успешном запросе предоставляется ответ от сервиса ImconPay в данном ввиде.
{ "success": true, "threeDSProtocolVersion": "3DSv2", "PaReq": "eJxVUu1ugkAQfBXDf7wvEDDrNbXa1LQYo/gAwG0VK6jH2dg+fe/8aOu/nWEzMzcLPJzqbecTdVvtmoHHutTrYFPuVNWsBt4ye/Zj70FCttaIowWWR40SUmzbfIWdSg289zwOFVeBn1OFfsAF+jFViZ/0hFBFwoqiEJ6E2eMcDxKuRtL6dDmQG7SKulznjZGQl4fhZCoDHvUoBXKFUKOejCTjIgh7UZwAuRDQ5DXKDFtzU2BAzhyUu2Nj9JfsBQLIDcBRb+XamH3bJ6Q2dddsgDgOyF+E2dFNrdU4VUqmmzGfZsvvNBuLdDQJp5slnWbjMB19DIC4DVC5QckpF4yzpEPDfhj1hQ1y5iGvnblklIrAPuiCYO9MHu8+/afANq3tIb5kEtmifhHgab9r0G5Y9ncG8pf56cWVWJpzXbGIaMBE+NqK2Ux/vuniVPD5YjN0SS5LTrGy1fCAsbOkA0CcDLlejVwPbqe7H+EHkb25WQ==", "cReq": "eJxVUu1ugkAQfBXDf7wvEDDrNbXa1LQYo/gAwG0VK6jH2dg+fe/8aOu/nWEzMzcLPJzqbecTdVvtmoHHutTrYFPuVNWsBt4ye/Zj70FCttaIowWWR40SUmzbfIWdSg289zwOFVeBn1OFfsAF+jFViZ/0hFBFwoqiEJ6E2eMcDxKuRtL6dDmQG7SKulznjZGQl4fhZCoDHvUoBXKFUKOejCTjIgh7UZwAuRDQ5DXKDFtzU2BAzhyUu2Nj9JfsBQLIDcBRb+XamH3bJ6Q2dddsgDgOyF+E2dFNrdU4VUqmmzGfZsvvNBuLdDQJp5slnWbjMB19DIC4DVC5QckpF4yzpEPDfhj1hQ1y5iGvnblklIrAPuiCYO9MHu8+/afANq3tIb5kEtmifhHgab9r0G5Y9ncG8pf56cWVWJpzXbGIaMBE+NqK2Ux/vuniVPD5YjN0SS5LTrGy1fCAsbOkA0CcDLlejVwPbqe7H+EHkb25WQ==", "TermUrl": "https://3dstest.mtm.tj:8443/payments/rest/finish3ds.do", "MD": "607b4d63-ac5d-4667-b3c9-b0986aef4bf1", "acsUrl": "https://3dstest.mtm.tj:8443/acs/pareq/f98150d35dbb4598a6c56b9e4296cbdb" }
После получения ответа со стороны ImconPay отправьте POST запрос на acsUrl с параметрами формы (Content-Type: application/x-www-form-urlencoded):
Когда threeDSProtocolVersion None, переход на страницу acsUrl не нужен
Когда threeDSProtocolVersion 3DSv1:
PaReq: {PaReq}Когда threeDSProtocolVersion 3DSv2:
creq: {сReq}Во время регистрации со стороны мерчанта предоставляется merchant_notify_url. При прохождение операции сервис ImconPay отправляет запрос на предоставлений merchant_notify_url.
Пример:
GET {merchant_notify_url}?uuid_order={uuid_order}
Это будет означать, что статус заказа изменился, и мерчант в этот момент должен начинать делать запрос на получение статуса оплаты заказа.
Для получения статуса заказа необходимо отправить POST-запрос с параметрами, перечисленными в таблице:
POST https://api.mtm.tj/api/pay/get_order_status
Передача токена доступа accessToken в заголовке авторизации:
Authorization: Bearer {accessToken}
Атрибут/Параметр | Тип данных | Описание | Обяз. |
---|---|---|---|
client_code | String | Код мерчанта в системе ImconPay | да |
uuid_order | UUID | Идентификатор заказа в системе ImconPay | да |