public function onChangeCarrency() { $data = Input::all(); $rules = ['user_name' => 'required', 'user_email' => 'required|email', 'user_coupon' => 'coupon']; $messages = ['required' => ' Поле :attribute обязательное для заполнения', 'email' => 'Почта должна соответствовать adress@site.domain', 'coupon' => 'Такого купона нет или уже использвется']; Validator::extend('coupon', function ($attribute, $value, $parameters) { $product_id = $this->propertyOrParam('idParam'); /** $value, позможно, нужно защитить, хз)) */ return $this->loadCouponByValue($value); }); $validation = Validator::make($data, $rules, $messages); if ($validation->fails()) { /** Валидация не пройдена */ $this->page['errors'] = $validation->messages()->all(); } else { /** Валидация пройдена */ $this->page['user'] = $data; $this->page['product'] = $this->loadProduct(); $this->page['coupon'] = $this->loadCouponByValue($data['user_coupon']); $this->page['settings'] = Settings::instance(); $this->page['currencies'] = Currency::get()->keyBy('id')->toArray(); } }
} /** Проверка цены: */ if (post('LMI_PAYMENT_AMOUNT') == '' or post('LMI_PAYMENT_AMOUNT') !== $price) { die("ERROR: НЕВЕРНАЯ СУММА"); } /** Все нормально - выводим YES */ die("YES"); } else { /** Ключ */ $secret_key = Settings::get('wmz_secret_key'); /** Клеим строку */ $common_string = post('LMI_PAYEE_PURSE') . post('LMI_PAYMENT_AMOUNT') . post('LMI_PAYMENT_NO') . post('LMI_MODE') . post('LMI_SYS_INVS_NO') . post('LMI_SYS_TRANS_NO') . post('LMI_SYS_TRANS_DATE') . $secret_key . post('LMI_PAYER_PURSE') . post('LMI_PAYER_WM'); /** Шифруем полученную строку в SHA256 и переводим ее в верхний регистр */ $hash = strtoupper(hash("sha256", $common_string)); /** Прерываем работу скрипта, если контрольные суммы не совпадают */ if ($hash !== post('LMI_HASH')) { exit; } /**