|
Сайт Город Рязань | Главная Помощь Поиск Участники Календарь Текстовая версия форума Сервер Знакомств Чат Рязани |
Здравствуйте Гость ( Вход | Регистрация ) |
Ответить · Новая Тема ·Создать опрос |
Marlik |
Дата: 6.11.2008 - 22:29
|
||||||||
Offline Учёный Профиль Группа: Пользователи Сообщений: 481 Пользователь №: 712 Регистрация: 29.12.2005 |
Всю подробную информацию Вы можете найти на: http://web-developer.pro/ www.webmoney.ru и merchant.webmoney.ru. Относительно недавно появилась возможность оплачивать товары, услуги в интернете посредством безопасных электронных платежей, в отличие от кредитных карт, пин коды которых воровали все кому не лень. Самым распространенным и удобным средством оплаты является конечно-же Webmoney. В этой статье я расскажу Вам как на своем сайте организовать автоматический сбор дензнаков с помощью Web Merchant Interface. Как это работает На этом тестовом примере http://web-developer.pro/ Вы можете убедится насколько это все быстро и моментально и не требует человеческого вмешательства. Примите к сведению что, реально деньги переводятся, стоимость 1 рубль. Основные термины: ПРОДАВЕЦ Продавцом считается участник WebMoney Transfer, принимающий на свой WM-кошелек оплату от других участников системы с помощью сервиса Web Merchant Interface. Предполагается, что продавец принимает оплату за товары или услуги, предоставляемые им через Интернет, и следовательно, имеет собственный веб-сайт. ПОКУПАТЕЛЬ Покупателем считается участник WebMoney Transfer, желающий оплачивать услуги или товары, предлагаемые продавцом через Интернет. Для передачи информации между веб-сайтом ПРОДАВЦА и сервисом Web Merchant Interface используютcя пять основных HTML-формы: Форма запроса платежа - генерируется веб-сайтом продавца для формирования запроса на проведение платежа в сервисе Web Merchant Interface и передачи его через веб-браузер покупателя. Форма предварительного запроса - генерируется сервисом Web Merchant Interface для передачи параметров предварительного запроса на выполнение платежа на веб-сайт продавца, если установлен флаг Передавать параметры в предварительном запросе. Если флаг не установлен - не используется (запрос выполняется без параметров). Запрос передается без использования веб-браузера покупателя. Форма оповещения о платеже - генерируется сервисом Web Merchant Interface для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя. Форма выполненного платежа - генерируется сервисом Web Merchant Interface в случае успешного выполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя. Форма невыполненного платежа - генерируется сервисом Web Merchant Interface в случае невыполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя. Итак, поподробнее, ПРОДАВЕЦ генерирует или показывает ПОКУПАТЕЛЮ, уже заранее готовую форму с ссылкой(Форма запроса платежа). ПОКУПАТЕЛЬ кликает по ссылке и его перебрасывает на сайт Мерчанта, Мерчант проверяет все данные ПОКУПАТЕЛЯ. Затем Мерчант делает запрос на сайт продавца(Форма предварительного запроса), тут лучше проверить параметры с которыми Мерчант сделал запрос. Далее после того как проверили все параметры, возвращаем YES, если что-то пошло не так, то возвращаем что-то другое, например Строку с ошибкой, и это Мерчант покажет ПОКУПАТЕЛЮ и соответственно платеж не пройдет. После того как Мерчант получил YES, он забирает дензнаки у ПОКУПАТЕЛЯ и передает их ПРОДАВЦУ, соответственно уведомляя об этом ПРОДАВЦА(Форма оповещения о платеже). Ну и самое несложное, это Форма выполненного платежа и Форма невыполненного платежа, там тоже передаются параметры но это уже не суть важно, процесс завершился, можно просто создать две html-страницы ok.html и bad.html с соответствующей переадресацией на главную страницу сайта. Вот как выглядит Форма запроса платежа, это обычная html-страница, но в ней в скрытом поле(hidden) содержатся параметры запроса к мерчанту:
LMI_PAYMENT_AMOUNT Сумма платежа, которую продавец желает получить от покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой. LMI_PAYMENT_DESC Описание товара или услуги. Формируется продавцом. Если присутствует, добавляется в назначение платежа в операцию перевода WM. LMI_PAYMENT_NO В этом поле продавец задает номер покупки в соответствии со своей системой учета. LMI_PAYEE_PURSE Кошелек продавца, на который покупатель должен совершить платеж. Формат - буква и 12 цифр. LMI_SIM_MODE Режим тестирования, если 0 или отсутствует, для всех тестовых платежей сервис будет имитировать успешное выполнение, если в 1, для всех тестовых платежей сервис будет имитировать выполнение с ошибкой (платеж не выполнен), ну и в 2 около 80% запросов на платеж будут выполнены успешно, а 20% - не выполнены. Об остальных полях читайте на сайте merchant.webmoney.ru Об остальных полях читайте на сайте merchant.webmoney.ru Теперь об интересном, все поля формы, не имеющие в названии префикса "LMI_", не обрабатываются сервисом Web Merchant Interface и передаются на веб-сайт продавца после выполнения платежа. Таким образом можно положить в скрытое поле какое-то значение и потом его проверить. Для того что-бы контролировать процесс необходимо где-то сохранять данные о платеже. Можно использовать какую-нибудь БД. Можно просто сохранить в файлик на сервере. Я для этих целей использовал модуль Session.pm. Я создавал сессию минут на двадцать, что вполне достаточно, для совершения покупки и сохранял различные параметры ПОКУПАТЕЛЯ в неё, а в Форму запроса платежа вставлял идентификатор сессии, таким образом можно контролировать ПОКУПАТЕЛЯ на всей стадии проведения платежа. В принципе все видно в этом коде:
Вот Форма предварительного запроса. Параметр <Result URL> выставляется в настройках кошелька, на сайте Мерчанта, но об этом позже.
LMI_PREREQUEST Индикатор предварительного запроса, выставлен в 1. По нему мы узнаем что это предварительный запрос. LMI_PAYMENT_AMOUNT Сумма платежа, которую продавец желает получить от покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой. LMI_PAYMENT_NO В этом поле продавец задает номер покупки в соответствии со своей системой учета. LMI_PAYEE_PURSE Кошелек продавца, на который покупатель должен совершить платеж. Формат - буква и 12 цифр. LMI_MODE Флаг тестового режима, если в 0, Платеж выполнялся в реальном режиме, средства переведены с кошелька покупателя на кошелек продавца, если в 1, платеж выполнялся в тестовом режиме, средства реально не переводились. LMI_PAYER_WM WM-идентификатор покупателя, совершаюшего платеж. LMI_PAYER_PURSE WM-кошелек покупателя, совершаюшего платеж. Об остальных полях читайте на сайте merchant.webmoney.ru Тут мы должны проверить все параметры и если все правильно, выдать ответ YES Мерчанту. Вот код:
Ну вот в принципе и все, осталось только настроить свой кошелек, идем на merchant.webmoney.ru логинимся в систему, и настраиваем тот кошелёк на который вы хотели принимать платежи. Торговое имя: этот текст будет отображаться при оплате, можно ввести название организации. Secret Key: здесь можно ввести пароль, да позаковыристие, этот параметр знает только Мерчант и Вы, можно использовать при проверке параметров запроса, например : afdjkDdfngiuF{fhlgiukUJkf'hJgiurlkehgiUJurhghearonvkernhiuhvyrhghEJV. Result URL: тут вставляем путь к нашему скрипту например http://your_site/cgi-bin/result.pl Передавать параметры в предварительном запросе: ставим в этом чекбоксе галочку. Succsess URL: тут вставляем путь к странице ok.html например http://your_site/ok.html в самой странице пишем что все о-кей и переадресуем ПОКУПАТЕЛЯ. Метод вызова Succsess URL: выставляем LINK. Fail URL: тут вставляем путь к странице bad.html например http://your_site/bad.html в самой странице пишем что все плохо и переадресуем ПОКУПАТЕЛЯ. Метод вызова Fail URL: выставляем LINK. Высылать оповещение об ошибке платежа на кипер: ставим галочку, на всякий случай. Метод формирования контрольной подписи: SIGN, хотя это роли не играет, все равно проверку контрольной подписи делать не будете из-за 100 баксов. Тестовый/Рабочий режимы: пока не настроили прием денюжек лучше оставить Тестовый. Активность: ВКЛ. Это что-бы уже тестить можно было, иначе работать не будет. Жмем сохранить. |
||||||||
Рейтинг: (0%) |
|||||||||
· PM · · ·
|
fifa |
Дата: 26.01.2010 - 17:44
|
Offline Новичок Профиль Группа: Пользователи Сообщений: 9 Пользователь №: 8752 Регистрация: 26.01.2010 |
спасибо
|
Рейтинг: (0%) |
|
Kest |
Дата: 22.02.2010 - 00:43
|
Offline Пользователь Профиль Группа: Пользователи Сообщений: 55 Пользователь №: 6261 Регистрация: 29.03.2008 |
спасибо как раз искал подобную информацию
-------------------- |
Рейтинг: (0%) |
|
Опции темы | Ответить · Новая Тема ·Создать опрос |