Ответить Новая тема Новый опрос 
 Privat24 и модальное окно
Riva
Новичок
Сообщений: 72
Регистрация: 03-06-2012


05-06-2015 21:54
Может кто-то уже делал такое.

Нужно сделать, чтобы после выбора оплаты через Privat24 и нажатию кнопки "Я подтверждаю свой заказ" переадресовывало не сразу на страницу Приватбанка, а на промежуточную страницу с дополнительной информацией или модальное окно. И уже в этом окне или странице была кнопка Оплатить с переходом в приватбанк.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-06-2015 01:08
Описание на примере стандартного модуля bankwire:
Откройте файл /modules/bankwire/views/templates/payment_execution.tpl
1. добавьте:
Код:
<script type="text/javascript">
$(document).ready(function(){
    $('a.thickbox').fancybox();
});
</script>

2. Удалите элементы <form> и <input type="submit" />

3. Добавьте:
Код:
<a href="#test" class="exclusive_large thickbox">Оформить заказ</a>
<div style="display:none" id="test">

    <form action="{$link->getModuleLink('bankwire', 'validation', [], true)|escape:'html'}" method="post">
        текст
        <br />
        <input type="submit" value="{l s='Place my order' mod='bankwire'}" class="exclusive_large " />
    </form>
</div>
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Riva
Новичок
Сообщений: 72
Регистрация: 03-06-2012


06-06-2015 02:51
<p class="payment_module">
<a href="javascript:$('#privat24_form').submit();" title="{l s='Pay with privat24' mod='privat24'}">
<img src="{$module_template_dir}privat24.gif" alt="{l s='Pay with privat24' mod='privat24'}" />
{l s='Pay with privat24' mod='privat24'}
</a>
</p>

<form id="privat24_form" action="{$privat24Url}" method="POST">
<input type="hidden" name="amt" value="{$amount}"/>
<input type="hidden" name="ccy" value="{$currency}" />
<input type="hidden" name="merchant" value="{$merchant}" />
<input type="hidden" name="order" value="{$order}" />
<input type="hidden" name="details" value="{$details}" />
<input type="hidden" name="ext_details" value="{$ext_details}" />
<input type="hidden" name="pay_way" value="privat24" />
<input type="hidden" name="return_url" value="{$return_url}" />
<input type="hidden" name="server_url" value="{$server_url}" />
</form>

Это содержимое privat24.tpl Попробовал его колупнуть, в итеге ошибка [object Object]

Провернул тоже самое с payment_execution.tpl модуля Банковский перевод всё отлично сработало


Сообщение отредактировано Riva 05-06-2015 21:56 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


06-06-2015 18:23
Цитата:( Riva @ 06-06-2015 03:51 Смотреть сообщение )
Попробовал его колупнуть, в итеге ошибка [object Object]

1. js-код в tpl файле оберните в:
Код:
{literal}
здесь код
{/literal}

2. Включите отображение ошибок. При наличии ошибки - приложите к сообщению.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Riva
Новичок
Сообщений: 72
Регистрация: 03-06-2012


07-06-2015 06:48
{literal}
<script type="text/javascript">
$(document).ready(function(){
$('a.thickbox').fancybox();
});
</script>
{/literal}

<p class="payment_module">
<a href="javascript:$('#privat24_form').submit();" title="{l s='Pay with privat24' mod='privat24'}">
<img src="{$module_template_dir}privat24.gif" alt="{l s='Pay with privat24' mod='privat24'}" />
{l s='Pay with privat24' mod='privat24'}
</a>
</p>

<a href="#test" class="exclusive_large thickbox">Оформить заказ</a>

<div style="display:none" id="test">
<form id="privat24_form" action="{$privat24Url}" method="POST">
<p>После нажатия на кнопку "Оплатить" вы будете перенаправлены на сайт Privat24 для оплаты</p>


<input type="hidden" name="amt" value="{$amount}"/>
<input type="hidden" name="ccy" value="{$currency}" />
<input type="hidden" name="merchant" value="{$merchant}" />
<input type="hidden" name="order" value="{$order}" />
<input type="hidden" name="details" value="{$details}" />
<input type="hidden" name="ext_details" value="{$ext_details}" />
<input type="hidden" name="pay_way" value="privat24" />
<input type="hidden" name="return_url" value="{$return_url}" />
<input type="hidden" name="server_url" value="{$server_url}" />
<input type="submit" value="{l s='Оплатить' mod='privat24'}" class="exclusive_large " />
</form>
</div>


Ошибок дебагер не показывает.
Интересное то, что срабатывает везде кроме самого модуля Privat24. Тоесть этот код перехватывает класс payment_module у всех остальных модулей оплаты, создаёт модальное окно и затем перенаправляет их на сайт в привата :)
При этом сам модуль привата, работает так же как и до всех изменений, без окна и сразу уводит на сайт привата. :confus:


Сообщение отредактировано Riva 07-06-2015 01:50 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


07-06-2015 14:38
Код:
{literal}
<script type="text/javascript">
$(document).ready(function(){
    $('a.thickbox').fancybox();
});
</script>
{/literal}

<a href="#test" class="exclusive_large thickbox">Оформить заказ</a>
<div style="display:none" id="test">

    <p class="payment_module">
        <a href="javascript:$('#privat24_form').submit();" title="{l s='Pay with privat24' mod='privat24'}">
            <img src="{$module_template_dir}privat24.gif" alt="{l s='Pay with privat24' mod='privat24'}" />
            {l s='Pay with privat24' mod='privat24'}
        </a>
    </p>
        <p>После нажатия на кнопку "Оплатить" вы будете перенаправлены на сайт Privat24 для оплаты</p>

    <form id="privat24_form" action="{$privat24Url}" method="POST">
    <input type="hidden" name="amt" value="{$amount}"/>
    <input type="hidden" name="ccy" value="{$currency}" />
    <input type="hidden" name="merchant" value="{$merchant}" />
    <input type="hidden" name="order" value="{$order}" />
    <input type="hidden" name="details" value="{$details}" />
    <input type="hidden" name="ext_details" value="{$ext_details}" />
    <input type="hidden" name="pay_way" value="privat24" />
    <input type="hidden" name="return_url" value="{$return_url}" />
    <input type="hidden" name="server_url" value="{$server_url}" />
        <input type="submit" value="{l s='Оплатить' mod='privat24'}" class="exclusive_large " />
    </form>
</div>
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Riva
Новичок
Сообщений: 72
Регистрация: 03-06-2012


07-06-2015 16:38
Вроде сработало, спасибо, начинаю тестировать.


Сообщение отредактировано Riva 07-06-2015 11:43 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос