1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

1.2.x Робокасса для платных подписок

Тема в разделе "Плагины для XenForo", создана пользователем Дмитрий Кесаев, 5 окт 2013.

Загрузка
  1. Дмитрий Кесаев

    Дмитрий Кесаев Местный

    Регистрация:
    24.06.13
    Сообщения:
    58
    Симпатии:
    163
    Версия XF:
    1.3.1
    Робокасса для платных подписок!

    Мои наработки. Дальше нет времени заниматься.
    Если кто допишет - молодец. Если нет, то позже сам допишу)))

    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>";

    ?>
    2. Берем этот Listener.php и наш robo.php и ложим в папку Robo (надо создать) в www/libary/

    3. Переводим форум в режим отладки.
    $config['debug'] = true;

    4. Идем в админку, -> разработка -> создать дополнение.

    5. Заполняем всё как на рисунке, жмем "Сохранить дополнение".
    [​IMG]


    6. Теперь в админке по сути у нас есть плагин, который включается и выключается. Идем дальше.
    Админка -> Разработка -> Обработчики событий -> Создать новый обработчик события.

    7. Заполняем всё как на рисунке, сохраняем
    [​IMG]

    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="$availablevalue="$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_itemvalue="{$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="$purchasedvalue="$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&amp;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 (номер покупки)

    Дополнение скачать: http://yadi.sk/d/e3fphCugAQfzd

    Должна заработать приемка денег!

    ПРОДОЛЖЕНИЕ СЛЕДУЕТ.
    Статья не дописана!!!


    [DOUBLEPOST=1380954025,1380951851][/DOUBLEPOST]
    +++++++++++++++++++++++++++++++++++++++++++++++++++
    +++++++++++++++++++++++++++++++++++++++++++++++++++
    +++++++++++++++++++++++++++++++++++++++++++++++++++



    или попробуйте установить аддон.
    Потом включить в настройках его и попробовать тестово подписку.

    Готово на 80%

    Велосипед пока огромный получился (8,3 КБ)- но все лишнее удалится, поставятся условия на проверку и потом нужно сделать корректный прием данных с робокассы! - не проверял, не делал!!!
    --- добавлено : Oct 5, 2013 7:37 AM ---
    [​IMG]




    =======================


    [​IMG]


    ============================

    [​IMG]

    =============================

    [​IMG]
     

    Вложения:

    • robo_addon.zip
      Размер файла:
      8,3 КБ
      Просмотров:
      24
    Последнее редактирование модератором: 13 окт 2013
    viprus, shaman480, Suzen и 4 другим нравится это.
  2. aligon7

    aligon7 Местный

    Регистрация:
    22.12.12
    Сообщения:
    979
    Симпатии:
    62
    Версия XF:
    1.4.7
    Супер, если работает, нужно попробовать
     
  3. Lex

    Lex Dura Lex

    Регистрация:
    27.11.10
    Сообщения:
    802
    Симпатии:
    152
    Версия XF:
    1.5.1
    Заверните это дело в плагин и может даже будет не мало желающих купить.
     
  4. Дмитрий Кесаев

    Дмитрий Кесаев Местный

    Регистрация:
    24.06.13
    Сообщения:
    58
    Симпатии:
    163
    Версия XF:
    1.3.1
    Я не продаю никогда ничего... только бесплатно в паблик!!!

    Нет времени пока дописывать... неделю только изучаю xenforo - тяжело дается(((
     
    viprus, BLEF, PaCTa и 9 другим нравится это.
  5. Виталий Смирнов

    Виталий Смирнов Местный

    Регистрация:
    08.04.11
    Сообщения:
    74
    Симпатии:
    8
    Что-нибудь дописали?
     
  6. Дмитрий Кесаев

    Дмитрий Кесаев Местный

    Регистрация:
    24.06.13
    Сообщения:
    58
    Симпатии:
    163
    Версия XF:
    1.3.1
    Продукт написан уже давно, ищи на форуме
     
  7. Виталий Смирнов

    Виталий Смирнов Местный

    Регистрация:
    08.04.11
    Сообщения:
    74
    Симпатии:
    8
    Спасибо уже нашел.
    Мне вот только одно не понятно, за что пользователи платят получая повышения. Есть посмотреть примеры форумов использующие платные повышения прав?
     
  8. aligon7

    aligon7 Местный

    Регистрация:
    22.12.12
    Сообщения:
    979
    Симпатии:
    62
    Версия XF:
    1.4.7
    В гугле забей
     
  9. akinak

    akinak Местный

    Регистрация:
    12.02.13
    Сообщения:
    259
    Симпатии:
    241
    Версия XF:
    1.1.3
    Через повышения пользователю дают группу, а в группе через систему прав даются более широкие права, по сравнению с бесплатным участием.
    Например это часто бывает возможность редактирования сообщений, возможность закрепления сообщений, доступ к закрытым разделам, другой пользовательский статус, другой стиль ника (золотыми буквами например), возможность использования подписи или картинки в подписи. В общем, все зависит от фантазии владельца форума.
     
    Mirovinger нравится это.
  10. aligon7

    aligon7 Местный

    Регистрация:
    22.12.12
    Сообщения:
    979
    Симпатии:
    62
    Версия XF:
    1.4.7
    Добавлю, на многих форумах, для скачивания ресурсов.
     
  11. synergy

    synergy Новичок

    Регистрация:
    02.04.14
    Сообщения:
    1
    Симпатии:
    0
    Версия XF:
    1.3.1
    Конкретный пример - http://reibert.info/forums/o-sajte-reibert-info.38/?prefix_id=6
    Работают через Робокассу.

    Админ форума отписался:
    Денежную систему форума и платные возможности поднятие и закрепления тем писали сами на основе этих модулей:
    http://xenforo.com/community/resources/credits.1391/
    http://xenforo.com/community/resources/sonnb-up-thread.831/
     

Поделиться этой страницей