Вход Регистрация
Файл: core/modules/payment/zpayment.php
Строк: 180
<?php
/**
 * @connect_module_class_name CZpayment
 *
 */
// Zpayment method implementation

class CZpayment extends PaymentModule {

        function 
_initVars(){

                
$this->title                 "Z-payment";
                
$this->description         "Z-payment (www.z-payment.ru). Модуль работает в режиме автоматической оплаты. Этот модуль можно использовать для автоматической продажи цифровых товаров. Настройки:<br>Result Url - http(s)://адрес_магазина/index.php?zpayment=yes (POST method)<br>Success Url - http(s)://адрес_магазина/index.php?transaction_result=success (POST method)<br>Fail Url - http(s)://адрес_магазина/index.php?transaction_result=failure (POST method)<br>Другие настройки: не высылать предварительный запрос перед оплатой на Result URL, не высылать Merchant Key если Result URL обеспечивает безопасность.<br><b>Внимание!</b> Подтверждение платежа от Z-payment приходит в магазин не мгновенно, а спустя 5 минут после оплаты!";
                
$this->sort_order         0;
                
$this->Settings = array(
                                
"CONF_ZP_LMI_PAYEE_PURSE",
                                
"CONF_ZP_MERCHANT_KEY",
                                
"CONF_ZP_PASSWORD",
                                
"CONF_ZP_STATUS_AFTER_PAY",
                                
"CONF_ZP_SHOPCURRENCY"
                        
);
        }

        function 
_initSettingFields(){

                
$this->SettingsFields['CONF_ZP_LMI_PAYEE_PURSE'] = array(
                        
'settings_value'                 => '',
                        
'settings_title'                         => 'Идентификатор магазина',
                        
'settings_description'         => 'Целое число - идентификатор магазина в системе Z-PAYMENT Merchant. Назначается автоматически сервисом при создании нового магазина.',
                        
'settings_html_function'         => 'setting_TEXT_BOX(0,',
                        
'sort_order'                         => 1,
                );
                
$this->SettingsFields['CONF_ZP_MERCHANT_KEY'] = array(
                        
'settings_value'                 => '',
                        
'settings_title'                         => 'Секретный ключ Merchant Key',
                        
'settings_description'         => 'Строка символов, добавляемая к реквизитам платежа, высылаемым продавцу вместе с оповещением. Эта строка используется для повышения надежности идентификации высылаемого оповещения. Содержание строки известно только сервису Z-PAYMENT Merchant и продавцу!',
                        
'settings_html_function'         => 'setting_TEXT_BOX(0,',
                        
'sort_order'                         => 1,
                );
                
$this->SettingsFields['CONF_ZP_PASSWORD'] = array(
                        
'settings_value'                 => '',
                        
'settings_title'                         => 'Пароль инициализации магазина',
                        
'settings_description'         => '',
                        
'settings_html_function'         => 'setting_TEXT_BOX(0,',
                        
'sort_order'                         => 1,
                );
                
$this->SettingsFields['CONF_ZP_STATUS_AFTER_PAY'] = array(
                        
'settings_value'                 => '',
                        
'settings_title'                         => 'Статус заказа после оплаты',
                        
'settings_description'         => 'Укажите, какой статус присваивать заказу после совершения платежа. Рекомендуется установить тот же статус, что установлен в настройках магазина в качестве статуса завершенного заказа. Это позволит работать мгновенной доставке цифрового товара.',
                        
'settings_html_function'         => 'setting_ORDER_STATUS_SELECT(',
                        
'sort_order'                         => 1,
                );
                
$this->SettingsFields['CONF_ZP_SHOPCURRENCY'] = array(
                        
'settings_value'                 => '',
                        
'settings_title'                         => 'Валюта магазина',
                        
'settings_description'         => 'Выберите из списка валют Вашего интернет-магазина валюту, которая соответствует выбранной Вами валюте аккаунта Z-payment.',
                        
'settings_html_function'         => 'setting_CURRENCY_SELECT(',
                        
'sort_order'                         => 1,
                );
        }

        function 
after_processing_html$orderID )
        {

                
$order ordGetOrder$orderID );
            
            if ( 
$this->_getSettingValue('CONF_ZP_SHOPCURRENCY') > )
            {
                
$exhange_curr currGetCurrencyByID $this->_getSettingValue('CONF_ZP_SHOPCURRENCY') );
                
$exhange_rate $exhange_curr["currency_value"];
                
$exhange_round $exhange_curr["roundval"]; 
            
            }
             else
            {        
                
$exhange_rate 1;
                
$exhange_round 2;
            }
        
            if ( (float)
$exhange_rate == $exhange_rate 1;
            
                
$order_amount _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round".""");
                
$crc md5($this->_getSettingValue('CONF_ZP_LMI_PAYEE_PURSE').$orderID.$order_amount.$this->_getSettingValue('CONF_ZP_PASSWORD'));
                
$res '<form id="pay_zpayment" name="pay_zpayment" method="post" action="https://z-payment.ru/merchant.php">'."n".
                       
'<input type="hidden" name="LMI_PAYEE_PURSE" value="'.$this->_getSettingValue('CONF_ZP_LMI_PAYEE_PURSE').'">'.
                       
'<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="'.$order_amount.'">'.
                       
'<input type="hidden" name="LMI_PAYMENT_DESC" value="Оплата счёта #'.$orderID.'">'.
                       
'<input type="hidden" name="LMI_PAYMENT_NO" value="'.$orderID.'">'.
                       
'<input type="hidden" name="CLIENT_MAIL" value="'.$order["customer_email"].'">'.
                       
'<input type="hidden" name="ZP_SIGN" value="'.$crc.'">'.
                       
'</form><table cellspacing="0" cellpadding="0" class="fsttab"><tr><td><table cellspacing="0" cellpadding="0" class="sectb"><tr><td>'.
                       
'<a href="#" onclick="document.getElementById('pay_zpayment').submit(); return false">'.STRING_PAY_NOW.'</a></td></tr></table></td></tr></table>';

                return 
$res;

        }

        function 
after_payment_php$orderID$params){
                
                
$res '';
                
$order ordGetOrder$orderID );
                
$skey $this->_getSettingValue('CONF_ZP_MERCHANT_KEY');
                
$merch_bd strtoupper($this->_getSettingValue('CONF_ZP_LMI_PAYEE_PURSE'));
          
            if ( 
$this->_getSettingValue('CONF_ZP_SHOPCURRENCY') > )
            {
                
$exhange_curr currGetCurrencyByID $this->_getSettingValue('CONF_ZP_SHOPCURRENCY') );
                
$exhange_rate $exhange_curr["currency_value"];
                
$exhange_round $exhange_curr["roundval"]; 
            
            }
             else
            {        
                
$exhange_rate 1;
                
$exhange_round 2;
            }
        
            if ( (float)
$exhange_rate == $exhange_rate 1;
            
                
$order_amount _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round".""");
                
$OutSum_x _formatPrice($params["LMI_PAYMENT_AMOUNT"], $exhange_round".""");
                
$crc strtoupper(md5($merch_bd.$params["LMI_PAYMENT_AMOUNT"].$params["LMI_PAYMENT_NO"].$params["LMI_MODE"].
                
$params["LMI_SYS_INVS_NO"].$params["LMI_SYS_TRANS_NO"].$params["LMI_SYS_TRANS_DATE"].$skey.$params["LMI_PAYER_PURSE"].$params["LMI_PAYER_WM"]));
                    if (
$order_amount && $merch_bd == strtoupper($params["LMI_PAYEE_PURSE"]) && $OutSum_x == $order_amount && $crc == strtoupper($params["LMI_HASH"])) {
                        
ostSetOrderStatusToOrder($order["orderID"],$this->_getSettingValue('CONF_ZP_STATUS_AFTER_PAY'));
                        
$res "YES";
                    }
                return 
$res;
        }


}
?>
Онлайн: 1
Реклама