Немного изменил сам бланк по форме пд-4(вроде). После оформления заказа происходит редирект страницы на себя же саму (для обновления статуса заказа в confirmed). При этом бланк оплаты открывается в новом окне.
В итоге из админки можно добавлять реквизиты получателя платежа.
В компоненте jshopping в способах платежа не забываем указать ТИП: Другой сайт оплаты
P.S. Теперь нет проблем с состоянием заказа и уведомлением по эл. почте. Заказ переходит в статус 'confirmed'
Файл adminparamsform.php
<div class="col100">
<fieldset class="adminform">
<table class="admintable" width = "100%">
<tr>
<td class="key">
Получатель:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_Cname]" rows="1" size="45"><?php echo $params['pay_Cname']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
КПП:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_KppN]" rows="1" size="45"><?php echo $params['pay_KppN']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
ИНН:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_inn]" rows="1" size="45"><?php echo $params['pay_inn']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
Код ОКАТО:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_OkatoN]" rows="1" size="45"><?php echo $params['pay_OkatoN']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
P/сч.:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_BAccN]" rows="1" size="45"><?php echo $params['pay_BAccN']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
БИК:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_BikN]" rows="1" size="45"><?php echo $params['pay_BikN']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
В: (название банка)
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_Bname]" rows="1" size="45"><?php echo $params['pay_Bname']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
К/сч.:
</td>
<td>
<textarea class="inputbox" cols="25" name="pm_params[pay_Kor]" rows="1" size="45"><?php echo $params['pay_Kor']; ?></textarea>
<?php echo JHTML::tooltip(""); ?>
</td>
</tr>
<tr>
<td class="key">
<?php echo _JSHOP_PAYPAL_TRANSACTION_END;?>
</td>
<td>
<?php
print JHTML::_('select.genericlist', $orders->getAllOrderStatus(), 'pm_params[transaction_end_status]', 'class = "inputbox" size = "1"', 'status_id', 'name', $params['transaction_end_status'] );
echo " ".JHTML::tooltip(_JSHOP_PAYPAL_TRANSACTION_END_DESCRIPTION);
?>
</td>
</tr>
<tr>
<td class="key">
<?php echo _JSHOP_PAYPAL_TRANSACTION_PENDING;?>
</td>
<td>
<?php
echo JHTML::_('select.genericlist',$orders->getAllOrderStatus(), 'pm_params[transaction_pending_status]', 'class = "inputbox" size = "1"', 'status_id', 'name', $params['transaction_pending_status']);
echo " ".JHTML::tooltip(_JSHOP_PAYPAL_TRANSACTION_PENDING_DESCRIPTION);
?>
</td>
</tr>
<tr>
<td class="key">
<?php echo _JSHOP_PAYPAL_TRANSACTION_FAILED;?>
</td>
<td>
<?php
echo JHTML::_('select.genericlist',$orders->getAllOrderStatus(), 'pm_params[transaction_failed_status]', 'class = "inputbox" size = "1"', 'status_id', 'name', $params['transaction_failed_status']);
echo " ".JHTML::tooltip(_JSHOP_PAYPAL_TRANSACTION_FAILED_DESCRIPTION);
?>
</td>
</tr>
<tr>
<td class="key">
<?php echo _JSHOP_CHECK_DATA_RETURN;?>
</td>
<td>
<?php
print JHTML::_('select.booleanlist', 'pm_params[checkdatareturn]', 'class = "inputbox" size = "1"', $params['checkdatareturn']);
?>
</td>
</tr>
</table>
</fieldset>
</div>
<div class="clr"></div>
Файл pm_sbrf.php
<?php
defined('_JEXEC') or die;
class pm_sbrf extends PaymentRoot
{
public function showPaymentForm($params)
{
include(dirname(__FILE__)."/paymentform.php");
}
function checkTransaction($params, $order, $act){
return array(1,"");
}
function showAdminFormParams($params){
$array_params = array('transaction_end_status', 'transaction_pending_status', 'transaction_failed_status');
foreach ($array_params as $key){
if (!isset($params[$key])) $params[$key] = '';
}
$orders = &JModel::getInstance('orders', 'JshoppingModel'); //admin model
include(dirname(__FILE__)."/adminparamsform.php");
}
public function showEndForm($params, $order)
{
$jshopConfig = &JSFactory::getConfig();
/*$item_name = sprintf(_JSHOP_PAYMENT_PRODUCT_IN_SITE, $jshopConfig->store_name);*/
$item_name = sprintf(_JSHOP_PAYMENT_NUMBER, $order->order_number);
$notify_url = JURI::root(). "index.php?option=com_jshopping&controller=checkout&task=step7&act=act&js_paymentclass=pm_sbrf";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="style.css" type="text/css">
<title>Счет на оплату. Квитанция СБ РФ (ПД-4)</title>
<style>
body
{
font-family:Arial, Helvetica, sans-serif;
/*font-size:14px;*/
}
a
{
color:#006400;
}
p
{
padding: 5px 0px 0px 5px;
}
.vas ul
{
padding: 0px 10px 0px 15px;
}
.vas li
{
list-style-type:circle;
}
h3
{
padding:0px 0px 0px 5px;
font-size:100%;
}
h1
{
color:#006400;
padding:0px 0px 0px 5px;
font-size:120%;
}
li
{
list-style-type: none;
padding-bottom:5px;
padding: 6px 0px 0px 5px;
}
.main
{
font-size:12px;
}
.list
{
font-size:12px;
padding: 6px 15px 0px 5px;
}
.main input
{
font-size:12px;
background-color:#CCFFCC;
}
.text14
{
font-family:"Times New Roman", Times, serif;
font-size:14px;
}
.text14 strong
{
font-family:"Times New Roman", Times, serif;
font-size:11px;
}
.link
{
font-size:12px;
}
.link a
{
text-decoration:none;
color:#006400;
}
.link_u
{
font-size:12px;
}
.link_u a
{
color:#006400;
}
</style>
</head>
<body>
<div id="kvitok" class="text14">
<table width="720" bordercolor="#000000" style="border:#000000 1px solid;" cellpadding="0" cellspacing="0">
<tr>
<td width="220" valign="top" height="250" align="center" style="border-bottom:#000000 1px solid; border-right:#000000 1px solid;"> <strong>Извещение</strong></td>
<td valign="top" style="border-bottom:#000000 1px solid; border-right:#000000 1px solid;">
<li><strong>Получатель: </strong><font style="font-size:90%"><u><?php echo $params['pay_Cname']; ?></u></font> <br />
<li><strong>КПП:</strong> <u><?php echo $params['pay_KppN']; ?></u> <strong>ИНН:</strong> <u><?php echo $params['pay_inn']; ?></u> <font style="font-size:12px"> </font>
<li><strong>Код ОКАТО:</strong><u><?php echo $params['pay_OkatoN']; ?></u> <strong>P/сч.:</strong> <u><?php echo $params['pay_BAccN']; ?></u>
<li> <strong>в:</strong> <font style="font-size:90%"><u><?php echo $params['pay_Bname']; ?></u></font><br />
<li><strong>БИК:</strong> <u><?php echo $params['pay_BikN']; ?></u> <strong>К/сч.:</strong><u><?php echo $params['pay_Kor']; ?></u><br />
<li><strong>Платеж:</strong> <font style="font-size:90%"><u>Заказ № <?php echo $order->order_id; ?></u></font><br /><br />
<li><strong>Плательщик: </strong> <font style="font-size:90%"> ______________________________________________________</font><br />
<li><strong>Адрес плательщика:</strong> <font style="font-size:90%"> _________________________________________________</font><br />
<li><strong>ИНН плательщика:</strong> ____________ <strong>№ л/сч. плательщика:</strong> ______________ <li><strong>Сумма:</strong> <u><?php echo $order->order_total; ?></u> руб. <strong>Сумма оплаты услуг банка:</strong> ______ руб. __ коп.<br /><br />
Подпись:________________________ Дата: " __ " _______ 201_ г. <br /><br />
</td>
</tr>
<tr>
<td width="220" valign="top" height="250" align="center" style="border-bottom:#000000 1px solid; border-right:#000000 1px solid;"> <strong>Извещение</strong></td>
<td valign="top" style="border-bottom:#000000 1px solid; border-right:#000000 1px solid;">
<li><strong>Получатель: </strong><font style="font-size:90%"><u><?php echo $params['pay_Cname']; ?></u></font> <br />
<li><strong>КПП:</strong> <u><?php echo $params['pay_KppN']; ?></u> <strong>ИНН:</strong> <u><?php echo $params['pay_inn']; ?></u> <font style="font-size:12px"> </font>
<li><strong>Код ОКАТО:</strong><u><?php echo $params['pay_OkatoN']; ?></u> <strong>P/сч.:</strong> <u><?php echo $params['pay_BAccN']; ?></u>
<li> <strong>в:</strong> <font style="font-size:90%"><u><?php echo $params['pay_Bname']; ?></u></font><br />
<li><strong>БИК:</strong> <u><?php echo $params['pay_BikN']; ?></u> <strong>К/сч.:</strong><u><?php echo $params['pay_Kor']; ?></u><br />
<li><strong>Платеж:</strong> <font style="font-size:90%"><u>Заказ № <?php echo $order->order_id; ?></u></font><br /><br />
<li><strong>Плательщик: </strong> <font style="font-size:90%"> ______________________________________________________</font><br />
<li><strong>Адрес плательщика:</strong> <font style="font-size:90%"> _________________________________________________</font><br />
<li><strong>ИНН плательщика:</strong> ____________ <strong>№ л/сч. плательщика:</strong> ______________ <li><strong>Сумма:</strong> <u><?php echo $order->order_total; ?></u> руб. <strong>Сумма оплаты услуг банка:</strong> ______ руб. __ коп.<br /><br />
Подпись:________________________ Дата: " __ " _______ 201_ г. <br /><br />
</td>
</tr>
</table>
</div>
<form id="paymentform" action="<?php print $notify_url?>" name = "paymentform" method = "post">
<input type='hidden' name='notify_url' value='<?php print $notify_url?>'>
<input type='hidden' name='item_name' value='<?php print $item_name;?>'>
<input type='hidden' name='item_number' value='<?php print $order->order_id?>'>
</form>
<script type="text/javascript">
var kvit = null;
kvitan=document.getElementById('kvitok').innerHTML;
kvit =window.open('','kvitokwin','fullscreen=no,status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=yes,resizable=yes,directories=no,location=no,width=900,height=700')
with (kvit.document) {
open('text/html');
writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');
writeln('<html xmlns="http://www.w3.org/1999/xhtml">');
writeln('<html>');
writeln('<head>');
writeln('<title>Банковский перевод</title>');
writeln('<link rel="stylesheet" href="/style.css">');
writeln('</head>');
writeln('<style type="text/css">');
writeln('body { font-family:Arial, Helvetica, sans-serif; /*font-size:14px;*/ } ');
writeln('a { color:#006400; } ');
writeln('p { padding: 5px 0px 0px 5px; }');
writeln('.vas ul { padding: 0px 10px 0px 15px; }');
writeln('.vas li { list-style-type:circle; }');
writeln('h3 { padding:0px 0px 0px 5px; font-size:100%; }');
writeln('h1 { color:#006400; padding:0px 0px 0px 5px; font-size:120%; }');
writeln('li { list-style-type: none; padding-bottom:5px; padding: 6px 0px 0px 5px; }');
writeln('.main { font-size:12px; }');
writeln('.list { font-size:12px; padding: 6px 15px 0px 5px; }');
writeln('.main input { font-size:12px; background-color:#CCFFCC; }');
writeln('.text14 { font-family:"Times New Roman", Times, serif; font-size:14px; }');
writeln('.text14 strong { font-family:"Times New Roman", Times, serif; font-size:11px; }');
writeln('.link { font-size:12px; }');
writeln('.link a { text-decoration:none; color:#006400; }');
writeln('.link_u { font-size:12px;}');
writeln('.link_u a {color:#006400;}');
writeln('</style>');
writeln('<body style="margin:2px;" marginheight=0 marginwidth=0 bgcolor="#ffffff" link="black" vlink="#a0a0a0" alink="#fa0055">');
writeln('<table align="center" width="90%" cellspacing="2" cellpadding="2" border="0"><tr>');
writeln('<td valign="top" height="90%" colspan="2">');
writeln('<div id="kvitok" class="text14">');
writeln(kvitan);
writeln('</div>');
writeln('</td></tr>');
writeln('<tr><td align="right"><a href="javascript:void(0)" onClick="window.close()">Закрыть окно</a> </td>');
writeln('<td align="left"> <a href="javascript:void(0)" onClick="window.print(); return false">Печать квитанции</a></td></tr>');
writeln('<tr><td align="left"> <I>Внимание!<br> ');
writeln('<I>Внимание!<br> ');
writeln(' Другую дополнительную информацию Вы можете указать непосредственно в банке при оплате.<br>');
writeln('Зачисление денег на наш расчетный счет осуществляется в течение 2-3 банковских дней.<br>');
writeln('Для ускорения зачисления вышлите по факсу копию или по e-mail скан оплаченной квитанции.<br>');
writeln('Контактную информацию смотрите в соответствующем разделе сайта.<br> </I></td></tr></table>');
writeln('</body>');
writeln('</html>');
close();
}
</script>
<?php print "Подготовка квитанции" ?>
<br>
<script type="text/javascript">document.getElementById('paymentform').submit();</script>
</body>
</html>
<!--/******************************************************************************/-->
<?php
die;
}
function getUrlParams($pmconfigs){
$params = array();
$params['order_id'] = JRequest::getInt("item_number");
$params['hash'] = "";
$params['checkHash'] = 0;
$params['checkReturnParams'] = 0;
return $params;
}
}