Всё для электронной коммерции
Передовые инструменты
Полноценный набор для настройки платёжных решений в точности под ваши задачи
Когда нужна эффективная
и гибко настраиваемая
платёжная форма
Когда нужен платёжный 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 = 'RUB'; // Валюта платежа в формате ISO-4217 alpha-3 /* Получение URL для вызова платёжной формы */ const url = e.getUrl();
Приведённые в данном примере параметры являются минимально необходимыми и обязательными
для любой оплаты. Также могут использоваться и другие. Подробнее .
Используя сформированный запрос, можно вызвать для пользователя настроенную платёжную форму.
В данном примере мы вызываем платёжную форму в новой вкладке браузера. А можно и иначе. Подробнее .Чтобы узнать о результатах инициированной оплаты, надо разобрать соответствующее оповещение
от 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": "RUB" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "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": "RUB" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "RUB" }, "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); // Идентификатор проекта $payment->setPaymentAmount(31415)->setPaymentCurrency('RUB'); // Сумма (в минорных единицах валюты) и валюта (в формате ISO-4217 alpha-3) $payment->setPaymentId('test_payment_1539'); // Идентификатор платежа, уникальный в рамках проекта $payment->setPaymentDescription('Тестовый платёж'); // Описание платежа. Не обязательный, но полезный параметр $gate = new ecommpay\Gate('secret_key'); // Секретный ключ проекта, полученный от ECOMMPAY при интеграции /* Запрос для вызова платёжной формы */ $url = $gate->getPurchasePaymentPageUrl($payment);
Все параметры в данном примере, за исключением PaymentDescription, являются минимально необходимыми и обязательными для любой оплаты. Также могут использоваться и другие. Подробнее .
Используя сформированный запрос, можно вызвать для пользователя настроенную платёжную форму.
В данном примере мы вызываем платёжную форму в новой вкладке браузера. А можно и иначе. Подробнее .Чтобы узнать о результатах инициированной оплаты, надо разобрать соответствующее оповещение
от 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": "RUB" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "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": "RUB" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "RUB" }, "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": "RUB", // Валюта в формате ISO-4217 alpha-3 "payment_amount": "31415", // Сумма в минорных единицах валюты "payment_description": "Тестовый платёж", // Описание платежа. Не обязательный, но полезный параметр }
Первые четыре параметра в данном примере являются минимально необходимыми и обязательными для любой оплаты. Также могут использоваться и другие. Подробнее .
Чтобы заверить сформированную заявку, её следует подписать. Для генерации подписи используется секретный ключ проекта.
/* Заявка с ключом для генерации подписи */ { "project_id": "112", "payment_id": "test_payment_1536", "payment_currency": "RUB", "payment_amount": "31415", "payment_description": "Тестовый платёж", } "secret key": "secret_key" // Секретный ключ проекта, полученный от ECOMMPAY при интеграции /* Подпись к заявке */ "signature": "TSzdE5rJZaA9VyJtnfRI3620jOp2hf4RKwmKoWYjTYAKoGpfXri..."
Подпись генерируется заданным способом на основе заявки с ключом (и не включается в заявку до подписания, чтобы не допускать рекурсии). Подробнее .
Подписанную заявку можно упаковывать в запрос на адрес https://paymentpage.ecommpay.com.
Это URL для открытия платёжной формы с заданными параметрами платежа.
/* Заявка с подписью */ { "project_id": "112" "payment_id": "test_payment_1536" "payment_currency": "RUB" "payment_amount": "31415" "payment_description": "Тестовый платёж" "signature": "TSzdE5rJZaA9VyJtnfRI3620jOp2hf4RKwmKoWYjTYAKoGpfXriFf82MxF..." } /* Запрос для вызова платёжной формы */ 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": "RUB" }, "description": "Тестовый платёж" // Описание платежа }, "account": { // Информация о платёжном средстве "number": "431422******0056", "token": "9cb38282187b7a5b5b91b5814c6b814162741b29c0c486fbbc500cd451abb8b2", "type": "visa", "card_holder": "ADA LOVELACE", "id": 778804, "expiry_month": "11", "expiry_year": "2021" }, "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": "RUB" }, "sum_converted": { // Сумма и валюта операции с учётом настроенных для проекта // правил конвертации "amount": 31415, "currency": "RUB" }, "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, и сверить её с полученной. Подробнее: об оповещениях , о статусах платежей и о статусах операций.