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