Дмитрий Кесаев
Проверенные
- Сообщения
- 129
- Реакции
- 387
- Баллы
- 11,070
Робокасса для платных подписок!
Мои наработки. Дальше нет времени заниматься.
Если кто допишет - молодец. Если нет, то позже сам допишу)))
1. Создаем файл Listener.php следующего содержания:
и robo.php
2. Берем этот Listener.php и наш robo.php и ложим в папку Robo (надо создать) в www/libary/
3. Переводим форум в режим отладки.
$config['debug'] = true;
4. Идем в админку, -> разработка -> создать дополнение.
5. Заполняем всё как на рисунке, жмем "Сохранить дополнение".
6. Теперь в админке по сути у нас есть плагин, который включается и выключается. Идем дальше.
Админка -> Разработка -> Обработчики событий -> Создать новый обработчик события.
7. Заполняем всё как на рисунке, сохраняем
8. В шаблон robo_main вставляем этот код (шаблон появится после установки отдельного дополнения - оно в низу статьи):
9.Затем открываем шаблон account_upgrades заменяем на
<input type="hidden" name="InvId" value="309" /> - как пример номера заказа, значение подставите сами от paypal (номер покупки)
Дополнение скачать: robo.rar
Должна заработать приемка денег!
ПРОДОЛЖЕНИЕ СЛЕДУЕТ.
Статья не дописана!!!
[DOUBLEPOST=1380954025,1380951851][/DOUBLEPOST]
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++
или попробуйте установить аддон.
Потом включить в настройках его и попробовать тестово подписку.
Готово на 80%
Велосипед пока огромный получился (8,3 КБ)- но все лишнее удалится, поставятся условия на проверку и потом нужно сделать корректный прием данных с робокассы! - не проверял, не делал!!![DOUBLEPOST=1380958689][/DOUBLEPOST]
=======================
============================
=============================
Мои наработки. Дальше нет времени заниматься.
Если кто допишет - молодец. Если нет, то позже сам допишу)))
1. Создаем файл Listener.php следующего содержания:
Код:
<?php
class Blablabla_Listener
{
public static function templateHook($hookName, &$contents, $params, XenForo_Template_Abstract $template)
{
{
if($hookName == 'phpcode')
{
ob_start();
require_once('robo.php');
$contents .= ob_get_contents();
ob_end_clean();
}
}
}
}
и robo.php
PHP:
<?php
$out_summ = $_GET['OutSum'];
$inv_id = $_GET['InvId'];
$mrh_login = "userzzzzzzz"; // логин в робокассе
$mrh_pass1 = "123456789zzzzz"; // пасс №1 в робокассе
$inv_desc = "Perehod v vip gruppu";
$shp_item = 1;
$in_curr = "WMZM";
$culture = "ru";
$encoding = "utf-8";
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:Shp_item=$shp_item");
print "<form action='https://merchant.roboxchange.com/Index.aspx' method=POST>".
"<input type=hidden name=MrchLogin value=$mrh_login>".
"<input type=hidden name=OutSum value=$out_summ>".
"<input type=hidden name=InvId value=$inv_id>".
"<input type=hidden name=Desc value='$inv_desc'>".
"<input type=hidden name=SignatureValue value=$crc>".
"<input type=hidden name=Shp_item value='$shp_item'>".
"<input type=hidden name=IncCurrLabel value=$in_curr>".
"<input type=hidden name=Culture value=$culture>".
"<input type=submit value='Оплатить повышение'>".
"</form>";
?>
3. Переводим форум в режим отладки.
$config['debug'] = true;
4. Идем в админку, -> разработка -> создать дополнение.
5. Заполняем всё как на рисунке, жмем "Сохранить дополнение".
6. Теперь в админке по сути у нас есть плагин, который включается и выключается. Идем дальше.
Админка -> Разработка -> Обработчики событий -> Создать новый обработчик события.
7. Заполняем всё как на рисунке, сохраняем
8. В шаблон robo_main вставляем этот код (шаблон появится после установки отдельного дополнения - оно в низу статьи):
Код:
<xen:hook name="phpcode">
</xen:hook>
9.Затем открываем шаблон account_upgrades заменяем на
PHP:
<xen:title>{xen:phrase account_upgrades}</xen:title>
<xen:require css="account_upgrades.css" />
<xen:if is="{$available}">
<div class="section">
<h3 class="subHeading">{xen:phrase available_upgrades}</h3>
<ul>
<xen:foreach loop="$available" value="$upgrade">
<li class="primaryContent upgrade">
<form action="/robo/" method="get" class="upgradeForm">
<div class="cost">{$upgrade.costPhrase}</div>
<xen:if is="{$upgrade.length_unit} AND {$upgrade.recurring}">
<input type="hidden" name="cmd" value="_xclick-subscriptions" />
<input type="hidden" name="a3" value="{$upgrade.cost_amount}" />
<input type="hidden" name="p3" value="{$upgrade.length_amount}" />
<input type="hidden" name="t3" value="{$upgrade.lengthUnitPP}" />
<input type="hidden" name="src" value="1" />
<input type="hidden" name="sra" value="1" />
<xen:else />
<input type="hidden" name="InvId" value="309" />
<input type="hidden" name="OutSum" value="{$upgrade.cost_amount}" />
<input type="hidden" name="$shp_item" value="{$visitor.user_id}" />
<input type="hidden" name="_xfToken" value="{$visitor.user_id},{$upgrade.user_upgrade_id},token,{$visitor.csrf_token_page}" />
<input type="submit" value="{xen:phrase purchase}" class="button" />
</xen:if>
<input type="hidden" name="business" value="{$xenOptions.payPalPrimaryAccount}" />
<input type="hidden" name="currency_code" value="{$upgrade.currency}" />
<input type="hidden" name="item_name" value="{xen:phrase account_upgrade}: {$upgrade.title} ({$visitor.username})" />
<input type="hidden" name="quantity" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="custom" value="{$visitor.user_id},{$upgrade.user_upgrade_id},token,{$visitor.csrf_token_page}" />
<input type="hidden" name="charset" value="utf-8" />
<input type="hidden" name="email" value="{$visitor.email}" />
<input type="hidden" name="return" value="{$requestPaths.fullBasePath}{xen:link account/upgrade-purchase}" />
<input type="hidden" name="cancel_return" value="{$requestPaths.fullBasePath}{xen:link index}" />
<input type="hidden" name="notify_url" value="{$xenOptions.boardUrl}/payment_callback.php" />
</form>
<div class="upgradeMain">
<h4 class="title">{$upgrade.title}</h4>
<xen:if is="{$upgrade.description}">
<div class="description">{xen:raw $upgrade.description}</div>
</xen:if>
</div>
</li>
</xen:foreach>
</ul>
</div>
</xen:if>
<xen:if is="{$purchased}">
<div class="section">
<h3 class="subHeading">{xen:phrase purchased_upgrades}</h3>
<ul>
<xen:foreach loop="$purchased" value="$upgrade">
<li class="primaryContent">
<div class="upgrade">
<div class="upgradeForm">
<xen:if is="{$upgrade.record.end_date}">
<div>{xen:phrase expires}: <xen:datetime time="$upgrade.record.end_date" /></div>
</xen:if>
<xen:if is="{$upgrade.length_unit} AND {$upgrade.recurring}">
<a href="{$payPalUrl}?cmd=_subscr-find&alias={xen:urlencode $xenOptions.payPalPrimaryAccount}" class="button">{xen:phrase cancel_subscription}</a>
</xen:if>
</div>
<div class="upgradeMain">
<h4 class="title">{$upgrade.title}</h4>
<xen:if is="{$upgrade.description}">
<div class="description">{xen:raw $upgrade.description}</div>
</xen:if>
</div>
</div>
</li>
</xen:foreach>
</ul>
</div>
</xen:if>
<input type="hidden" name="InvId" value="309" /> - как пример номера заказа, значение подставите сами от paypal (номер покупки)
Дополнение скачать: robo.rar
Должна заработать приемка денег!
ПРОДОЛЖЕНИЕ СЛЕДУЕТ.
Статья не дописана!!!
[DOUBLEPOST=1380954025,1380951851][/DOUBLEPOST]
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++
или попробуйте установить аддон.
Потом включить в настройках его и попробовать тестово подписку.
Готово на 80%
Велосипед пока огромный получился (8,3 КБ)- но все лишнее удалится, поставятся условия на проверку и потом нужно сделать корректный прием данных с робокассы! - не проверял, не делал!!![DOUBLEPOST=1380958689][/DOUBLEPOST]
=======================
============================
=============================
Вложения
Последнее редактирование модератором: