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