Платежные системы в Joomla!: Paypal и Webmoney

paypal webmoney

Вы хотели внедрить в компонент, использующий платежную систему Paypal еще и Webmoney? Эта статья поможет вам!

Информация для разработчика | Файлы (примеры использования)

Информация для разработчика | Файлы (примеры использования)

В данной статье мы рассмотрим простейшую систему внедрения платежей на сайт, аналоги которой есть как у Paypal, так и у Webmoney.

ВЗАИМОДЕЙСТВИЕ САЙТ----->СЕРВИС

Как это работает?

В нужное место компонента, где нужно чтобы человек совершил оплату вставляется html форма, при использовании которой человека перебрасывает на страницу оплаты сервиса Paypal или Webmany. В через html форму с помощью переменных компонента вставляются платежные данные. Это: сумма платежа, описание платежа, номер счета, внутренний номер покупки и еще некоторые. Эта информация передается на страницу оплаты сервиса. Покупатель попадая на эту страницу выбирает способ оплаты и получает возможность оплатить то что он выбрал на сайте (а информация об этом была передана через форму).

После оплаты владельцу счета куда была произведена оплата приходит email с отчетом( также например в Webmoney в комментариях к счету можно использовать переменные- то есть в комментарии можно указать номер счета, сумма которую должны были заплатить или еще какие-либо данные из переменных компонента) .

Внимание! Данная система является полуавтоматической! То есть есть взаимодействие:

сайт------> сервис (передача информации о платеже который будет совершен)

Но нет обратного взаимодействия:

сервис-----> сайт (передача информации о платеже который был совершен)

Эта схема является наиболее безопасной! (в случае с передачей информации о совершенном платеже скрипту возможна подмена информации, взлом итп).

Взаимодействию сервис-----> сайт посвящена вторая часть нашей статьи.

Рассматриваемые сервисы:

Web Merchant Interface - интерфейс позволяющий быстро и с минимальными затратами дополнить свой веб-сайт или домашнюю страничку всем необходимым для того, чтобы начать принимать WM за предоставляемые вами товары или услуги.

PayPal Shopping Cart - use basic HTML to accept credit card, bank account, and PayPal payments with the Buy Now Buttons, Donations, Subscriptions, PayPal Shopping Cart, Cart Upload

Работа с системой заключается в оперировании с html формами. Основными, на которых можно понять логику системы и наиболее распространеными являются:

Webmoney: Форма запроса платежа

Генерируется веб-сайтом продавца для формирования запроса на проведение платежа в сервисе Web Merchant Interface и передачи его через веб-браузер покупателя.

Пример кода формы:

<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="12.08">
<input type="hidden" name="LMI_PAYMENT_DESC" value="платеж по счету">
<input type="hidden" name="LMI_PAYMENT_NO" value="1234">
<input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
<input type="hidden" name="LMI_SIM_MODE" value="0">
<input type="hidden" name="FIELD_1" value="VALUE_1">
<input type="hidden" name="FIELD_2" value="VALUE_2">
...
<input type="hidden" name="FIELD_N" value="VALUE_N">
...
</form>

Paypal: PayPal Shopping Cart

PayPal offers a hosted shopping cart that supports adding multiple items to a purchase before checkout.

When a customer clicks the button, the item is added to their shopping cart. They are given the option to return to your website to continue shopping or to proceed to checkout where they will pay with their PayPal account. Create an Add to Cart button for each item on your website.

Important: To protect against malicious users tampering with the button code and submitting an incorrect charge, see Securing Your Website Payment Standard Buttons. Merchants with significant payment volume are required by the PayPal user agreement to take precautions on securing Website Payment Standard Buttons.

You can modify the following code to create your Add to Cart button.

Пример кода формы:

<form target="paypal"
action="https://www.paypal.com/cgi-bin/webscr"
method="post">
<input type="image" src="https://www.sandbox.paypal.com/
en_US/i/btn/x-click-but22.gif"
border="0" name="submit" alt="Make payments with PayPal -
it's fast, free and secure!">
<img alt="" border="0"
src="сайт webmoney
width="1" height="1">
<input type="hidden" name="add" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business"
value=" <a href="mailto:электронная почта">электорнная почта</a> ">
<input type="hidden" name="item_name" value="Store Item 1">
<input type="hidden" name="amount" value="50.00">
<input type="hidden" name="no_shipping" value="2">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="tax" value="0">
<input type="hidden" name="bn" value="IC_Sample">
</form>

Сравнение делается из следующих соображений. Во множестве компонентов используется оплата через Paypal.

Основные отправляемые данные форм в Paypal и Webmoney по типу одни и те же (то есть если вы добавляете один из видов оплаты, можно взять уже используемые переменные компонента из существующего способа оплаты).
Paypal
Webmoney
Описание поля

business
LMI_PAYEE_PURSE
Номер счета на который поступят деньги. В paypal это email, в webmoney цифровой номер с префиксом в начале, указывающим валюту: Z, R, E.

item_name
LMI_PAYMENT_DESC
Текстовое описание услуги или товара. В paypal это название товара, в webmoney его описание.

item_number
LMI_PAYMENT_NO
Внутренний номер покупки продавца

amount
LMI_PAYMENT_AMOUNT
Сумма платежа

Примеры (Исключительно формы оплаты, без объявления переменных, использованных в них):

Форма оплаты в SOBI :

Paypal

<form action="<?php echo $config->payPalUrl;?>" method="post">
<input name="cmd" value="_xclick" type="hidden">
<input name="business" value="<?php echo $config->payPalMail;?>" type="hidden">
<input name="item_name" value="<?php echo $title;?>" type="hidden">
<input name="item_number" value="<?php echo $this->sobi2Id;?>" type="hidden">
<input name="no_shipping" value="1" type="hidden">
<input name="return" value="<?php echo $config->payPalReturnUrl ;?>"
type="hidden">
<input name="no_note" value="1" type="hidden">
<input name="currency_code" value="<?php echo $config->payPalCurrency;?>" type="hidden">
<input name="tax" value="0" type="hidden">
<input name="bn" value="<?php echo $title;?>" type="hidden">
<input name="charset" value="<?php echo $charset;?>" type="hidden">
<input name="amount" value="<?php echo $this->total;?>" type="hidden">
<input src="<?php echo $config->liveSite;?>/components/com_sobi2/images/paypal.jpg"
name="submit" alt="<?php echo _SOBI2_PAY_WITH_PAYPAL;?>" border="0" type="image">
</form>


Webmoney

<form id=pay name=pay method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
<table width="99%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%" align="center">
<input name="LMI_PAYMENT_AMOUNT" type="text" size="3" value="<?php echo $this->total;?>">
<input type="hidden" name="LMI_PAYMENT_DESC" value="Оплата платных полей каталога,
номер заказа <?php echo $this->sobi2Id;?>">
<input type="hidden" name="LMI_PAYMENT_NO" value="="<?php echo $this->sobi2Id;?>"">
<input type="hidden" name="LMI_SIM_MODE" value="0">
<input type="hidden" name="LMI_SUCCESS_URL"
value="http://estate-real.spb.ru/index.php?option=com_sobi2&amp;Itemid=28">
<input type="hidden" name="LMI_SUCCESS_METHOD" value="2">
<input type="hidden" name="LMI_FAIL_URL"
value="http://estate-real.spb.ru/index.php?option=com_sobi2&amp;Itemid=28">
<input type="hidden" name="LMI_FAIL_METHOD" value="2">
<select name="LMI_PAYEE_PURSE" style="min-width:30px;">
<option value="R265873850459">WMR</option>
</select>
</td>
</tr>
<tr>
<td width="100%" align="center">
<br>
<input type="submit" class="button" value="Оплатить">
</td>
</tr>
</table>
</form>

Форма оплаты в EZ reality

Paypal

<form action="https://<?php echo "$domain";?>/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="bn" value="Raptor Services EZ Realty" />
<input type="hidden" name="business" value="<?php echo $paypal_email;?>" />
<input type="hidden" name="item_name" value="<?php echo stripslashes( $premium_name );?>" />
<input type="hidden" name="item_number" value="<?php echo $row->id;?>" />
<input type="hidden" name="amount" value="<?php echo $premium_cost;?>" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="return" value="<?php echo $mosConfig_live_site; ?>
/index.php?option=com_ezrealty&amp;Itemid=<?php echo $Itemid;?>&amp;task=success" />
<input type="hidden" name="cancel_return" value="<?php echo $mosConfig_live_site; ?>
/index.php?option=com_ezrealty&amp;Itemid=<?php echo $Itemid;?>&amp;task=cancel" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="notify_url" value="<?php echo $mosConfig_live_site; ?>
/components/com_ezrealty/upgrade2.ezrealty.ipn.php" />
<input type="hidden" name="currency_code" value="<?php echo $currency;?>" />
<input type="image" src="components/com_ezrealty/images/<?php echo $button_image;?>"
name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
<input type="hidden" name="on0" value="Listing Owner" />
<input type="hidden" name="os0" value="<?php echo $my->id;?>" />
</form>

Форма оплаты в Adeptus donate module

Webmoney

<form id=pay name=pay method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
<table width="99%" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="100%" align="center">
<?php
if ($showlogo == 1) echo '<img src="'.$logo.'" alt="'.$wltxt.'" title="'.$wltxt.'" /><br/>';
if ($wltxt != '' &amp;&amp; $wltxt != NULL) echo $wltxt;
?>
</td>
</tr>
<tr>
<td width="100%" align="center">
<input name="LMI_PAYMENT_AMOUNT" type="text" size="3" value="<?php echo $summ;?>">
<input type="hidden" name="LMI_PAYMENT_DESC" value="<?php echo $descpay;?>">
<input type="hidden" name="LMI_PAYMENT_NO" value="1">
<input type="hidden" name="LMI_SIM_MODE" value="0">
<input type="hidden" name="LMI_SUCCESS_URL" value="<?php echo $successurl;?>">
<input type="hidden" name="LMI_SUCCESS_METHOD" value="2">
<input type="hidden" name="LMI_FAIL_URL" value="<?php echo $errorurl;?>">
<input type="hidden" name="LMI_FAIL_METHOD" value="2">
<select name="LMI_PAYEE_PURSE" style="min-width:30px;">
<option value="<?php echo $wmnum1;?>"><?php echo $wmtype1;?></option>
<option value="<?php echo $wmnum2;?>"><?php echo $wmtype2;?></option>
<option value="<?php echo $wmnum3;?>"><?php echo $wmtype3;?></option>
</select>
</td>
</tr>
<tr>
<td width="100%" align="center">
<br>
<input type="submit" class="button" value="<?php echo $btntxt;?>">
</td>
</tr>
</table>
</form>

Варианты для кнопки Оплатить:

В Paypal чаще всего можно увидетьв качестве кнопки оплаты баннер, при нажатии на который вы попадаете на страницу оплаты Paypal:

<input type="image" src="https://www.sandbox.paypal.com/
en_US/i/btn/x-click-but22.gif"
border="0" name="submit" alt="Make payments with PayPal -
it's fast, free and secure!">
<img alt="" border="0"
src="передача информации
width="1" height="1">
<input type="image" src="components/com_ezrealty/images/<?php echo $button_image;?>"
name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />

Тоже самое можно сделать для Webmoney, используя логотипы фирменного стиля :

<input type="image" src="http://www.webmoney.ru/img/banner/8831_2.gif" name="submit"
alt="Оплатить через Webmoney" />

Или выпадающую форму оплаты с возможностью оплаты по нескольким счетам, как у Adeptusa (adeptsite.info)

<select name="LMI_PAYEE_PURSE" style="min-width:30px;">
<option value="Номер счета">Название выпадающего списка</option>
<option value="Номер счета">Название выпадающего списка</option>
<option value="Номер счета">Название выпадающего списка</option>
</select>
</td>
</tr>
<tr>
<td width="100%" align="center">
<br>
<input type="submit" class="button" value="Оплатить">
</td>
</tr>

ВЗАИМОДЕЙСТВИЕ СЕРВИС------>САЙТ

Первая схема не обеспечивает полную автоматизацию. Сайт (скрипт) продавца не получает автоматически информацию о полученном платеже. При большом количестве обращений работать становится весьма затруднительно.

Webmoney: ФОРМЫ HTML для передачи информации на сайт

Для передачи информации между веб-сайтом продавца и сервисом Web Merchant Interface используютcя пять основных HTML-формы. Первую мы уже рассмотрели, она посылает информацию на сервис. Остальные четыре- это взаимодействие:

сервис---->сайт

Форма предварительного запроса - генерируется сервисом Web Merchant Interface для передачи параметров предварительного запроса на выполнение платежа на веб-сайт продавца, если установлен флаг Передавать параметры в предварительном запросе. Если флаг не установлен - не используется (запрос выполняется без параметров). Запрос передается без использования веб-браузера покупателя.

Форма оповещения о платеже - генерируется сервисом Web Merchant Interface для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя.

Форма выполненного платежа - генерируется сервисом Web Merchant Interface в случае успешного выполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.

Форма невыполненного платежа - генерируется сервисом Web Merchant Interface в случае невыполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.


Источник: http://joomlaforum.org

Добавить комментарий:
Имя:
E-mail:
2021 © Обсуждение Joomla и других CMS-систем управления сайтами  Правила | О проекте | Обратная связь