Перейти к содержимому


Макс

Регистрация: 25 Aug 2011
Offline Активность: Nov 17 2012 09:09 AM
-----

Мои темы

Модуль оплаты SpryPay

17 August 2012 - 03:02 PM

Выкладываю свой труд бесплатно:
1) Создаем файл class.sprypay.php в директории "core\modules\payment\"
Со следующим кодом:

<?php
/**
* @connect_module_class_name SPRYPAY
* @package DynamicModules
* @subpackage Payment
* by Maxim web-kotlas.ru
*/
class SPRYPAY extends PaymentModule
{
var $language = 'rus';
var $type = PAYMTD_TYPE_ONLINE;
var $processing_url = 'https://sprypay.ru/sppi/';
var $default_logo = 'http://www.sprypay.ru/template/images/sprypay.logo.gif';
var $callback_url = '';
function _initVars()
{
  parent::_initVars();
  $this->title   = 'SPRYPAY';
  $this->description  = str_replace('{0}', $callback_url, 'Модуль интеграции с платежной системой SpryPay (<a href="http://www.sprypay.ru/" target="_top">www.sprypay.ru</a>).<br>В настройках магазина в подразделе ОПОВЕЩЕНИЯ на SprayPay нужно указать параметры:<br>-ipnUrl: http//ваш-магазин.ru/index.php?sprypay<br>-successUrl: http//ваш-магазин.ru/index.php?sprypay&success_url<br>-failUrl: http//ваш-магазин.ru/index.php?sprypay&fail_url&s=fa8ffcf0cd8b - где fa8ffcf0cd8b - Ваш индивидуальный код защиты, с любым набором символов, так же его нужно указать в редактировании модуля!!!<br><br>Разработал модуль Максим <a href="http://web-kotlas.ru/" target="_blank">web-kotlas.ru</a>');
  $this->sort_order  = 1;

  $this->method_title = 'SpryPay';
  $this->method_description = 'Оплата через платежную систему <a href="http://www.sprypay.ru">SpryPay</a>.';
  $this->Settings = array(
   'CONF_PAYMENT_SPRYPAY_MERCHANTID',
   'CONF_PAYMENT_SPRYPAY_CURRENCY',
   'CONF_PAYMENT_SPRYPAY_PURPOSE',
   'CONF_PAYMENT_SPRYPAY_SECURITYKEY',
   'CONF_PAYMENT_SPRYPAY_SKEY',
   'CONF_PAYMENT_SPRYPAY_ORDERSTATUS',
   'CONF_PAYMENT_SPRYPAY_ORDERSTATUS_CLOSE',
   'CONF_PAYMENT_SPRYPAY_SELECTPS',
   'CONF_PAYMENT_SPRYPAY_HNDBNK', //HandyBank
   'CONF_PAYMENT_SPRYPAY_LRVEUR', //LibertyReserve EUR
   'CONF_PAYMENT_SPRYPAY_LRVUSD', //LibertyReserve USD
   'CONF_PAYMENT_SPRYPAY_LQPEUR', //LiqPay EUR
   'CONF_PAYMENT_SPRYPAY_LQPRUR', //LiqPay RUR
   'CONF_PAYMENT_SPRYPAY_LQPUAH', //LiqPay UAH
   'CONF_PAYMENT_SPRYPAY_LQPUSD', //LiqPay USD
   'CONF_PAYMENT_SPRYPAY_MMLRUR', //MoneyMail RUR
   'CONF_PAYMENT_SPRYPAY_MMLUSD', //MoneyMail USD
   'CONF_PAYMENT_SPRYPAY_PFMUSD', //PerfectMoney USD
   'CONF_PAYMENT_SPRYPAY_QIWIPR', //QIWI Кошелек
   'CONF_PAYMENT_SPRYPAY_RBKRUR', //RBKmoney
   'CONF_PAYMENT_SPRYPAY_SPREUR', //SpryPay EUR
   'CONF_PAYMENT_SPRYPAY_SPRRUR', //SpryPay RUR
   'CONF_PAYMENT_SPRYPAY_SPRUAH', //SpryPay UAH
   'CONF_PAYMENT_SPRYPAY_SPRUSD', //SpryPay USD
   'CONF_PAYMENT_SPRYPAY_W1RUR', //W1
   'CONF_PAYMENT_SPRYPAY_WMEUR', //WebMoney E
   'CONF_PAYMENT_SPRYPAY_WMRUR', //WebMoney R
   'CONF_PAYMENT_SPRYPAY_WMUAH', //WebMoney U
   'CONF_PAYMENT_SPRYPAY_WMUSD', //WebMoney Z
   'CONF_PAYMENT_SPRYPAY_DMRRUR', //Деньги@Mail.Ru
   'CONF_PAYMENT_SPRYPAY_YNDRUR', //Яндекс.Деньги
   'CONF_PAYMENT_SPRYPAY_CNTRUR', //Contact RUR
   'CONF_PAYMENT_SPRYPAY_RPRUR', //Почта России
   'CONF_PAYMENT_SPRYPAY_ERSRUR', //Евросеть салоны связи
   'CONF_PAYMENT_SPRYPAY_SVZRUR', //Связной салоны связи
   'CONF_PAYMENT_SPRYPAY_AFCRUR', //Альфа-Клик [ Альфа.Банк ]
   'CONF_PAYMENT_SPRYPAY_BNKRUR', //Банковский перевод
   'CONF_PAYMENT_SPRYPAY_FKTRUR', //Фактура.РУ
   'CONF_PAYMENT_SPRYPAY_PP', //PayPal
   'CONF_PAYMENT_SPRYPAY_VLPEUR', //Visa/MasterCard (LiqPay) EUR
   'CONF_PAYMENT_SPRYPAY_VLPRUR', //Visa/MasterCard (LiqPay) RUR
   'CONF_PAYMENT_SPRYPAY_VLPUAH', //Visa/MasterCard (LiqPay) UAH
   'CONF_PAYMENT_SPRYPAY_VLPUSD', //Visa/MasterCard (LiqPay) USD
   'CONF_PAYMENT_SPRYPAY_QIWITR', //QIWI Терминалы (КИВИ)
   'CONF_PAYMENT_SPRYPAY_QKPRUR', //Quickpay Терминалы
   'CONF_PAYMENT_SPRYPAY_VTUUAH', //Все терминалы Украины
   'CONF_PAYMENT_SPRYPAY_SBRRUR', //СберБанк терминалы
   'CONF_PAYMENT_SPRYPAY_SKBRUR', //СтройкредитБанк терминалы
   'CONF_PAYMENT_SPRYPAY_EXNRUR', //Элекснет терминалы
   'CONF_PAYMENT_SPRYPAY_SMSCON', //SMScoin
   'CONF_PAYMENT_SPRYPAY_SMSMTS', //СМС МТС
   'CONF_PAYMENT_SPRYPAY_SMSMGF' //СМС Мегафон
		);
}
function _initSettingFields()
{
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_MERCHANTID'] = array(
	  'settings_value'   => '',
	  'settings_title'   => 'ID номер (от 1 до 11 цифр.) вашего магазина(продавца)',
	  'settings_description'  => 'ID магазина в платежной системе SPRYPAY, на который будет поступать оплата по заказам.',
	  'settings_html_function'=> 'setting_TEXT_BOX(0,',
	  'sort_order'	=> 1,
  );
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_CURRENCY'] = array(
						'settings_value'		 => '',
						'settings_title'		 => 'Выберите валюту магазина, в которой указаны цены на товар',
						'settings_description'   => 'Выберите из списка валют ту, в которой указаны цены Вашего интернет-магазина.',
						'settings_html_function' => 'setting_PAYMENT_SPRYPAY_CURRENCY_SELECT(',
						'sort_order'			 => 2,
		 );
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_PURPOSE'] = array(
						'settings_value'		=> 'Оплата заказа #[orderID]',
						'settings_title'		=> 'Назначение платежей',
						'settings_description'  => 'Укажите описание платежей. Вы можете использовать строку [orderID] - она автоматически будет заменена на номер заказа',
						'settings_html_function'=> 'setting_TEXT_BOX(0,',
						'sort_order'			=> 3,
		);
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SECURITYKEY'] = array(
	  'settings_value'   => '',
	  'settings_title'   => 'Секретный ключ продавца',
	  'settings_description'  => 'Секретный ключ вашего аккаунта в платежной системе SPRYPAY.',
	  'settings_html_function'=> 'setting_TEXT_BOX(0,',
	  'sort_order'	=> 4,
  );
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SKEY'] = array(
	  'settings_value'   => 'fa8ffcf0cd8b',
	  'settings_title'   => 'Секретный ключ failurl',
	  'settings_description'  => 'Указанный здесь набор симвалов скопируйте после параметра "s=" в ссылке http://ваш-сайт.ru/index.php?sprypay&fail_url&s=fa8ffcf0cd8b, который указывается в настройках магазина в разделе Оповещения SpryPay failUrl:',
	  'settings_html_function'=> 'setting_TEXT_BOX(0,',
	  'sort_order'	=> 4,
  );
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_ORDERSTATUS'] = array(
	  'settings_value'		 => '',
	  'settings_title'		 => 'Статус заказа',
	  'settings_description'   => 'Статус, который будет автоматически установлен для заказа после УСПЕШНОЙ ОПЛАТЫ',
	  'settings_html_function' => 'setting_ORDER_STATUS_SELECT(',
	  'sort_order'			 => 5,
   );
  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_ORDERSTATUS_CLOSE'] = array(
	  'settings_value'		 => '',
	  'settings_title'		 => 'Статус заказа',
	  'settings_description'   => 'Статус, который будет автоматически установлен для заказа после ОТКАЗА ПОКУПАТЕЛЕМ. К примеру: Отменен покупателем.(admin.php?dpt=custord&sub=order_statuses)',
	  'settings_html_function' => 'setting_ORDER_STATUS_SELECT(',
	  'sort_order'			 => 6,
   );
   $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SELECTPS'] = array(
						'settings_value'		 => '',
						'settings_title'		 => 'Список видимых/скрытых платежных систем при оплате покупателем',
						'settings_description'   => '- <b>"Не определено"</b>-будут показаны п.с., которые указаны в настройках магазина.<br>- <b>"spSelectedPS"</b>-указание строгого списка показываемых при оплате п.с.<br>- <b>"spForbiddenPS"</b>-исключение какой либо п.с. из списка показываемых при оплате.',
						'settings_html_function' => 'setting_PAYMENT_SPRYPAY_SELECTPS(',
						'sort_order'			 => 7,
		 );
   // Payments system
   $this->SettingsFields['CONF_PAYMENT_SPRYPAY_HNDBNK'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через HandyBank http://www.handybank.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LRVEUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LibertyReserve EUR http://www.libertyreserve.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LRVUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LibertyReserve USD http://www.libertyreserve.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LQPEUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LiqPay EUR https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LQPRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LiqPay RUR https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LQPUAH'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LiqPay UAH https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_LQPUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через LiqPay USD https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_MMLRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через MoneyMail RUR https://www.moneymail.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_MMLUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через MoneyMail USD https://www.moneymail.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_PFMUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через PerfectMoney USD http://perfectmoney.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_QIWIPR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через QIWI Кошелек http://qiwi.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_RBKRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через RBKmoney http://www.rbkmoney.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SPREUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через SpryPay EUR http://sprypay.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SPRRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через SpryPay RUR http://sprypay.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SPRUAH'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через SpryPay UAH http://sprypay.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SPRUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через SpryPay USD http://sprypay.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_W1RUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через W1 http://www.w1.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_WMEUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через WebMoney E http://www.webmoney.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_WMRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через WebMoney R http://www.webmoney.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_WMUAH'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через WebMoney U http://www.webmoney.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_WMUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через WebMoney Z http://www.webmoney.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_DMRRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Деньги@Mail.Ru https://money.mail.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_YNDRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Яндекс.Деньги http://money.yandex.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_CNTRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Contact RUR http://contact-sys.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_RPRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Почта России http://почта-россии.рф/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_ERSRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Евросеть салоны связи http://euroset.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SVZRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Связной салоны связи http://svyaznoy.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_AFCRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Альфа-Клик [ Альфа.Банк ] https://click.alfabank.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_BNKRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Банковский перевод',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_FKTRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Фактура.РУ http://faktura.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_PP'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через PayPal https://www.paypal.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_VLPEUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Visa/MasterCard (LiqPay) EUR https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_VLPRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Visa/MasterCard (LiqPay) RUR https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_VLPUAH'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Visa/MasterCard (LiqPay) UAH https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_VLPUSD'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Visa/MasterCard (LiqPay) USD https://liqpay.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_QIWITR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через QIWI Терминалы (КИВИ) http://qiwi.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_QKPRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Quickpay Терминалы http://quickpay.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_VTUUAH'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Все терминалы Украины http://webmoney.ua/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SBRRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через СберБанк терминалы http://sbrf.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SKBRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через СтройкредитБанк терминалы http://www.stroycredit.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_EXNRUR'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через Элекснет терминалы http://www.elecsnet.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SMSCON'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через SMScoin http://smscoin.com/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SMSMTS'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через СМС МТС http://www.mts.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
	  $this->SettingsFields['CONF_PAYMENT_SPRYPAY_SMSMGF'] = array(
						'settings_value'		  => '',
						'settings_title'		  => 'Оплата через СМС Мегафон http://megafon.ru/',
						'settings_description'	=> 'Показать или скрыть данную оплату покупателю | Работает только при включеном из параметров: <b>spSelectedPS, spForbiddenPS !!!</b>',
						'settings_html_function'  => 'setting_CHECK_BOX(',
						'sort_order'			  => 1,
		 );
  
}
function after_processing_html($orderID,$active = true)
{
  $order = ordGetOrder( $orderID );
  $exhange_rate = 1;
  $exhange_round = 2;
  
		$order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");
  $fields; // Добавление полей формы в ассоциативный массив
  
   $fields{"spShopId"}  = $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_MERCHANTID'); // Номер магазина в системе SpryPay
   $fields{"spShopPaymentId"} = $orderID; // номер заказа
   $fields{"spCurrency"} = $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_CURRENCY'); // Валюта платежа
   $fields{"spPurpose"} = str_replace("[orderID]",$orderID, $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_PURPOSE')); //Описание товара или услуги
   $fields{"spAmount"}  = $order_amount; // сумма заказа
   $fields{"spIpnUrl"}	 = 'http://'.$_SERVER['HTTP_HOST'].'/index.php?sprypay';
   $fields{"spIpnMethod"}  = "1"; //формат: '1' для POST, '0' для GET метода
   $fields{"spSuccessUrl"} = 'http://'.$_SERVER['HTTP_HOST'].'/index.php?sprypay&success_url';
   $fields{"spSuccessMethod"} = "1";//формат: '1' для POST, '0' для GET метода
   $fields{"spFailUrl"}	= 'http://'.$_SERVER['HTTP_HOST'].'/index.php?sprypay&fail_url';
   $fields{"spFailMethod"} = "1";//формат: '1' для POST, '0' для GET метода
   //Платежные системы
   $selectps = array ('HNDBNK','LRVEUR','LRVUSD','LQPEUR','LQPRUR','LQPUAH','LQPUSD','MMLRUR','MMLUSD','PFMUSD','QIWIPR','RBKRUR','SPREUR','SPRRUR','SPRUAH','SPRUSD','W1RUR','WMEUR','WMRUR','WMUAH','WMUSD','DMRRUR','YNDRUR','CNTRUR','RPRUR','ERSRUR','SVZRUR','AFCRUR','BNKRUR','FKTRUR','PP','VLPEUR','VLPRUR','VLPUAH','VLPUSD','QIWITR','QKPRUR','VTUUAH','SBRRUR','SKBRUR','EXNRUR','SMSCON','SMSMTS','SMSMGF');
   $fieldsps = $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_SELECTPS');
   // Формирование HTML-кода платежной формы
				$res = "";
				$res .=
						"<table width='100%'>\n".
						"		<tr>\n".
						"				<td align='center'>\n".
						"<form id=\"payform\" method=\"POST\" action=\"http://sprypay.ru/sppi/\" accept-charset=\"UTF-8\" target=\"_blank\" tooltip=\"( откроется в новом окне )\">\n";
	foreach($fields as $key => $val) {
	 $res .= "<input type=\"hidden\" name=\"$key\" value=\"$val\"/>\n";
	}
	if($fieldsps == "spSelectedPS"){
	 $res .= "<input type=\"hidden\" name=\"spSelectedPS\" value=\"";
	 foreach($selectps as $spPsName){
	  if($this->_getSettingValue('CONF_PAYMENT_SPRYPAY_'.$spPsName)){$res .=$spPsName.",";}
	 }
	 $res .="\"/>\n";
	}else if($fieldsps=="spForbiddenPS"){
	 $res .= "<input type=\"hidden\" name=\"spForbiddenPS\" value=\"";
	 foreach($selectps as $spPsName){
	  if($this->_getSettingValue('CONF_PAYMENT_SPRYPAY_'.$spPsName)){$res .=$spPsName.",";}
	 }
	 $res .="\"/>\n";
	}else if($fieldsps=="not_found"){
	 $res .= "<input type=\"hidden\" name=\"spSelectedPS\" value=\"\"/>\n";
	 $res .= "<input type=\"hidden\" name=\"spForbiddenPS\" value=\"\"/>\n";
	}
	$res .= "<table cellspacing='0' cellpadding='0' class='fsttab'><tr><td><table   cellspacing='0' cellpadding='0' class='sectb'><tr><td><a href='#' onclick='document.getElementById(\"payform\").submit(); return false'>".STRING_PAY_NOW."</a></td></tr></table></td></tr></table>\n".
						"</form>\n".
						"				</td>\n".
						"		</tr>\n".
						"</table>";
return $res;
}
		function after_payment_php( $orderID, $_params)
  {
				$res = '';
				  
	$skey = $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_SKEY');
	// Извлечение всех параметров POST-запроса
	foreach($_params as $name => $value){
	  $params[$name] = $value;
	}
	 if (strtoupper($_params["status"]) == "1"){
	  ostSetOrderStatusToOrder($_params["spShopPaymentId"], $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_ORDERSTATUS'));
	  $res = 'Заказ #' . $_params["spShopPaymentId"] . ' оплачен! <a href=http://'.$_SERVER['HTTP_HOST'].'> Вернуться на главную</a>';
	 } else if (strtoupper($_params["status"]) == "0" and $_params["s"]==$skey){
	   ostSetOrderStatusToOrder($_params["spShopPaymentId"], $this->_getSettingValue('CONF_PAYMENT_SPRYPAY_ORDERSTATUS_CLOSE'));
	  $res = 'Заказ #' . $_params["spShopPaymentId"] . ' отменен! <a href=http://'.$_SERVER['HTTP_HOST'].'> Вернуться на главную</a>';
	 } else {
	  // Случилось что-то странное, пришло неизвестное состояние заказа
	  $res = 'Неверное состояние заказа: '. $_params["spShopPaymentId"].'<a href=http://'.$_SERVER['HTTP_HOST'].'> Вернуться на главную</a>';
	 }
				return $res;
		}
};
?>

2) Копируем ниже код в конец файла helper.php перед закрывающим тегом php "?>" в директории "core\includes\"
Код:

// Helper for SpryPay by Maxim web-kotlas.ru
  if(isset($_REQUEST["sprypay"])){
$result = '';

if (isset($_REQUEST["success_url"]) or isset($_REQUEST["fail_url"])){
   // список переменных, которые должны присутствовать в запросе с данными платежа
$spQueryFields = array('spPaymentId', 'spShopId', 'spShopPaymentId', 'status','s');

// проверим, что все они присутутвуют в запросе
foreach($spQueryFields as $spFieldName) if (!isset($_REQUEST[$spFieldName])) exit("Error: в запросе с данными платежа отсутствует параметр `$spFieldName`");
$result = '1';
  if ($result == '1'){
		$orderID = (int) $_REQUEST["spShopPaymentId"];
		$q = db_query( "select paymethod  from ".ORDERS_TABLE." where orderID=".$orderID);
		$order = db_fetch_row($q);

		if ( $order )
		{
			$paymentMethod = payGetPaymentMethodById( $order["paymethod"] );
			$currentPaymentModule = modGetModuleObj( $paymentMethod["module_id"], PAYMENT_MODULE );
			if ( $currentPaymentModule != null ){
   $result = $currentPaymentModule->after_payment_php($orderID, $_REQUEST);
   }else {
   $result = 'Магазин не может обработать платеж из-за повреждения модуля оплаты "SpryPay"';
   }
			if ($result != '') die($result);
	   } else {
	  $result = 'Заказ #'.$orderID.' не найден в базе магазина';
	}
exit($result);
}
}else{

// Проверка наличия необходимых параметров в POST-запросе

// список переменных, которые должны присутствовать в запросе с данными платежа
$spQueryFields = array('spPaymentId', 'spShopId', 'spShopPaymentId', 'spBalanceAmount', 'spAmount', 'spCurrency', 'spCustomerEmail', 'spPurpose', 'spPaymentSystemId', 'spPaymentSystemAmount', 'spPaymentSystemPaymentId', 'spEnrollDateTime', 'spHashString', 'spBalanceCurrency');

// проверим, что все они присутутвуют в запросе
foreach($spQueryFields as $spFieldName) if (!isset($_POST[$spFieldName])) exit("Error: в запросе с данными платежа отсутствует параметр `$spFieldName`");

// ваш секретный ключ, задается в настройках магазина
$orderID = (int)$_REQUEST["spShopPaymentId"];
$p = db_query( "select paymethod  from ".ORDERS_TABLE." where orderID=".$orderID);
	$payment = db_fetch_row($p);
$paymentMethod = payGetPaymentMethodById( $payment["paymethod"] );
	$currentPaymentModule = modGetModuleObj( $paymentMethod["module_id"], PAYMENT_MODULE );
$idpay= "CONF_PAYMENT_SPRYPAY_SECURITYKEY_".$paymentMethod["module_id"];
$s= db_query( "select settings_value from ".SETTINGS_TABLE." where settings_constant_name='".$idpay."'");
$secret = db_fetch_row($s);
$yourSecretKeyString = md5($_POST['spPaymentId'].$_POST['spShopId'].$_POST['spShopPaymentId'].$_POST['spBalanceAmount'].$_POST['spAmount'].$_POST['spCurrency'].$_POST['spCustomerEmail'].$_POST['spPurpose'].$_POST['spPaymentSystemId'].$_POST['spPaymentSystemAmount'].$_POST['spPaymentSystemPaymentId'].$_POST['spEnrollDateTime'].$secret['settings_value']);

// получим контрольную подпись
$localHashString = $yourSecretKeyString;

// сравним полученную подпись и ту, что пришла с запросом
if ($localHashString==$_POST['spHashString'])
{
  // все хорошо, далее делаем проверку заказа
  if ($result == ''){
		$orderID = (int) $_REQUEST["spShopPaymentId"];
		$q = db_query( "select paymethod  from ".ORDERS_TABLE." where orderID=".$orderID);
		$order = db_fetch_row($q);
		if ( $order )
		{
			$paymentMethod = payGetPaymentMethodById( $order["paymethod"] );
			$currentPaymentModule = modGetModuleObj( $paymentMethod["module_id"], PAYMENT_MODULE );
			if ( $currentPaymentModule != null ){
   $result = $currentPaymentModule->after_payment_php($orderID, $_REQUEST);
   }else {
   $result = 'Магазин не может обработать платеж из-за повреждения модуля оплаты "SpryPay"';
   }
			if ($result != '') die($result);
		} else {
	  $result = 'Заказ #'.$orderID.' не найден в базе магазина';
	}
}
exit("ok");
}
else
{
// подписи не совпали
exit("Error: не совпали контрольные подписи; локальная: `$localHashString`; в запросе:`".$_POST['spHashString']."`");
}
}}
// End Helper for SpryPay by Maxim web-kotlas.ru

3) Копируем ниже код в конец файла setting_functions.php перед закрывающим тегом php "?>" в директории "core\functions\"
Код:

// PAYMENT SPRYPAY by Maxim web-kotlas.ru
function setting_PAYMENT_SPRYPAY_CURRENCY_SELECT($_SettingID){
  $Options = array(array('title'=>ADMIN_NOT_DEFINED, 'value'=>'rur',));
  $Currencies = currGetAllCurrencies();
  $Options = array(
	array(
	'title' => 'Рубли',
	'value' => 'rur'
	),
	array(
	  'title' => 'Гривны',
	  'value' => 'uah'
	),
	array(
	  'title' => 'Доллары',
	  'value' => 'usd'
	),
	array(
	  'title' => 'Евро',
	  'value' => 'eur'
	)
  );
  return setting_SELECT_BOX($Options, $_SettingID);
}
function setting_PAYMENT_SPRYPAY_SELECTPS($_SettingID){
  $Options = array(array('title'=>ADMIN_NOT_DEFINED, 'value'=>'',));
  $Currencies = currGetAllCurrencies();
  $Options = array(
	array(
	'title' => 'Не определенно',
	'value' => 'not_found'
	),
	array(
	  'title' => 'spSelectedPS',
	  'value' => 'spSelectedPS'
	),
	array(
	  'title' => 'spForbiddenPS',
	  'value' => 'spForbiddenPS'
	)
  );
  return setting_SELECT_BOX($Options, $_SettingID);
}
//END PAYMENT SPRYPAY by Maxim web-kotlas.ru

4) Заходим в файл transaction_result.php в директории "core\includes\" после строки:

if(isset($_REQUEST["LMI_PAYMENT_NO"])) $orderID = (int)$_REQUEST["LMI_PAYMENT_NO"];

Копируем и вставляем строку:

if(isset($_REQUEST["spShopPaymentId"])) $orderID = (int)$_REQUEST["spShopPaymentId"];//SpryPay web-kotlas.ru