Передовые инструменты для электронной коммерции
Знакомьтесь, подключайте и настраивайте в точности под ваши задачи
Когда нужна готовая, надёжная
и гибко настраиваемая
платёжная форма
Когда нужен прямой доступ
к платёжному шлюзу с возможностью
тонкой настройки
Когда для сайта на базе 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, и сверить её с полученной. Подробнее: об оповещениях , о статусах платежей и о статусах операций .