Процедура простая: Идем по ссылке RBK Money и регистрируем магазин. Прием платежей всех типов можно начать сразу после регистрации. Сразу скачайте, заполните и вышлите почтой договор - как только они его получат и обработают (обычно пара недель), можно будет выводить средства на расчетный счет (без процентов и ограничений).
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd"> <install version="1.5" type="plugin" group="content"> <name>Оплата RBK Money</name> <author>Kayfolom</author> <authorEmail>ekorepov@ukhta-inform.ru</authorEmail> <authorUrl>authorUrl</authorUrl> <creationDate>2011</creationDate> <copyright>c</copyright> <license>license</license> <version>1.0</version> <description>Оплата RBK Money</description> <files> <filename plugin="rbk_money_utm">rbk_money_utm.php</filename> </files> <params /> </install>
Код плагина для joomla
<?php defined( '_JEXEC' ) or die( 'Restricted access' ); @ini_set("display_errors", "0"); error_reporting(E_ALL); jimport( 'joomla.plugin.plugin' ); $mainframe->registerEvent( 'onPrepareContent', 'plgRBKMoney_UTM' ); function plgRBKMoney_UTM(&$row, &$params, $page=0){ $pos = strpos($row->text, '{rbkmoney_UTM}'); if ($pos==false) return; $row->text = preg_replace('/{rbkmoney_UTM}/', '', $row->text); $activepay_message = ""; $SecretKey = '**************'; // Берем из настроек магазина на сайте РБК $eshopId=*********; //Идентификатор вашего магазина. Берем из настроек магазина на сайте РБК $orderId=time(); //Номер покупки $recipientCurrency="RUR"; $serviceName = 'Пополнение лицевого счета '.$_SESSION['URFA']['basic_account']; $successUrl="https://***********/pay/rbkmoney?result=ok"; //Замените на ваш путь $failUrl="https://***********/pay/rbkmoney?result=error"; //Замените на ваш путь $account=$_SESSION['URFA']['basic_account']; if (isset($_GET['result'])) { if ($_GET['result']=="ok") $activepay_message = "<BR>Платеж принят на обработку, зачисление средств произойдет через несколько минут. <br>Проверить зачисление вы можете в <a href=\"/stat/index.php/paymentreport\">Отчете по платежам</a> <BR>"; if ($_GET['result']=="error") $activepay_message = "<BR>Ошибка платежа<BR>"; $form_activepay_payment = ''; } else { // Типа номер лицевого счета $account = $_SESSION['URFA']['basic_account']; $balance_fmt = sprintf("%01.2f руб.",$_SESSION['URFA']['balance']); echo abs($_SESSION['URFA']['balance']); $balance = ceil(abs($_SESSION['URFA']['balance'])*100)/100; // Вычисляем сумму платежа с округлением в большую сторону $tariff_cost = sprintf("%01.2f руб.",$_SESSION['URFA']['tariff_cost']); $form_activepay_payment = <<<EOF <table width="100%" border="0" cellspacing="1" cellpadding="1"> <tr> <td bgcolor="#FFFFFF"> <div align="center">Баланс вашего лицевого счета $balance_fmt</div> </td> </tr> <tr> <td bgcolor="#FFFFFF"> <div align="center">Стоимость вашего текущего тарифа $tariff_cost </div><BR> </td> </tr> <tr> <td bgcolor="#FFFFFF"> <div align="center">Вы можете пополнить лицевой счет используя платежную систему RBK Money</div> <div align="center">Введите необходимую сумму и нажмите Оплатить. Вы будете перенаправлены в защищенную зону RBK Money.</div> <div align="center">Для быстрой оплаты: "Экспресс оплата", введите свой email адрес (на него придет подтверждение оплаты) и нажмите продолжить.</div> </td> </tr> <tr> <td bgcolor="#FFFFFF"> <br> </td> </tr> <tr> <td bgcolor="#FFFFFF"> <div align="center"><img src="/stat/images/stories/logo_visa.gif" alt="Visa" title="Visa"><img src="/stat/images/stories/logo_mastercard.gif" alt="Mastercard" title="Mastercard"> Оплата банковской картой Visa/MasterCard. <br>Введите сумму: </div> </td> </tr> <tr> <form action="https://rbkmoney.ru/acceptpurchase.aspx" method="post"> <td width="39%"> <div align="center"> <input type="hidden" name="eshopId" value="$eshopId"> <input type="hidden" name="orderId" value="$orderId"> <input type="text" name="recipientAmount" value="$balance"> <input type="hidden" name="recipientCurrency" value="RUR"> <input type="hidden" name="serviceName" value="$serviceName"> <br>Введите адрес электронной почты<br> <input type="text" name="user_email" value=""> <input type="hidden" name="preference" value="bankCard"> <input type="hidden" name="successUrl" value="$successUrl"> <input type="hidden" name="failUrl" value="$failUrl"> <input type="hidden" name="userField_1" value="$account"> <input type="submit" name="button" value="Оплатить"> </div> </td> </form> </tr> <tr> <td bgcolor="#FFFFFF"> <br> </td> </tr> <!-- **************************************************************************************************** --> <tr> <td bgcolor="#FFFFFF"> <div align="center">Оплата другими доступными методами. Введите сумму: </div> <div align="center">Введите сумму: </div> </td> </tr> <tr> <form action="https://rbkmoney.ru/acceptpurchase.aspx" method="post"> <td width="39%"> <div align="center"> <input type="hidden" name="eshopId" value="$eshopId"> <input type="hidden" name="orderId" value="$orderId"> <input type="text" name="recipientAmount" value="$balance"> <input type="hidden" name="recipientCurrency" value="RUR"> <input type="hidden" name="serviceName" value="$serviceName"> <input type="hidden" name="successUrl" value="$successUrl"> <input type="hidden" name="failUrl" value="$failUrl"> <input type="hidden" name="userField_1" value="$account"> <input type="submit" name="button" value="Оплатить"> </div> </td> </form> </tr> <!-- <tr> <td bgcolor="#FFFFFF"> <div align="center"> Если Вы не имеете кошелек в платежной системе RBK Money, открыть Вы можете <a target="blank" href="https://rbkmoney.ru/register.aspx">здесь</a> </div> </td> </tr> --> </table> EOF; $activepay_message = ''; } $row->text = preg_replace('/{rbkmoney_message}/', $activepay_message, $row->text); $row->text = preg_replace('/{form_rbkmoney_payment}/', $form_activepay_payment, $row->text); }
Код обработчика ответов с сервера RBK Money
<?php //@ini_set("display_errors", "1"); //error_reporting(E_ALL); require_once("../stat/urfa/URFAClient.php"); $UTMCore_Login='**********'; $UTMCore_Password='********'; $UTMCoreHost='127.0.0.1'; $UTMCorePort='11758'; $log_file = "/netup/utm5/log/rbkmoney_".date("Y_m_d").".log"; $file_handle = fopen($log_file,"a+"); fwrite($file_handle, date("d.m.Y H:i:s")."\r\n".print_r($_POST,true)."\r\n"); If ($_POST['paymentStatus']==5) { $sign='Оплата RBK Money, номер покупки '.$_POST['paymentId']; $payment_time = time(); $burn_date = 0; $Account = $_POST['userField_1']; $Summa = $_POST['recipientAmount']; try { $urfa_admin = new URFAClient_Admin($UTMCore_Login,$UTMCore_Password,$UTMCoreHost,$UTMCorePort); } catch (Exception $exception) { $ErrorCode=100; } $payment_transaction_id = $urfa_admin->rpcf_add_payment_for_account($Account,$Summa,$payment_time,$burn_date,100,$sign,$sign,1); //0x3110 if (isset($payment_transaction_id['payment_transaction_id'])) { $ErrorCode = 0; fwrite($file_handle, date("d.m.Y H:i:s")." ".$_POST['paymentId']." ok\r\n"); } else { $ErrorCode = 255; fwrite($file_handle, date("d.m.Y H:i:s")." ".$_POST['paymentId']." ERROR !!!\r\n"); } } fclose($file_handle); ?>