Продажа товара на сайте за WM, принцип работы программ и настройка параметров приема платежей в системе Webmoney Merchant Interface. Часть 1
     
 
Бланки
для
предпринимателей
Для Вас
на сайте:

blankinew.narod.ru
 
     
       
   

Продажа товара на сайте за WM,
принцип работы программ и настройка параметров приема платежей. Часть 1

Большинству вебмастеров есть что продавать на своих сайтах. И для этого вовсе не обязательно устанавливать программы (скрипты) полноценного интернет-магазина, об уязвимости которых так много и увлекательно написано. Для продажи одного или нескольких товаров вполне достаточно использовать простые программы приема платежей на сайте, в просторечии называемые биллинг.
Вполне разумная рекомендация – написать такие программы самостоятельно. Однако и чужие программы приема платежей тоже могут оказаться полезными, хотя бы частично.
Рассмотрим простой пример таких программ приема платежей и выдачи товара на сайте в системе Webmoney Merchant Interface одного электронного товара – в виде файла за WM, без использования баз данных (таких как MySQL). Такие программы продажи товара в дальнейшем могут быть основой и для полноценного интернет-магазина.

Принцип работы программ приема платежей в WM

Для начала есть смысл распечатать полное руководство интерфейса Web Merchant Interface по приему платежей со страницы https://merchant.webmoney.ru/conf/guide.asp Дополнительно будем руководствоваться принципами: «Береженого Бог бережет» и «Подальше положишь, поближе возьмешь».
Итак, мы (продавец) должны сформировать страницу с формой запроса платежа (с условным именем zapros.pl), включающую наши данные (номер продажи, сумму платежа в WM, номер нашего кошелька, признак тестового/рабочего режима и некоторые вспомогательные) и отослать сервису Webmoney Merchant, который возвращает нам эти данные (и данные покупателя) для сравнения и подтверждения на нашу страницу (с программой), с условным именем result.pl. Мы должны вернуть сервису Webmoney Merchant строку ‘YES’, если данные верны, и что-либо другое в противном (действительно противном) случае.
Здесь и в дальнейшем каждый раз запоминаем результат сравнения и используем его при последующих проверках.
Вернув строку ‘YES’, мы даем возможность покупателю продолжить платеж и сервис Webmoney Merchant передает нам в таком случае форму оповещения о платеже на ту же страницу result.pl с этими же и дополнительными данными, позволяющими определить целостность переданных данных и источник данных (Webmoney Merchant ли это). Также передаются данные о внутреннем для Webmoney Merchant номере счета и номере платежа. В руководстве рекомендуется проверить (и мы проверяем) дополнительно сумму платежа, кошелек продавца и режим работы (тестовый/рабочий).
В случае возврата нами чего-либо еще, вместо строки ‘YES’, сервис Webmoney Merchant направляет браузер покупателя на заранее нами подготовленную страницу формы невыполненного платежа (с условным именем fail.pl), на которой мы обязаны сообщить покупателю об ошибке во время прохождения платежа.
Проверив целостность и источник данных и другие рекомендуемые параметры, также сохраним результат сравнения для выдачи/невыдачи товара. Сохраним также и все остальные данные, связанные с номером этой продажи.
В случае успешного выполнения платежа сервис Webmoney Merchant направляет браузер покупателя на заранее подготовленную нами страницу выдачи товара с условным именем success.pl и передает свой внутренний номер счета, платежа и дату совершения продажи, которые мы также сравниваем с полученными ранее и разумеется проверяем успешность предыдущей проверки.
Таким образом до выдачи покупателю товара поступающие данные проходят ряд (цепочку) проверок, и только в случае полного совпадения всех данных покупателю выдается товар. Данные о продаже запоминаются.
Если где-либо проверка оказалась неудачной, товар не выдается, покупателю сообщается об ошибке, даже если сервис Webmoney Merchant направил браузер покупателя на страницу выдачи товара. И в таком случае считаю совершенно необходимым сообщить покупателю свои контактные данные для решения спорной ситуации. Данные о неудачной продаже также запоминаются, кроме случая, когда ошибка произошла в самом начале выполнения платежа и сервис Webmoney Merchant прервал выполнение операции и направил браузер покупателя на страницу ошибки.

Настройка параметров приема платежа на сервисе Webmoney Merchant Interface

В параметрах указываем полные пути к файлам result.pl, success.pl и fail.pl, например для этого сайта (если бы можно было выполнять скрипты) http://blankinew.narod.ru/cgi-bin/result.pl, метод вызова для success.pl и fail.pl - POST. Метод формирования контрольной подписи оповещения о платеже – MD5. Режим обработки платежей – тестовый. Указываем Secret Key для идентификации сервиса Webmoney Merchant, например 9d7brvG3uw8k. Обязательно устанавливаем флаг – Передавать параметры в предварительном запросе. Это позволит сервису Webmoney Merchant убедиться перед выполнением платежа, что сайт продавца работоспособен, а продавцу – что переданные данные в запросе платежа – корректны. Нужно также установить флаг - Активность. И поскольку мы здесь не используем протокол SSL, то не устанавливаем флаг - Высылать Secret Key, а также не устанавливаем флаг - Позволять использовать URL, передаваемые в форме.
И еще нужна такая малость, как персональный аттестат в сервисе Webmoney Merchant, для чего вначале нужно получить начальный аттестат, заполнив форму, затем отослать регистратору копию паспорта, заверенную нотариусом. Стоит это, по-моему, десять американских рублей. Нужен также второй кошелек, с которого будет производится оплата (достаточно начального аттестата).
Общие замечания по программам приема платежей (продажи товара).
Для хранения наших начальных данных и установок (номера продажи и т.д.), промежуточных и конечных данных по каждой продаже будем использовать хэш, хранящийся в файле с условным именем pay (своего рода лог файл). Составим также маленький скрипт, позволяющий просматривать в браузере содержимое этого файла.
Реализуем возможность заплатить за товар несколькими видами валют, самостоятельно определив их курсы (сам себе Центробанк).
Перейти к самим программам приема платежей на Perl.

   
Дмитрий Рассанов
2014