Как проводится процесс оплаты?
Процесс оплаты.
Оплата каждой покупки происходит при переходе на специальную страницу оплаты (https://paybox.ru/secure/order.php) на сайте платежной системы.
Покупка происходит по следующей схеме:
- Покупатель, зайдя на сайт клиента, выбирает товар или услугу.
- Клиент формирует заказ, и перенаправляет покупателя HTTP запросом на специальную страницу ПС.
- На странице ПС покупатель выбирает способ платежа и оплачивает покупку.
a. В случае успешной оплаты покупатель перенаправляется обратно на сайт клиента по ссылке, предназначенной для успешных платежей (URL OK).
b. В случае неуспешной оплаты или отказа покупатель перенаправляется по другой ссылке (FAIL URL).
c. В случае успешной оплаты сервер платежной системы посылает GET\POST HTTP запрос на специальный URL, указанный в настройках сайта, содержащий детали транзакции.
В случае, если покупатель выбрал способ оплаты, который не предполагает мгновенного поступления средств на счет клиента (сейчас мгновенные платежи пока недоступны), например СберБанк, то он будет перенаправлен на INFO URL.
В случае успешной оплаты клиентом счета платежная система отсылает на STATUS URL, если таковая опция включена, специальный HTTP запрос тем методом(GET или POST), который указан в настройках. В случае мгновенной оплаты запрос произойдет практически сразу, в случае поступления средств через несколько дней, например при оплате через СберБанк, запрос произойдет при переводе платежа в статус "Оплачен”.
Запрос на совершение платежа.
Для совершения платежа клиент должен перенаправить покупателя с помощью GET или POST запроса на страницу оплаты системы:
https://paybox.ru/secure/order.php
Существует два вида запросов. Первый относится к тем случаям, когда клиент сам задает параметры для оплаты, формируя стоимость и описание на своей стороне, второй тип относится к тем ситуациям, когда клиент хранит базу товаров и услуг в платежной системе в соответствующем разделе.
Оплата товара/услуги из базы в платежной системе.
С помощью этого типа запросов происходит оплата тех товаров или услуг, которые клиент добавил с своем Личном Кабинете. Чтобы добавить товары или услуги, зайдите в раздел "Мои сайты". Рядом с сайтом, к которому вы хотите добавить товары или услуги, нажмите "Управление товарами и услугами". В результате добавления вам станет известен ID продукта в системе.
В этом случае на URL https://paybox.ru/secure/order.php необходимо передать следующие параметры:
1. WS_ID – ID сайта в системе. *
2. PRODUCT_ID – ID продукта в системе. *
3. PAY_METHOD – код метода оплаты (WMR, YM, VISA и т.п.)
4. USER_NAME.
5. USER_COUNTRY.
6. USER_CITY.
7. USER_ZIP.
8. USER_ADDRESS.
9. USER_PHONE.
10. USER_EMAIL.
11. TEST_RESULT. Параметр принимается во внимание только в тестовом режиме, может принимать следующие значения:
a) 0 – результат платежа будет положительный.
b) 1 – результат платежа будет отрицательный.
c) 2 – результат платежа будет положительный с вероятностью 50%.
Все данные для формирования страницы оплаты выбираются из базы данных.
Обязательные поля отмечены *.
Пример простой формы.
<form method="post" action="https://paybox.ru/secure/order.php">
<input type="hidden" name="WS_ID" value="000000">
<input type="hidden" name="AMOUNT" value="100">
<input type="hidden" name="COMMENTS" value="Новая покупка">
<input type="submit" name="submit" value="Оплатить!" title="Совершить оплату при помощи платежной системы PayBox!">
</form>
Передача результата исполненного платежа на ваш STATUS URL.
Запрос посылается на указанный в настройках сайта URL указанным методом. Запрос игнорирует предупреждения вашего сайта о том, что SSL сертификат выдан не доверенным лицом. Это необходимо для тех случаев, когда вы захотите передавать данные по SSL протоколу, выдавая сами себе сертификаты.
В запросе передаются следующие параметры:
• SYS_TRANS_ID – ID заказа в платежной системе
• INV_ID – ID заказа в системе клиента (в вашей учетной системе), если он был указан
• AMOUNT – сумма платежа, формат 22.18
• CURRENCY - валюта платежа, трехбуквенный код (RUR,USD и т.д.)
• DATE_INT – дата и время платежа в UNIX формате
• PAY_METHOD – код метода оплаты (WMR, YM, VISA и т.п.) из документации
• USER_NAME
• USER_COUNTRY
• USER_CITY
• USER_ZIP
• USER_ADDRESS
• USER_PHONE
• USER_EMAIL
• USER_IP
• Дополнительные поля, переданные с помощью EXTRA_FIELDS
• HASH – проверочный хэш, гарантирующий, что запрос пришел от нас.
HASH = md5($SYS_TRANS_ID.$INV_ID.$AMOUNT.$CURRENCY.$PAY_METHOD.$SECRET_WORD);
$SECRET_WORD – секретное слово, указанное в настройках сайта.
В результате запроса ваш сервер должен выдать латинскую строку "OK”, как знак того, что запрос принят и распознан. Если наша платежная система не получает результат, то будет произведено несколько повторных запросов по следующему расписанию:
Второй запрос – через 5 минут после первого.
Третий запрос – через 15 минут после второго.
Четвертый запрос – через 30 минут после третьего.
Далее запросы идут через каждый час в течение 24 часов.
Если по окончанию 24 часов ответ от сервера не получен, система направляет информационное письмо об этой ситуации, одно вам, одно – нашим операторам.
Самостоятельная передача параметров может использоваться как в виде формы, так и в виде запроса.
В запросе должны быть переданы следующие параметры:
1. WS_ID – ID сайта в системе. *
2. INV_ID – ID заказа в системе клиента, может состоять из латинских букв, цифр, подчеркивания и дефиса.
3. AMOUNT – сумма к оплате в валюте сайта. *
4. COMMENTS – описание покупки. *
5. PAY_METHOD – код метода оплаты(WMR, YM, VISA и т.п.)
6. USER_NAME.
7. USER_COUNTRY.
8. USER_CITY.
9. USER_ZIP.
10. USER_ADDRESS.
11. USER_PHONE.
12. USER_EMAIL.
13. EXTRA_FIELDS.
В этой переменной необходимо указать через пробел названия тех полей,
которые клиент передаст со своей стороны, и которые будут переданы вновь
при уведомительном запросе на STATUS_URL.
14. TEST_RESULT. Параметр принимается во внимание только в тестовом режиме, может принимать следующие значения:
a. 0 – результат платежа будет положительный.
b. 1 – результат платежа будет отрицательный.
c. 2 – результат платежа будет положительный с вероятностью 50%.
В случае указания параметров USER_*, будут заполнены соответствующие поля в форме на странице оплаты (данные пользователя), в случае указания параметра PAY_METHOD, этот метод оплаты будет отмечен по умолчанию, но покупатель сможет его изменить.
Обязательные для передачи параметры отмечены *.
Примеры платежных форм.
Расширенная форма.
<form action="https://paybox.ru/secure/order.php" method="post">
<table>
<tr>
<td>WS_ID:</td>
<td><input type="text" name="WS_ID" value="ЗДЕСЬ_ИДЕНТИФИКАТОР_ВАШЕГО_САЙТА"></td>
</tr>
<tr>
<td>INV_ID</td>
<td><input type="text" name="INV_ID" value="ЗДЕСЬ_НОМЕР_СЧЕТА_В_ВАШЕЙ_СИСТЕМЕ"></td>
</tr>
<tr>
<td>AMOUNT</td>
<td><input type="text" name="AMOUNT" value="ЗДЕСЬ_СУММА"></td>
</tr>
<tr>
<td>COMMENTS</td>
<td><input type="text" name="COMMENTS" value=""></td>
</tr>
<tr>
<td>PAY_METHOD</td>
<td><input type="text" name="PAY_METHOD" value=""></td>
</tr>
<tr>
<td>USER_FIRST_NAME</td>
<td><input type="text" name="USER_FIRST_NAME" value=""></td>
</tr>
<tr>
<td>USER_SECOND_NAME</td>
<td><input type="text" name="USER_SECOND_NAME" value=""></td>
</tr>
<tr>
<td>USER_LAST_NAME</td>
<td><input type="text" name="USER_LAST_NAME" value=""></td>
</tr>
<tr>
<td>USER_COUNTRY</td>
<td><input type="text" name="USER_COUNTRY" value=""></td>
</tr>
<tr>
<td>USER_CITY</td>
<td><input type="text" name="USER_CITY" value=""></td>
</tr>
<tr>
<td>USER_ZIP</td>
<td><input type="text" name="USER_ZIP" value=""></td>
</tr>
<tr>
<td>USER_ADDRESS</td>
<td><input type="text" name="USER_ADDRESS" value=""></td>
</tr>
<tr>
<td>USER_PHONE</td>
<td><input type="text" name="USER_PHONE" value=""></td>
</tr>
<tr>
<td>USER_EMAIL</td>
<td><input type="text" name="USER_EMAIL" value=""></td>
</tr>
<tr>
<td>TEST_RESULT</td>
<td><input type="text" name="TEST_RESULT" value=""></td>
</tr>
<tr>
<td>EXTRA_FIELDS</td>
<td><input type="text" name="EXTRA_FIELDS" value=""></td>
</tr>
<tr>
<td>EXTRA1</td>
<td><input type="text" name="EXTRA1" value=""></td>
</tr>
<tr>
<td>EXTRA2</td>
<td><input type="text" name="EXTRA2" value=""></td>
</tr>
<tr>
<td>EXTRA3</td>
<td><input type="text" name="EXTRA3" value=""></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="subm" value="Отправить и получить счет!"></td>
</tr>
</table>
</form>
Простая форма с минимумом параметров, но передаваемыми дополнительными сведениями (продажа услуг хостинга).
<form method="post" action="https://paybox.ru/secure/order.php">
<input type="hidden" name="WS_ID" value="000000">
<input type="hidden" name="AMOUNT" value="50">
<input type="hidden" name="COMMENTS" value="Оплата услуг хостинга.">
<input type="hidden" name="EXTRA_FIELDS" value="srok plan">
<input type="text" name="plan" value="Название плана укажите тут">
<input type="text" name="srok" value="Срок в месяцах укажите тут">
<input type="submit" name="submit" value="Оплатить!" title="Совершить оплату при помощи платежной системы PayBox!">
</form>
Причин может быть несколько:
- по счетам не было движений, о которых должны приходить уведомления;
- в настройках сайта не включен режим уведомления на STATUS URL, в качестве которого должен быть указан работоспособный e-mail;
-
не по всем операциям должны приходить уведомления. Например, по
выписанному счету, пока он не оплачен, уведомление не приходит;
-
иногда письма из системы блокируются крупными почтовыми сервисами. В
таких случаях мы решаем эти технические вопросы, на что требуется время.