close

Вход

Забыли?

вход по аккаунту

?

Быстрое подключение

код для вставкиСкачать
Интернет-эквайринг.
Быстрое подключение
Версия 1.0 rev. 2
Дата изменения: 2013-02-22
Москва, 2013
Технический порядок. Интернет-эквайринг.
Quick Start
2
Содержание:
Введение .............................................................................................................................................. 2
1. Что такое «Интернет-эквайринг»? Интернет-эквайринг от компании Uniteller............................... 2
2. Как работает платёжный сервис Uniteller? ...................................................................................... 4
3. Что нужно, чтобы подключить ваш интернет-магазин к Uniteller? ................................................. 5
4. Запрос на оплату заказа. Форма оплаты на сайте интернет-магазина ............................................ 5
5. Страница оплаты Uniteller ............................................................................................................... 9
6. Что ещё вы хотели спросить? ......................................................................................................... 13
7. Техническая поддержка пользователей ........................................................................................ 15
ПРИЛОЖЕНИЕ. Примеры PHP-кода .................................................................................................... 16
Пример PHP-кода на странице оплаты мерчанта...................................................................................16
Пример PHP-кода обработки уведомления с сервера Uniteller об изменении статуса платежа ......18
Пример PHP-кода отмены платежа по RRN ............................................................................................19
Введение
Здравствуйте, уважаемые владельцы интернет-магазинов!
Если вы решили организовать приём оплат банковскими картами и электронными деньгами
на вашем сайте, но пока ещё точно не знаете, что же для этого нужно, этот документ предназначен
именно для вас!
В компании Uniteller мы постоянно думаем о том, как сделать сотрудничество для наших
клиентов (мерчантов) лёгким и комфортным. Мы создали эту краткую инструкцию по подключению к
нашему сервису и постарались в простой и доступной форме рассказать, как работает платёжный
сервис Uniteller (Юнителлер), что же необходимо сделать, чтобы легко и быстро к нему
подключиться?
Если этот краткий гайд не ответит на какие-либо ваши вопросы общего или технического
характера, смело обращайтесь к нам, и мы вышлем вам солидных размеров документ «Технический
порядок. Интернет-эквайринг», в котором максимально полно и подробно расписаны все
технические возможности сервиса, всё, что может понадобиться вашим техническим специалистам,
чтобы выжать из Uniteller по максимуму.
1. Что такое «Интернет-эквайринг»?
Интернет-эквайринг от компании Uniteller
Интернет-эквайринг — это услуга, которая позволяет принимать платежи по банковским
картам и электронным деньгам за товары и услуги прямо на сайте.
Если у вашей компании есть сайт и есть желание и необходимость организовать на этом сайте
оплату ваших товаров или услуг с помощью пластиковых карт (VISA, MasterCard и др.) или
Технический порядок. Интернет-эквайринг.
Quick Start
3
электронных денег (WebMoney, Яндекс.Деньги и др.), вам просто необходим интернетэквайринг! Мы поможем вам подключить данную услугу и предоставим всю необходимую
поддержку.
Компания Uniteller — это мощная команда программистов и коммерсантов, работающая над
общей целью — предоставлять безупречные по качеству услуги интернет-эквайринга. Безупречность
базовых услуг в отрасли и непрерывное наращивание функционала нашего сервиса, предложение
уникальных возможностей, так необходимых на рынке!
Мы создали наш продукт процессинга платежей более 4 лет назад и 365 дней в году он
безупречно обслуживает процессинговый центр Uniteller. Мы гордимся им, платёжный сервис
Uniteller определяет нашу деловую репутацию на рынке.
Что мы предлагаем?
Мы организуем прием оплат на вашем сайте банковскими картами самых востребованных
международных платежных систем в России - VISA, MasterCard, а также, при
необходимости, подключим прием оплат банковских карт JCB, Diners Club и ChinaUnionPay.
Мы организуем прием оплат на вашем сайте самыми популярными валютами электронных
платёжных систем: QIWI Кошелек, Яндекс.Деньги, WebMoney WMR, Евросеть, EasyPay,
MoneyMail, Platezh.ru, RBK Money, WebCreds, PayPal, Деньги@Mail.Ru.
Ваши клиенты могут платить и со счёта своего мобильного телефона — мобильный платёж
МТС, Мегафон, Билайн.
Вы сможете отслеживать и администрировать все операции и платежи на вашем сайте
через ваш Личный кабинет — специальный сайт с широкими возможностями мониторинга
и администрирования платежей.
Мы предоставляем круглосуточную техническую поддержку по телефону и электронной
почте для вас и ваших Покупателей.
А также:
Широкие возможности настройки страниц оплаты, демонстрируемых Покупателю. Т.е. Вы
можете кастомизировать страницу оплаты на нашем сервере с стиле дизайна вашего
сайта.
Проведение платежей с предварительной авторизацией.
Поддержка платежей по расписанию (рекуррентные платежи).
Предварительная регистрация банковских карт для упрощения последующих платежей по
ним.
Интеграция с популярными системами бронирования и продажи авиабилетов.
Технический порядок. Интернет-эквайринг.
Quick Start
4
2. Как работает платёжный сервис Uniteller?
Обработка всех платежей производится в процессинговом центре Uniteller. Серверы
процессинга размещены в специальном дата-центре, платёжный сервис Uniteller сертифицирован на
соответствие требованиям стандарта PCI DSS 2.0 (основной стандарт по защите данных при
электронных платежах), что подтверждается ежегодным аудитом.
Кратко расскажем, как работает платёжный сервис Uniteller. Основные этапы платежа
изображены на рис. 1.
Рис. 1 — Краткая схема проведения платежа через сервис Uniteller
Этап 1: Сайт вашего интернет-магазина. Именно здесь ваш Покупатель выбирает нужный товар и
кладёт его в виртуальную корзину.
Этап 2: Покупатель закончил выбор товара и переходит на страницу корзины. В его корзине
отобраны позиции, которые он намерен оплатить. Есть товар, известна его стоимость, и есть
намерение его оплатить — именно это мы называем заказом. Сервис Uniteller, интегрированный с
вашим сайтом, готов провести оплату этого заказа - вам лишь необходимо передать информацию о
заказе на наш сервер — запрос на оплату заказа. Это очень просто! В пункте 4 "Запрос на оплату
заказа" мы указали все необходимые шаги.
Этап 3: Сервер Uniteller получил от вас запрос на оплату заказа. С этого момента и только на время
оплаты ваш Покупатель, практически незаметно для себя, общается уже с нашим сервисом —
Покупатель перенаправляется на нашу защищённую страницу оплаты, чтобы окончательно выбрать
платёжный инструмент (банковская карта или электронные деньги) и ввести его конфиденциальные
реквизиты.
Этап 4: Сервис Uniteller производит оплату вашего заказа и контролирует весь процесс оплаты: то
есть от получения запроса на оплату до списания денежных средств со счёта Покупателя и
зачисления их на счёт вашего магазина.
Для вас этот этап проходит быстро и продуктивно, а для нас это большая и ответственная работа:
мы защищаем ваши платежи от мошеннических операций;
наш сервис интегрированы со множеством банков-эквайеров, осуществляющих списание денег;
мы осуществляем техническую поддержку, оперативно помогая вам и вашим Покупателям в
случае возникновения каких-либо вопросов.
Технический порядок. Интернет-эквайринг.
Quick Start
5
3. Что нужно, чтобы подключить ваш
интернет-магазин к Uniteller?
Подключение вашего интернет-магазина к платёжному сервису Uniteller не потребует от вас
дополнительных финансовых вложений и пройдет достаточно быстро.
Отправьте запрос на подключение в наш отдел продаж sales@uniteller.ru или позвоните + 7
(495) 987 19 60. Мы будет рады знакомству с Вами!
Подпишите два договора: с Uniteller и банком-эквайером на оказание услуг по
информационно-технологическому сопровождению приёма банковских карт. Мы
продоставим вам необходимую поддержку при подписании договора с банкомэквайром.
Получите идентификатор вашего интернет-магазина - MERCHANT_ID - в системе
Uniteller. Мы сами свяжемся с вами и сообщим ваш идентификатор.
Разместите на сайте вашего интернет-магазина форму оплаты для формирования запроса
оплаты заказа, направляемого на сервер Uniteller. В пункте 4 "Запрос на оплату заказа."
мы указали все необходимые шаги.
Проведите пробный платёж на специально разработанной тестовой среде платежей
Uniteller.
Вы готовы принимать платежи на сайте вашего интернет-магазина! Мы переключаем ваш
интернет-магазин на «боевую» систему процессинга платежей, а вы сможете полностью
сосредоточиться на коммерческих вопросах вашего бизнеса.
Процесс достаточно быстрый и простой! И, конечно, мы будем вам помогать!
4. Запрос на оплату заказа.
Форма оплаты на сайте интернет-магазина
Платёжный сервис Uniteller узнаёт о необходимости обработать ваш платёж из запроса
оплаты заказа. Это общеизвестный в Интернете POST-запрос, направленный на специальный адрес
нашего сервера (https://wpay.uniteller.ru/pay/) и содержащий обязательную, а возможно и
дополнительную информацию, необходимую для проведения платежа.
Обычно, данные для запроса оплаты формируются на сайте вашего интернет-магазина с
помощью HTML-формы. Поля этой формы можно сделать скрытыми, чтобы они не нарушали дизайн
страниц. HTML-форма может располагаться, например, на странице «Корзина», а запрос на оплату
заказа отправляться при нажатии Покупателем кнопки
.
Технический порядок. Интернет-эквайринг.
Quick Start
6
Вот пример шаблона HTML-формы оплаты:
<form action="https://wpay.uniteller.ru/pay/" method="POST">
<input type="hidden" name="Shop_IDP" value="Ваш Shop_ID">
<input type="hidden" name="Order_IDP" value="Ваш Order_ID">
<input type="hidden" name="Subtotal_P" value="Сумма платежа">
<input type="hidden" name="Lifetime" value="Время жизни формы">
<input type="hidden" name="Signature" value="Подпись платежа">
<input type="submit" name="Submit" value="Оплатить">
<input type="hidden" name="URL_RETURN_OK" value="http://example.com/pay/ok/">
<input type="hidden" name="URL_RETURN_NO" value="http://example.com/pay/fail/">
<input type="hidden" name="MeanType" value="0">
<input type="hidden" name="EMoneyType" value="0">
</form>
Кодировка символов на странице с размещённой формой и самого содержимого полей
формы должна быть UTF-8.
Форма оплаты может содержать как обязательные, так и необязательные параметры.
Обязательными (а зачастую и достаточными) параметрами являются только указанные в табл. 1. В
табл. 2 для краткости перечислена только часть возможных необязательных параметров. Полный их
список с подробными пояснениями приведён в документе «Технический порядок.
Интернет-эквайринг».
Табл. 1 — Обязательные параметры формы оплаты на сайте интернет-магазина
№
Параметр
Описание
1
Shop_IDP
Идентификатор точки продажи (интернет-магазина) в системе Uniteller.
В Личном кабинете этот параметр называется Uniteller Point ID и его
значение доступно на странице «Точки продажи компании» (пункт
меню «Точки продажи») в столбце Uniteller Point ID.
2
Order_IDP
Номер заказа в системе расчётов интернет-магазина, соответствующий
данному платежу. Может быть любой непустой строкой максимальной
длиной 127 символов, не может содержать только пробелы.
Subtotal_P
Сумма покупки в валюте, оговоренной в договоре с банком-эквайером. В
качестве десятичного разделителя используется точка, не более 2 знаков
после разделителя. Например, 12.34.
3
Подпись формы оплаты, гарантирующая неизменность критичных
данных оплаты (суммы, Order_IDP). Параметр Signature рассчитывается
при помощи хеш-функции md5 от значений самых ключевых
параметров, которые могут быть включены в запрос оплаты. Обращаем
ваше внимание на то, что правильный подсчёт значения параметра
Signature абсолютно необходим для проведения оплаты.
4
Signature
Signature вычисляется по следующему алгоритму:
Signature = uppercase(md5(md5(Shop_IDP) + & + md5(Order_IDP) +
& + md5(Subtotal_P) + & + md5(MeanType) +& + md5(EMoneyType) +
& + md5(Lifetime) + & + md5(Customer_IDP) + & +
md5(Card_IDP) + & + md5(IData) +& + md5(PT_Code) + & +
md5(password)))
Технический порядок. Интернет-эквайринг.
№
Параметр
Quick Start
7
Описание
где:
1
password — пароль из раздела «Параметры Авторизации»
Личного кабинета системы Uniteller.
'+' — операция конкатенации текстовых строк (все строки
преобразуются в байты в кодировке ASCII).
'&' — символ «разделитель полей». Если необязательный
параметр не передаётся в форме, соответствующий этому полю
(следующий за ним) знак '&' сохраняется в строке для
вычисления Signature.
md5 — криптографическая хеш-функция (символы в нижнем
регистре). При реализации подсчёта md5 вам может помочь
форма, размещённая в Интернете по адресу:
http://www.adamek.biz/md5-generator.php.
uppercase — функция приведения к верхнему регистру.
MeanType — платёжная система банковской карты. Если
MeanType не передаётся в форме, то следует его принять пустой
строкой1.
EMoneyType — тип электронной валюты. Если EMoneyType не
передаётся в форме, то следует его принять пустой строкой1.
Lifetime — время жизни формы оплаты в секундах. Если Lifetime
не передаётся в форме, то следует его принять пустой строкой1.
Customer_IDP — идентификатор покупателя, используемый
некоторыми интернет-магазинами. Если Customer_IDP не
передаётся в форме, то следует его принять пустой строкой1.
Card_IDP — идентификатор зарегистрированной карты. Если
Card_IDP не передаётся в форме, то следует его принять пустой
строкой1.
IData — «длинная запись». Если IData не передаётся в форме, то
следует его принять пустой строкой1.
PT_Code – тип платежа. Если PT_Code не передается в форме, то
следует его принять пустой строкой1.
В этом случае в последовательность подставляется значение md5 от пустой строки, равное
d41d8cd98f00b204e9800998ecf8427e
Технический порядок. Интернет-эквайринг.
№
Quick Start
Параметр
8
Описание
URL_RETURN 2 — URL страницы, на которую должен вернуться
Покупатель после осуществления платежа в системе Uniteller. Длина до
255 символов.
5
Параметр
URL_RETURN или
два параметра:
URL_RETURN_OK,
URL_RETURN_NO
URL_RETURN_OK 2 — URL страницы, на которую должен вернуться
Покупатель после успешного осуществления платежа в системе Uniteller.
Если этот параметр задан, то он является более приоритетным, чем
параметр URL_RETURN. Длина до 255 символов.
URL_RETURN_NO 2 — URL страницы, на которую должен вернуться
Покупатель после неуспешного осуществления платежа в системе
Uniteller. Если этот параметр задан, то он является более приоритетным,
чем параметр URL_RETURN. Длина до 255 символов.
Табл. 2 — Необязательные параметры формы оплаты на сайте интернет-магазина
№
Параметр
Lifetime
Время жизни формы оплаты в секундах, начиная с момента её показа.
Должно быть целым положительным числом. Если Покупатель
использует форму дольше указанного времени, то форма оплаты будет
считаться устаревшей, и платёж не будет принят. Покупателю в этом
случае будет предложено вернуться на сайт Мёрчанта для повторного
выполнения заказа.
2
BillLifetime
Срок жизни заказа оплаты в электронной платёжной системе в часах (от
1 до 1080 часов). Значение параметра BillLifetime учитывается только для
QIWI-платежей. Если BillLifetime не передаётся, то для QIWI-платежа срок
жизни заказа на оплату устанавливается по умолчанию — 72 часа.
3
Language
(2 символа)
Код языка интерфейса платёжной страницы. Может быть en или ru.
4
Comment
Комментарий к платежу.
(до 1024 символов)
1
Есть
пример
2
Описание
См. «Пример PHP-кода на странице оплаты мерчанта» на стр.16 .
Примечание: Не допускается частичное кодирование спецсимволов в тексте URL. Адрес должен задаваться
или полностью в некодированном виде (например, https://domen.ru/account/shopnumber/), или полностью в
кодированном виде (http%3A%2F%2Fdomen.ru%2Faccount%2Fshopnumber%2F)
Технический порядок. Интернет-эквайринг.
Quick Start
9
5. Страница оплаты Uniteller
В результате запроса оплаты заказа Покупателю будет выведена страница оплаты,
являющаяся частью платёжного сервиса Uniteller.
Система Uniteller поддерживает 3 способа вывода страницы оплаты:
на сайте Uniteller по адресу: https://wpay.uniteller.ru/pay/;
на сайте интернет-магазина через элемент iframe;
на мобильном устройстве, если интернет-магазин имеет сайт, оптимизированный для
вывода на мобильных устройствах.
Здесь мы рассмотрим только первый способ, то есть перенаправление Покупателя на
страницу оплаты, расположенную на сервере Uniteller.
Пример страницы оплаты Uniteller изображён на рис. 2.
Рис. 2 — Пример страницы оплаты банковской картой
В зависимости от переданных в запросе оплаты параметров, а также от индивидуальных
настроек внешнего вида страницы оплаты она может выглядеть иначе, чем на рис. 2. Например,
Покупателю сначала может быть выведена страница с возможностью выбрать на ней форму оплаты
(банковская карта или одна из электронных валют), пример которой изображён на рис. 3.
Технический порядок. Интернет-эквайринг.
Quick Start
10
Рис. 3 — Пример страницы выбора способа оплаты
Если Покупатель интернет-магазина выбрал оплату с помощью одной из электронных валют
(например, Яндекс.Деньги или Мобильный платёж), то ему будет выведена не страница заполнения
реквизитов банковской карты, а страница оплаты выбранной электронной валютой, пример которой
изображён на рис. 4.
Технический порядок. Интернет-эквайринг.
Quick Start
11
Рис. 4 — Пример страницы оплаты электронной валютой
Если на этапе загрузки страницы оплаты возникла ошибка (например, в запросе оплаты заказа
ошибки), то Покупатель увидит страницу «Ошибка загрузки страницы оплаты», изображённую на
рис. 5.
Рис. 5 — Страница «Ошибка загрузки страницы оплаты»
Что происходит дальше?
Покупатель вводит необходимую для осуществления платежа информацию и нажимает
кнопку
. Сервис Uniteller проверяет введённые Покупателем данные и, если проверка
проходит успешно, отправляет платёж в обработку, а Покупателю показывает страницу с результатом
оплаты, изображённую на рис. 6.
Технический порядок. Интернет-эквайринг.
Quick Start
12
Рис. 6 — Страница с результатом оплаты банковской картой
Вся основная информация о платеже, оформленная в виде виртуального чека.
Если Покупателем введена некорректная
соответствующее сообщение об ошибке.
информация,
Всё! Покупатель оплатил покупку. Можно отпускать товар.
то
ему
будет
выведено
Технический порядок. Интернет-эквайринг.
Quick Start
13
6. Что ещё вы хотели спросить?
Как интернет-магазин узнает, что заказ оплачен Покупателем?
В течение нескольких секунд сервис Uniteller пошлёт на ваш сайт уведомление об оплате
заказа. Также мы даём клиентам удобный инструмент — запрос результата авторизации, используя
который вы сами в любой момент можете получить информацию о статусе интересующего вас
заказа.
Есть
пример
См. «Пример PHP-кода обработки уведомления с сервера Uniteller об изменении
статуса платежа» на стр. 18.
(Более детально эта информация предоставлена в документе «Технический порядок.
Интернет-эквайринг».)
Как быстро деньги окажутся на счёте интернет-магазина?
Окончательное списание средств со счёта Покупателя и зачисление их на счёт интернетмагазина осуществляют банки-эквайеры, с которыми интегрирована наша система. У разных
эквайеров списание средств происходит по различным алгоритмам и занимает от секунд (on-line
режим) до суток.
Как наш магазин может отпустить товар Покупателю, если деньги с его счёта
фактически ещё не списаны? И почему Uniteller говорит при этом о том, что заказ оплачен?
Когда Покупатель вводит платёжные реквизиты своей карты и нажимает
,
сумма, необходимая для оплаты данного заказа, моментально резервируется (блокируется) на его
счёте. Только после успешной блокировки средств Покупателя система Uniteller направляет платёж в
дальнейшую обработку и извещает об этом магазин. Если средства на счёте Покупателя
заблокированы, есть все основания считать, что деньги будут успешно списаны в соответствии со
схемой работы банка-эквайера.
А можно платёж отменить и вернуть Покупателю деньги?
Да, можно. На любом этапе оплаты платёж можно отменить и инициировать возврат средств.
Для этого в системе Uniteller предусмотрены все необходимые инструменты. Время, в течение
которого платёж будет возвращён в своё первоначальное состояние, зависит от этапа, до которого он
успел продвинуться. У одних эквайеров возврат средств может проходить on-line (практически
мгновенно), у других занимать до нескольких суток. Также могут быть и другие различия в
зависимости от банка-эквайера, например, одни поддерживают отмену части платежа и
многократные отмены, другие нет.
Для отмены совершённой продажи необходимо выполнить POST- или GET-запрос на адрес:
https://wpay.uniteller.ru/unblock/ с указанием параметров, указанных в табл. 3 и табл. 4.
Технический порядок. Интернет-эквайринг.
Quick Start
14
Табл. 3 — Обязательные параметры запроса отмены платежа
№
1
2
Параметр
Billnumber
Shop_ID
Тип
Описание
12 цифр
Номер платежа в системе Uniteller
Строка до 64 символов
Идентификатор точки продажи в
системе Uniteller. Доступен Мёрчанту
в Личном кабинете в пункте меню
«Точки продажи», столбец Uniteller
Point ID.
3
Login
Строка до 64 символов
Логин, выданный Мёрчанту при
создании учётной записи в системе
Uniteller.
4
Password
80 символов
Пароль, выданный Мёрчанту при
создании учётной записи в системе
Uniteller
Табл. 4 — Необязательные параметры запроса отмены платежа
№
Параметр
Значение по
умолчанию
Тип
Описание
1
Subtotal_P
Число
Сумма
авторизации
Сумма возврата средств. Должна быть
в диапазоне от 0,01 руб. до суммы
платежа включительно. В качестве
десятичного разделителя используется
точка.
2
Currency
3-символа
Код валюты
авторизации
Код валюты отмены или возврата
средств. Может быть использован
только код валюты авторизации.
3
RVRReason
1 (отказ магазина
от операции),
2 (отказ держателя
1
от операции),
3 (мошенническая
операция)
Причина отмены операции
4
Language
2 символа
ru
Язык выдачи результатов
Format
1 (CSV),
2 (WDDX),
3 (XML),
4 (SOAP).
1
Формат выдачи результата.
В формате 1 поля разделены точкой с
запятой.
5
6
S_FIELDS
Набор информационных полей,
пустое значение
возвращаемых в ответе на запрос.
(или не
Формат представления информации в
передаётся) —
ответе определяется параметром
все поля
Format.
Кроме прямого запроса операция отмены платежа может быть инициирована через Личный
кабинет системы Uniteller.
См. «Пример PHP-кода отмены платежа по RRN» на стр. 19.
Есть
Технический порядок. Интернет-эквайринг.
Quick Start
15
пример
(Более детально эта информация предоставлена в документе «Технический порядок.
Интернет-эквайринг».)
Вы упоминали Личный кабинет системы. Что он из себя представляет?
Личный кабинет платёжной системы Uniteller — это специализированный сайт с набором
страниц и интерактивных форм, через которые наши клиенты работают с системой. Реквизиты для
авторизации в Личном кабинете Uniteller передаются клиенту при подключении первой точки
продажи.
Главное окно Личного кабинета показано на рис. 3.
Учётные данные
пользователя
Область данных
Главное меню
Личного
кабинета
Рис. 7 — Главное окно Личного кабинета
Нашим клиентам предоставляется отдельный документ «Личный кабинет платёжной
системы Uniteller. Руководство сотрудника мерчанта», в котором подробно описаны все функции
Личного кабинета и приёмы работы в нём.
7. Техническая поддержка пользователей
Общую информацию о компании Uniteller вы можете найти на официальном сайте по адресу:
http://uniteller.ru/, или позвонив по телефону +7 (495) 987-19-60.
Техническая поддержка пользователей осуществляется Службой технической поддержки
компании Uniteller круглосуточно по телефонам +7 (495) 987-19-60, 8-800-100-19-60 или электронной
почте support@uniteller.ru.
До встречи!
С уважением,
Команда Uniteller
Технический порядок. Интернет-эквайринг.
Quick Start
16
ПРИЛОЖЕНИЕ. Примеры PHP-кода
При возникновении вопросов по сути приведённых примеров рекомендуется обращаться к
документу «Технический порядок. Интернет-эквайринг».
Пример PHP-кода на странице оплаты мерчанта
<?php
function getOrderID() {
// запрос в БД на получение нового значения платежа в переменную $orderID
...
// возврат полученного нового значения
return $orderID;
}
function getFromSession( $name ) {
// получение значения переменной по ее имени из сессии в переменную $result
...
return $result;
}
function getSignature( $Shop_IDP, $Order_IDP, $Subtotal_P, $MeanType, $EMoneyType,
$Lifetime, $Customer_IDP, $Card_IDP, $IData, $PT_Code, $password ) {
$Signature = strtoupper(
md5(
md5($Shop_IDP) . "&" .
md5($Order_IDP) . "&" .
md5($Subtotal_P) . "&" .
md5($MeanType) . "&" .
md5($EMoneyType) . "&" .
md5($Lifetime) . "&" .
md5($Customer_IDP) . "&" .
md5($Card_IDP) . "&" .
md5($IData) . "&" .
md5($PT_Code) . "&" .
md5($password)
)
);
return $Signature;
}
// Инициализация параметров для формы платежа
// Параметры могут извлекаться из БД или из других хранилищ данных, либо содержаться
внутри кода
$Shop_IDP = "5001300"; // идентификатор точки продажи
$Lifetime = 3600; // время жизни формы оплаты в секундах
$Order_ID = getOrderID();
// Сумма для оплаты и идентификатор зарегистрированного пользователя могу храниться в
данных сессии
$Subtotal_P = getFromSession("Subtotal_P");
$Customer_IDP = getFromSession("Customer_IDP");
// Параметры из справочников, описанных в Техническом порядке
$MeanType = 0; // платежная система кредитной карты (0 - любая)
$EMoneyType = 0; // тип электронной валюты (0 - любая)
// Адреса возврата после успешной и неуспешной оплат покупателями
$URL_RETURN_OK = "http://example.com/pay/ok/";
$URL_RETURN_NO = "http://example.com/pay/fail/";
$password = "adadadadadadaddasdasdasdasdasdsadsd"; // пароль из ЛК Uniteller
// Подпись для формы, вместо неиспользуемых параметров передаются пустые строки
$Signature = getSignature( $Shop_IDP, $Order_ID, $Subtotal_P, $MeanType, $EMoneyType,
$Lifetime, $Customer_IDP, "", "", "", $password );
Технический порядок. Интернет-эквайринг.
Quick Start
?>
<form action="https://wpay.uniteller.ru/pay/" method="POST">
<input type="hidden" name="Shop_IDP" value="<?=$Shop_IDP?>">
<input type="hidden" name="Order_IDP" value="<?=$Order_ID?>">
<input type="hidden" name="Subtotal_P" value="<?=$Subtotal_P?>">
<input type="hidden" name="Lifetime" value="<?=$Lifetime?>">
<input type="hidden" name="Customer_IDP" value="<?=$Customer_IDP?>">
<input type="hidden" name="Signature" value="<?=$Signature?>">
<input type="submit" name="Submit" value="Оплатить">
<input type="hidden" name="URL_RETURN_OK" value="<?=$URL_RETURN_OK?>">
<input type="hidden" name="URL_RETURN_NO" value="<?=$URL_RETURN_NO?>">
<input type="hidden" name="MeanType" value="<?=$MeanType?>">
<input type="hidden" name="EMoneyType" value="<?=$EMoneyType?>">
</form>
17
Технический порядок. Интернет-эквайринг.
Quick Start
18
Пример PHP-кода обработки уведомления с сервера Uniteller
об изменении статуса платежа
<?php
function checkSignature( $Order_ID, $Status, $Signature ) {
$password = "adadadadadadaddasdasdasdasdasdsadsd"; // пароль из ЛК Uniteller
// проверка подлинности подписи и данных
return ( $Signature == strtoupper(md5($Order_ID . $Status . $password)) );
}
// Пришел callback с параметрами Order_ID, Status, Signature
if ( count($_POST) && isset($_POST["Order_ID"]) && isset($_POST["Status"]) &&
isset($_POST["Signature"]) ) {
// проверка подписи
if ( checkSignature( $_POST["Order_ID"], $_POST["Status"], $_POST["Signature"] ) )
{
// подпись сошлась
... // какие-то действия: сохранение полученных данных в БД
} else {
// не сошлась подпись
... // какие-то действия по обработке этого случая
}
}
?>
Технический порядок. Интернет-эквайринг.
Quick Start
19
Пример PHP-кода отмены платежа по RRN
<?php
function unblock($Shop_ID,$Login,$Password,$Billnumber) {
// Format=1 - получить данные в виде строки с разделителем ";", можно получать
данные и в других форматах (см. ТП), например, XML, тогда обработка полученного ответа
изменится
$sPostFields =
"Shop_ID=".$Shop_ID."&Login=".$Login."&Password=".$Password."&Format=1&Billnumber=".$Bill
number."&S_FIELDS=Status;ApprovalCode;BillNumber";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://wpay.uniteller.ru/unblock/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $sPostFields);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
$curl_response = curl_exec($ch);
$curl_error = curl_error($ch);
$data = array(); // результат для возврата
if ($curl_error) {
// обработка ошибки обращения за отменой платежа
} else {
// данные получены
// обработка данных из переменной $curl_response
$arr = explode( ";", $curl_response );
if ( count($arr) > 2 ) {
$data = array(
"Status"
=> $arr[0]
, "ApprovalCode" => $arr[1]
, "BillNumber"
=> $arr[2]
);
} else {
// что-то не так, обработчик полученного ответа
...
}
}
return $data;
}
// Параметры могут извлекаться из БД или из других хранилищ данных, либо содержаться
внутри кода
$Shop_ID = "5001300"; // идентификатор точки продажи
$Login = 1; // логин из ЛК Uniteller
$Password = "adadadadadadaddasdasdasdasdasdsadsd"; // пароль из ЛК Uniteller
$Billnumber = "100100100100"; // номер платежа в системе Uniteller
// отмена платежа с номером из переменной $Billnumber
$data = unblock( $Shop_ID,$Login,$Password,$Billnumber );
if (!count($data)) {
// отмена не произошла
... // какие-то действия
} else {
// проверка статуса
if ($data["Status"] == "canceled") {
// успешная отмена
... // какие-то действия
} else {
// что-то не так
... // какие-то действия
}
}
?>
Документ
Категория
Типовые договоры
Просмотров
65
Размер файла
1 266 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа