Всё для электронной коммерции
Передовые инструменты
Когда нужна эффективная
и гибко настраиваемая
платёжная форма
Когда нужен платёжный API
с полной функциональностью
и тонкими настройками
Когда нужны наборы средств разработки для встраивания платёжной формы на сайты и в приложения
Когда нужны удобные инструменты для контроля, анализа и управления платежами
Когда нужна легко и быстро
подключаемая платёжная
форма для сайта на базе CMS
платформа Гибкая. Надёжная.
Производительная
Как подключить наши решения?
Прежде всего, со стороны вашей компании должна быть оформлена
заявка на подключение платёжных решений
ecommpay
и получено подтверждение о готовности начинать технические работы.
Когда это сделано, наступает пора обратиться к нашим специалистам
технической поддержки — чтобы уточнить ваши задачи, подобрать под них
оптимальные решения и перейти к дальнейшим работам.
Интеграция технических решений может занять несколько часов в течение одного
дня,
а может и несколько недель с разбивкой на этапы. Многое зависит от
сложности задач, квалификации специалистов и от совместной готовности к активной
работе.
Поэтому изначально важно согласовать с нашими специалистами порядок и сроки
выполнения работ.
В рамках интеграции мы действуем с необходимой аккуратностью.
Готовим и используем индивидуальную тестовую среду, чтобы настроить, проверить
и доработать с обеих сторон всё, что нужно.
Переводим решение в рабочий режим под тщательным совместным контролем.
И только после стадии активного мониторинга, когда мы уверены в корректном
проведении платёжных операций на рабочем трафике, переводим проект в режим
штатной поддержки.
Мы привыкли работать так, чтобы было чему радоваться.
При переводе вашего проекта в режим штатной поддержки вы можете рассчитывать
на надёжное проведение платёжных операций и радоваться этому вместе с нами.
Можете контролировать все операции, проводимые в вашем проекте через платформу
ecommpay, и управлять ими через личный
кабинет.
И, конечно, можете обращаться к нам с любыми
вопросами и предложениями.
Схема работы
пользователи
среда
Примеры
Если SDK ещё не подключён, стоит загрузить его c GitHub и подключить через пакетный менеджер.
npm install ecommpay yarn add ecommpay
После этого можно проводить оплаты и использовать другие возможности SDK.
Для проведения оплаты, прежде всего, надо заполнить заявку — мы, такие-то (идентификатор проекта),
просим провести новый платёж (идентификатор платежа) с переводом указанных средств (валюта и сумма платежа)
от такого-то пользователя (идентификатор пользователя) в нашу пользу по таким-то причинам (описание платежа).
На основе заполненной заявки SDK позволяет автоматически генерировать запрос
на открытие платёжной формы с заданными параметрами платежа.
/* Импорт модуля Payment SDK */ const { Payment } = require('ecommpay'); /* Создание объекта ECP с идентификатором проекта и секретным ключом */ const e = new Payment('112', 'secret_key'); /* Заполнение заявки на оплату */ e.paymentId = 'test_payment_1539'; /* Идентификатор платежа, уникальный в рамках проекта*/ e.paymentAmount = 3415; /* Сумма платежа в дробных единицах валюты*/ e.paymentCurrency = 'USD'; /* Код валюты платежа в формате ISO-4217 alpha-3*/ e.customerId = 'customer_51413'; /* Идентификатор пользователя в рамках проекта*/ e.paymentDescription = 'Тестовый платёж'; /* Описание платежа. Не обязательный, но полезный параметр*/ /* Получение URL для вызова платёжной формы */ const url = e.getUrl(); /* Запрос для вызова платёжной формы */ https://paymentpage.ecommpay.com/payment?payment_id=test_payment_1542&payment_am...
Приведённые в данном примере параметры, за исключением описания платежа, являются минимально необходимыми и обязательными для любой оплаты. Также могут использоваться и другие. Подробнее .
Используя сформированный запрос, можно вызвать для пользователя настроенную платёжную форму. При этом можно использовать разные способы открытия .
Чтобы узнать о результатах инициированной оплаты,
надо разобрать соответствующее оповещение
от ecommpay.
/* Код для разбора и обработки оповещений */ const { Callback } = require('ecommpay'); app.post('/payment/callback', function(req, res) { const callback = new Callback(req.body); if (callback.isPaymentSuccess()) { const paymentId = callback.getPaymentId(); // Получаем идентификатор платежа // Выполняем необходимые действия, например, перевод заказа в статус "Оплачен" } }); /* Пример оповещения об успешной оплате */ { "project_id": 112, // Идентификатор проекта "payment": { // Информация о платеже "id": "test_payment_1539", // Идентификатор платежа "type": "purchase", // Тип платежа "status": "success", // Статус платежа "date": "2018-08-28T09:11:28+0000", // Дата и время проведения платежа "method": "card", // Платёжный метод "sum": { // Сумма и код валюты платежа "amount": 31415, "currency": "USD" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "customer": { "id": "customer_51413" }, "operation": { // Информация о последней операции в рамках платежа "id": 17839000001150, // Идентификатор операции "type": "sale", // Тип операции "status": "success", // Статус операции "date": "2018-08-28T09:11:28+0000", // Дата и время проведения операции "created_date": "2018-08-28T09:10:50+0000", "request_id": "2c8af331519833f2c96c4a1aaf60edfcffb...", // Идентификатор запроса "sum_initial": { // Сумма и валюта операции, указанные в запросе "amount": 31415, "currency": "USD" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "USD" }, "provider": { // Информация о проведении платежа в платёжной системе "id": 6, "payment_id": "15354474886323", "date": "2018-02-07T08:34:24+0000", "auth_code": "563253", "endpoint_id": 6 }, "code": "0", // Унифицированный код ответа ECOMMPAY "message": "Success", // Расшифровка кода ответа ECOMMPAY "eci": "05" }, "signature": "22YlUIIgoppli/JX8w5F5+c2h12RXi81WLmgDx..." // Подпись оповещения }
Оповещение включает в себя подпись и информацию о результатах проведения
платежа.
При использовании SDK проверка подписи в оповещении выполняется
автоматически.
Подробнее: об оповещениях , о статусах платежей и о статусах
операций.
Для проведения оплаты, прежде всего, надо заполнить заявку — мы, такие-то (идентификатор проекта),
просим провести новый платёж (идентификатор платежа) с переводом указанных средств (валюта и сумма платежа)
от такого-то пользователя (идентификатор пользователя) в нашу пользу по таким-то причинам (описание платежа).
На основе заполненной заявки SDK позволяет автоматически генерировать запрос
на открытие платёжной формы с заданными параметрами платежа.
/* Заявка на оплату */ $payment = new ecommpay\Payment(112); // Идентификатор проекта, полученный от ECOMMPAY при интеграции $payment->setPaymentAmount(31415)->setPaymentCurrency('USD'); // Сумма (в дробных единицах валюты) и код валюты (в формате ISO-4217 alpha-3) $payment->setPaymentId('test_payment_1539'); // Идентификатор платежа, уникальный в рамках проекта $payment->setCustomerId('customer_51413'); // Идентификатор пользователя в рамках проекта $payment->setPaymentDescription('Тестовый платёж'); // Описание платежа. Не обязательный, но полезный параметр $gate = new ecommpay\Gate('secret_key'); // Секретный ключ проекта, полученный от ECOMMPAY /* Получение URL для вызова платёжной формы */ $url = $gate->getPurchasePaymentPageUrl($payment); /* Запрос для вызова платёжной формы */ https://paymentpage.ecommpay.com/payment?payment_id=test_payment_1542&payment_am...
Все параметры в данном примере, за исключением описания платежа, являются минимально необходимыми и обязательными для любой оплаты. Также могут использоваться и другие. Подробнее .
Используя сформированный запрос, можно вызвать для пользователя настроенную платёжную форму. При этом можно использовать разные способы открытия .
Чтобы узнать о результатах инициированной оплаты,
надо разобрать соответствующее оповещение
от ecommpay.
/* Код для разбора оповещений */ $gate = new ecommpay\Gate('secret_key'); $callback = $gate->handleCallback($data); // $data — данные в формате JSON, принятые от ECOMMPAY на указанном при интеграции URL // $callback — объект c информацией об оповещении /* Методы, поддерживаемые объектом Callback */ // Callback::getPaymentId(); // Получение идентификатора платежа // Callback::getPaymentStatus(); // Получение статуса платежа // Callback::getPayment(); // Получение всей информации о платеже /* Пример оповещения об успешной оплате */ { "project_id": 112, // Идентификатор проекта "payment": { // Информация о платеже "id": "test_payment_1539", // Идентификатор платежа "type": "purchase", // Тип платежа "status": "success", // Статус платежа "date": "2018-08-28T09:11:28+0000", // Дата и время проведения платежа "method": "card", // Платёжный метод "sum": { // Сумма и код валюты платежа "amount": 31415, "currency": "USD" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "customer": { "id": "customer_51413" }, "operation": { // Информация о последней операции в рамках платежа "id": 17839000001150, // Идентификатор операции "type": "sale", // Тип операции "status": "success", // Статус операции "date": "2018-08-28T09:11:28+0000", // Дата и время проведения операции "created_date": "2018-08-28T09:10:50+0000", "request_id": "2c8af331519833f2c96c4a1aaf60edfcffb...", // Идентификатор запроса "sum_initial": { // Сумма и валюта операции, указанные в запросе "amount": 31415, "currency": "USD" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "USD" }, "provider": { // Информация о проведении платежа в платёжной системе "id": 6, "payment_id": "15354474886323", "date": "2018-02-07T08:34:24+0000", "auth_code": "563253", "endpoint_id": 6 }, "code": "0", // Унифицированный код ответа ECOMMPAY "message": "Success", // Расшифровка кода ответа ECOMMPAY "eci": "05" }, "signature": "22YlUIIgoppli/JX8w5F5+c2h12RXi81WLmgDx..." // Подпись оповещения }
Оповещение включает в себя подпись и информацию о результатах проведения платежа. При использовании SDK проверка подписи в оповещении выполняется автоматически. Подробнее: об оповещениях , о статусах платежей и о статусах операций.
Первым делом надо заполнить заявку на проведение оплаты — мы, такие-то (идентификатор проекта), просим провести новый платёж (идентификатор платежа) с переводом указанных средств (валюта и сумма платежа) от такого-то пользователя (идентификатор пользователя) в нашу пользу по таким-то причинам (описание платежа).
/* Исходная заявка */ { "project_id": 112, // Идентификатор проекта, полученный от ECOMMPAY при интеграции "payment_id": "test_payment_1539", // Идентификатор платежа, уникальный в рамках проекта "payment_currency": "USD", // Код валюты в формате ISO-4217 alpha-3 "payment_amount": 31415, // Сумма в дробных единицах валюты "customer_id": "customer_51413", // Идентификатор пользователя в рамках проекта "payment_description": "Тестовый платёж", // Описание платежа. Не обязательный, но полезный параметр }
Приведённые в этом примере параметры, за исключением описания платежа, являются минимально необходимыми и обязательными для любой оплаты. Также могут использоваться и другие. Подробнее .
Чтобы заверить сформированную заявку, её следует подписать. Для формирования подписи используется секретный ключ проекта.
/* Заявка с ключом для формирования подписи */ { "project_id": 112, "payment_id": "test_payment_1536", "payment_currency": "USD", "payment_amount": 31415, "customer_id": "customer_51413", "payment_description": "Тестовый платёж" } "secret key": "secret_key" // Секретный ключ проекта, полученный от ECOMMPAY /* Подпись к заявке */ "signature": "NlxCFRsUYVwbYJG7xj62+sGhiyrCDbVrg3iy+3F9eXy4J8c55cE..."
Подпись генерируется заданным способом на основе заявки с ключом (и не включается в заявку до подписания, чтобы не допускать рекурсии). Подробнее .
Подписанную заявку можно упаковывать в запрос на
адрес https://paymentpage.ecommpay.com.
Это URL для открытия платёжной
формы с заданными параметрами платежа.
/* Заявка с подписью */ { "project_id": 112, "payment_id": "test_payment_1536", "payment_currency": "USD", "payment_amount": 31415, "customer_id": "customer_51413", "payment_description": "Тестовый платёж", "signature": "NlxCFRsUYVwbYJG7xj62+sGhiyrCDbVrg3iy+3F9eXy4J8c55cE..." } /* Запрос для вызова платёжной формы */ https://paymentpage.ecommpay.com/payment?payment_id=test_payment_1536&payment_am...
Используя сформированный запрос, можно вызвать для пользователя настроенную платёжную форму. При этом можно использовать разные способы открытия .
Чтобы узнать о результатах инициированной оплаты,
надо разобрать соответствующее оповещение
от ecommpay.
/* Пример оповещения об успешной оплате */ { "project_id": 112, // Идентификатор проекта "payment": { // Информация о платеже "id": "test_payment_1539", // Идентификатор платежа "type": "purchase", // Тип платежа "status": "success", // Статус платежа "date": "2018-08-28T09:11:28+0000", // Дата и время проведения платежа "method": "card", // Платёжный метод "sum": { // Сумма и код валюты платежа "amount": 31415, "currency": "USD" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "customer": { "id": "customer_51413" }, "operation": { // Информация о последней операции в рамках платежа "id": 17839000001150, // Идентификатор операции "type": "sale", // Тип операции "status": "success", // Статус операции "date": "2018-08-28T09:11:28+0000", // Дата и время проведения операции "created_date": "2018-08-28T09:10:50+0000", "request_id": "2c8af331519833f2c96c4a1aaf60edfcffb...", // Идентификатор запроса "sum_initial": { // Сумма и валюта операции, указанные в запросе "amount": 31415, "currency": "USD" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "USD" }, "provider": { // Информация о проведении платежа в платёжной системе "id": 6, "payment_id": "15354474886323", "date": "2018-02-07T08:34:24+0000", "auth_code": "563253", "endpoint_id": 6 }, "code": "0", // Унифицированный код ответа ECOMMPAY "message": "Success", // Расшифровка кода ответа ECOMMPAY "eci": "05" }, "signature": "22YlUIIgoppli/JX8w5F5+c2h12RXi81WLmgDx..." // Подпись оповещения }
Оповещение включает в себя подпись и информацию о результатах проведения платежа. Для проверки достоверности оповещения необходимо сгенерировать подпись на основе всех параметров, кроме signature, и сверить её с полученной. Подробнее: об оповещениях , о статусах платежей и о статусах операций.