Первый платеж

Первый платеж

Техническое описание первого платежа


Форма оплаты ВАЖНО!

Для перехода к оплате, Вы должны отправить клиента по форме с параметрами. Для инициализации оплаты, магазин должен отправить покупателя по данному адресу с передачей параметров. Предварительно заполнив параметры (номер счета, сумма, ID проекта)

URL: https://enot.io/pay

Метод отправки: GET/POST

Параметр Тип Описание Обязательно
m int ID магазина в нашей системе +
oa float Сумма к оплате. (Если в сумме есть копейки, то отправляйте их с разделителем "." Пример: 10.28 +
o string ID платежа в вашей системе +
s string Секретный ключ, который требуется сгенерировать (см. генерацию ключа) +
cr string Валюта платежа (RUB, USD, EUR, UAH) (По умолчанию RUB) -
c string Назначение платежа (показывается клиенту при оплате) -
cf string/array Строка, которая будет возвращена в уведомления после оплаты (webhook, callback) (Можно передавать массивом) -
p string Изначально выбрать способ оплаты -
ap int Переадресация сразу на платежную систему (Пока доступно только для QIWI) -
success_url string (max:255) URL куда переадресовать пользователя, после успешной оплаты. (Если не заполнено, значение берется из настроек магазина. Данный параметр в приоритете для редиректа) -
fail_url string (max:255) URL куда переадресовать пользователя, после ошибки при оплате (Если не заполнено, значение берется из настроек магазина. Данный параметр в приоритете для редиректа) -

Пример формы

        <form method='get' action='https://enot.io/pay'>
            <input type='hidden' name='m' value='MERCHANT_ID'>
            <input type='hidden' name='oa' value='PAY_SUM'>
            <input type='hidden' name='o' value='PAY_ID'>
            <input type='hidden' name='s' value='SIGN'>
            <!-- <input type='hidden' name='cf' value='YOUR_PARAMS'> --> <!-- Передача custom field в виде строки -->
            <!-- <input type='hidden' name='cf[NAME_PARAMS]' value='YOUR_PARAMS'> --> <!-- Передача custom field в виде array -->
            <input type="submit" value="Перейти к оплате" />
        </form>

Так же смотрите пример генерации формы на PHP


Пример формы на PHP

Пример настройки формы, на языке PHP. Вы можете использовать свои значения.

         <?php
         $MERCHANT_ID   = 15;                 // ID магазина
         $SECRET_WORD   = 'Секретный ключ';   // Секретный ключ
         $ORDER_AMOUNT  = 10;                 // Сумма заказа
         $PAYMENT_ID    = time();             // ID заказа (мы используем time(), чтобы был всегда уникальный ID)

         $sign = md5($MERCHANT_ID.':'.$ORDER_AMOUNT.':'.$SECRET_WORD.':'.$PAYMENT_ID);  //Генерация ключа
         ?>

         <form method='get' action='https://enot.io/pay'>
         <input type='hidden' name='m' value='<?=$MERCHANT_ID?>'>
         <input type='hidden' name='oa' value='<?=$ORDER_AMOUNT?>'>
         <input type='hidden' name='o' value='<?=$PAYMENT_ID?>'>
         <input type='hidden' name='s' value='<?=$sign?>'>
         <input type="submit" value="Оплатить">
         </form>

Генерация ключа SIGN

Генерация ключа, обязательный параметр. Он требуется для проверки платежа на уникальность и подтверждения, что переход к оплате был с вашего сайта. SIGN ключ должен быть сгенерирован до отправки формы и введен в форму!

Метод генерации: MD5


Параметр Тип Описание Обязательно
$merchant_id int ID магазина в нашей системе +
$order_amount float Сумма к оплате +
$secret_word string Секретный ключ. Указывается в редактировании магазина. (Для SIGN_2, используйте второй секретный ключ) +
$payment_id int ID заказа в вашей системе +

Пример генерации

            $merchant_id = 150;
            $secret_word = 'enot_secret_word';
            $order_amount = 200;
            $payment_id = 99;

        $sign = md5($merchant_id.':'.$order_amount.':'.$secret_word.':'.$payment_id);

Уведомления после оплаты (webhook, callback)

Данное уведомление приходит после успешной оплаты в вашем магазине

Метод прихода данных: POST

Всегда используйте приведение в нижний регистр у параметров.


Параметр Тип Описание
merchant int ID вашего магазина
amount float Сумма заказа
credited float Сумма зачисленная вам на баланс (В рублях)
intid int ID операции в нашей системе
merchant_id string ID операции в вашей системе
sign string Ключ, который вы генерировали до оплаты заказа
sign_2 string Ключ, который сгенерирован, как SIGN, но с секретным ключом №2. Всегда проверяйте данный ключ!
currency string Валюта платежа (RUB, USD, EUR, UAH) (Зависит от валюты магазина. По умолчанию RUB)
payer_details string Реквизиты плательщика (Может быть пустым)
commission float Сумма комиссии при заказе (Зависит от валюты платежа. По умолчанию RUB)
commission_pay string Кто платит комиссию (shop - магазин, client - клиент, 50/50 - 50 на 50)
custom_field string/array Строка или массив который вы передавали в параметр "cf"

Пример ответа

            Array
            (
                [merchant] => 150
                [amount] => 200.00
                [credited] => 196.00
                [intid] => 1545855
                [merchant_id] => 99
                [method] => cd
                [sign] => cd1d6b67f3335038656d9009ab4ecfa9
                [sign_2] => 5a9446513885f52cd8f9ec3066d87992
                [currency] => RUB
                [commission] => 0.00
                [commission_pay] => shop
                [payer_details] => 539175******7523
                [custom_field] => Array
                    (
                        [email] => [email protected]
                        [id_user] => 125454
                    )
            )
        

Пример обработки ответа

            $merchant = $_REQUEST['merchant']; // id вашего магазина
            $secret_word2 = 'enot_secret_word2'; // секретный ключ 2

            $sign = md5($merchant.':'.$_REQUEST['amount'].':'.$secret_word2.':'.$_REQUEST['merchant_id']);

            if ($sign != $_REQUEST['sign_2']) {
                die('bad sign!');
            }

            echo "Good";
            // далее ваш код