Пишем result url так, чтобы система оплаты на сайте работала корректно |
|
---|---|
31 Декабря 2014 23:17 |
|
Кто читал мои предыдущие посты о настройке WebMoney для сайта на прием платежей и подключении его к Мерчанту может задаться вполне логичным вопросом: а как должна выглядеть та самая страница Result URL, которую достаточно поместить в корневой директории своего сайта, чтобы заработала система оплаты? Сразу же отмечу, что это даже не совсем страница, а сравнительно навороченный PHP-скрипт, пример которого представлен ниже:
<?php // Соединение с БД $link = mysqli_connect('', '', '', "tovari");// Если запрос - предварительный, продолжаем IF($_POST['LMI_PREREQUEST']==1) {// Проверяем наличие товара с этим id в БД // Если такого товара нет, появится уведомление об ошибке и работа скрипта будет прервана $query = "SELECT id, cost FROM tovari WHERE id='$_POST[id]'"; $result = mysqli_query($link, $query); $row = mysqli_fetch_row($result); if(!$row[0] or $row[0]=="") { echo "ERR: Такой товар отсутствует"; exit; } // Проверяем наличие подмены суммы // Cравниваем цену товара из БД с переданной Мерчантом // При не совпадении выводим ошибку и заканчиваем скрипт if(trim($row[1])!=trim($_POST['LMI_PAYMENT_AMOUNT'])) {// Проверяем наличие подмены кошелька // При несовпадении кошельков будет отображена ошибка и скрипт прервется if(trim($_POST['LMI_PAYEE_PURSE'])!="Z300000000000") {// Проверяем наличие введенного email пользователя // Если email не содержит символов, прерываем работу скрипта на ошибке if(!trim($_POST['email']) or trim($_POST['email'])=="") {// Если LMI_PREREQUEST отсутствует, значит - это оповещение о платежной операции ELSE {// Устанавливаем $secret_key для хеша $secret_key = "1111222233dFBa";// Совмещаем параметры в строку $common_string=$_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO']. $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].$_POST['LMI_SYS_TRANS_DATE']. $secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM']; // Зашифруем полученную строку по алгоритму SHA256 и переведем ее на верхний регистр $hash = strtoupper(hash("sha256",$common_string));// При несовпадении контрольных сумм прерываем скрипт if($hash!=$_POST['LMI_HASH']) {// Находим нужный товар в БД и вносим его в специально созданную переменную $tovar $link1 = mysqli_connect('', '', '', "tovari");// Подставляем данные покупки в таблицу pokupki $link2 = mysqli_connect('', '', '', "tovari"); $query2 = "INSERT INTO pokupki SET id='$_POST[id]', odate='$_POST[LMI_SYS_TRANS_DATE]', purse='$_POST[LMI_PAYER_PURSE]', email='$_POST[email]', tovar='$tovar'"; $result2 = mysqli_query($link2, $query2); // Отправляем указанный товар на электронную почту покупателя $text = wordwrap("Ваш товар: ".$tovar, 70); Картинки до и после кода иллюстрируют происходящее в браузере до и после выполнения скрипта. Здесь нужно еще выделить несколько моментов. Во-первых, файл "Result URL", находящийся в корне папки сайта на хосте и указываемый в соответствующей графе настроек кошелька, должен иметь расширение ".php", иначе он не будет правильно обработан модулем PHP5 на сервере. Конечно, возможно оформить страницу и в стандартном HTML-представлении, но это уже слегка отходит от темы, не так ли? Во-вторых, должно быть 2 таблицы в одной базе данных: из одной берется название товара, проверяется его цена и так далее; в другую таблицу заносится сам факт покупки (id, дата, название товара и так далее). В вышеприведенном случае БД называется "tovari" (значения '' в команде соединения нужно заменить именем хоста, логином и паролем в именно такой последовательности), а вложенные в нее таблицы - "tovari" и "pokupki". Кошелек и Secret Key, само-собой должны быть заменены собственными значениями, а также подразумевается, что по почте будет отправлен не сам файл книги, а общедоступная ссылка на него (например, генерируемая на сервисе "Dropbox"). Таким вот образом, в скрипте выполняются прием данных с Мерчанта, их обработка через БД и отправка ссылки на книгу покупателю на электронный почтовый ящик (конечно же, при соответствии данных, ведь не зря же чуть ли не половина скрипта предназначена для различных проверок безопасности - ими пренебрегать, удаляя из кода, крайне не рекомендуется).Для каких товаров или услуг вы планируете использовать систему оплаты на сайте? |
|
1 Января 2015 01:32 |
|
нечитаемо, попробуйте картинки по центру поставить
|
|
1 Января 2015 15:52 |
|
Jurij Stealth писал(а): Учел и переформатировал) |
|
1 Января 2015 17:12 |
|
Saa DJ писал(а): мда, лучше не стало) |
|
18 Марта 2015 23:33 |
|
Отличный метод)спасибо автору)
|
|
Последние сообщения:
-
Как заработать на комментариях инстаграм
Недавно начал зарабатывать на комментариях в Insta
-
Максимальный заработок на сайте wmzona!
Максимальный заработок на сайте WMzona зависит от
-
Как заработать деньги на комментариях в
Заработок на комментариях в Instagram — это умный
-
Инструкция. Комментарии в Instagram. Ins
Благодарю за столь детальную и понятную инструкцию
-
подскажите как правильно зарабатывать ту
Когда вы освоитесь на сайте, можно смело начинать