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