Перейти к содержанию

wlad

Новичок
  • Публикаций

    16
  • Зарегистрирован

  • Посещение

Репутация

2 Обычный

Информация о wlad

  • Звание
    Пользователь

Контакты

  • Сайт
    http://hardopt.by

Информация

  • Пол
    Мужчина
  • Город:
    Новополоцк
  • Интересы
    hardopt.by Лицензионное программное обеспечение windows office server 1c kaspersky в Беларуси
  1. как не хотелось бы, но пришлось модифицировать движок магазина. Содержимое файла xml для vqmod <modification> <id>Erip Cyrillic</id> <version>1.0</version> <vqmver>2.1.5</vqmver> <author>Vlad</author> <file name="/system/library/request.php"> <operation> <search position="replace"><![CDATA[$data = htmlspecialchars($data, ENT_COMPAT,'UTF-8');]]></search> <add><![CDATA[if(preg_match('//u', $data)) {$data = htmlspecialchars($data, ENT_COMPAT,'UTF-8');} else {$data = htmlspecialchars($data, ENT_COMPAT,'Windows-1251');}]]> </add> </operation> </file> </modification> если у хостера php 5.4, то htmlspecialchars($data, ENT_COMPAT,'UTF-8'); - не пропустит ничего кириллического отличного от UTF-8.
  2. Таки нашел заразу. /system/library/request.php public function clean($data) { if (is_array($data)) { foreach ($data as $key => $value) { unset($data[$key]); $data[$this->clean($key)] = $this->clean($value); } } else { $data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8'); } return $data; чистит сообщения. Осталось разобраться по какому условию OPENCART не пропускает кирилицу win_1251
  3. сделал отдельный лог на входящие POST как тут: https://ilser.by/blog/zametki-sisadmina/logirovanie-post-zaprosov-k-sajtu/ и оно таки доходит. Обрезает опенкарт. Где капнуть????
  4. Похоже проблема с входящими сообщениями в кириллице windows-1251. Затирает сообщения или магазин или хостер. При чем все символы, включая цифры, анг буквы и пр.. Может было у кого?
  5. Доброго всем. Есть проблемма. Пишу модуль оплаты. Валидация оплаты проходит после посылки 3-х последовательных POST запросов от системы оплаты и моих ответов на каждый запрос. В элементе пост запроса с именем XML получаю сообщения, обрабатываю их и отвечаю. Все проходит нормально, кроме отмены оплаты. По словам тех поддержки системы оплаты, в случае отмены они шлют точно такой же POST как и в других ситуациях (теже заголовки и тп). Отличия только в самом XML сообщении. На входе функции приема сообщения от системы оплаты логирую $_POST['XML']. Во всех ситуациях кроме отмены оплаты элемент массива содержит xml сообщение. В случае отказа от оплаты, $_POST['XML'] существует, но пустой. Вот таким его отправляют мне: <?xml version="1.0" encoding="windows-1251" ?> <ServiceProvider_Request> <DateTime>20140212173811</DateTime> <Version>1</Version> <RequestType>TransactionResult</RequestType> <PersonalAccount>1092</PersonalAccount> <Currency>974</Currency> <RequestId>27214</RequestId> <TransactionResult> <TransactionId>681545</TransactionId> <ServiceProvider_TrxId>681545</ServiceProvider_TrxId> <ErrorText>Операция отменена</ErrorText> </TransactionResult> </ServiceProvider_Request> Почему он может пропадать? Спасибо.
  6. Елки. Тяжело то как без опыта :). Неделю разбирался с алгоритмом изменения статуса заказа. Анализировал работу других модулей. Пришел к выводу, что после нажатия кнопки подтвердить заказ происходит следующее. Клиент отправляется на сайт платежной системы. В базе данных магазина появляется заказ со статусом 0. Этот заказ не виден ни в админке ни в истории заказов у клиента, только в базе данных. Корзина остается полной. Если у клиента не получилось оплатить, он имеет возможность оплатить корзину еще раз. Старый заказ со статусом 0 остается в базе данных. Если от сайта оплаты приходит ответ о том что проплата прошла успешно, статус заказа изменяется на нужный (обычно выбирается в админке). Более сложные системы оплаты (ЕРИП в том числе), требуют прохождения нескольких этапов с приемом и отправкой сообщений на сервер системы оплаты. На каждом этапе по хорошему, нужно было бы менять статус заказа. С этим и разбираюсь. К тому же ipay просит реализацию как минимум 2-х модулей оплаты (с переходом на их сайт и с переходом на инструкцию по оплате ЕРИП на своем сайте). Модули будут похожие, но не одинаковые. Пока есть надежда что что-то получится. :)
  7. что-то получилось. ЕРИП не имеет единой точки входа. Клиент сам решает как ему лучше воспользоваться этим сервисом оплаты (банкомат, SMS или интернет банкинг и т.д) Поэтому после нажатия кнопки подтвердить заказ, клиент должен попасть на нашу страницу с инструкцией по оплате, где еще раз подтверждает оплату кнопкой. После этого, заказ закрывается и переходит в статус "ожидание оплаты". Корзина очищается. Клиент переходит на страницу checkout/success. Все переделано с начала. В качестве донора взят модуль webpay. Файлы скопированы, переименованы. Внутри исправлены названия переменных функций ссылок и т.д на erip___. Добавлена новая статья (eripinfo.php в папке payment и eripinfo.tpl в теме default) по уроку http://s-engineer.ru/dobavlyaem-novuyu-stranicu-sxemu-v-opencart/ Ссылка $this->data['action'] = $this->url->link('payment/eripinfo', '', 'SSL'); в файле controller/payment/erip.php открывает страницу с информацией об оплате, сообщает клиенту номер заказа. Скрипт в файле eripinfo.tpl добовляет на эту страницу кнопку и при нажатии "закрывает заказ". <div class="buttons"> <div class="right"> <input type="button" value="<?php echo $button_confirm; ?>" id="button-confirm" class="button" /> </div> </div> <script type="text/javascript"><!-- $('#button-confirm').bind('click', function() { $.ajax({ type: 'get', url: 'index.php?route=payment/erip/confirm', success: function() { location = '<?php echo $continue; ?>'; } }); }); //--></script> В файле eripinfo.php определяем переменные: $this->data['button_confirm'] = $this->language->get('button_confirm'); $this->data['continue'] = $this->url->link('checkout/success'); Дальше нужно принять данные от системы ЕРИП. Ковыряем функцию public function callback() в файле erip.php. Правильно?
  8. К сожалению не нашел способа добавить значение переменной "номер заказа" в статью. Но нашел урок по созданию собственных страниц в Opencart: http://s-engineer.ru/dobavlyaem-novuyu-stranicu-sxemu-v-opencart/ Клонировал home. В controller создал папку oplata. Новую страницу назвал erip. Создал файлы erip.php и erip.tpl. Все что надо поменял, как в уроке. В erip.tpl вывел в html инструкцию по оплате. В нужном месте вставил код заказа. <p> Номер выставленного Вам счета в системе "Расчет": <h3><?php //$this->load->model('checkout/order'); $order_info = $this->session->data['order_id']; echo $order_info; ?> </h3> </p> В файле модуля оплаты ipay.php ссылка на страницу с инструкцией об оплате выглядит так: $this->data['action'] = $this->url->link('oplata/erip', '', 'SSL'); Следующий этап, обработка заказа. После отображения страницы с инструкцией, корзина должна быть очищена, заказ помещен в обработку. Однако корзина не очищается. В каком месте модуля оплаты смотреть?
  9. Создал в админке новую статью с инструкцией об оплате (information_id=13). Ссылка на статью: $this->data['action'] = 'index.php?route=information/information&information_id=13'; номер заказа можно получить так: $this->session->data['order_id']. Правильно? Можно ли отобразить в этой статье номер заказа? Как это лучше сделать?
  10. Доброго дня. Не уверен приветствуется ли такое на этом ресурсе, но попробую. Делаю магазин. Нужен модуль оплаты. Поскольку имею базовые знания php и хотелось бы их углубить, прощу помощи разобраться с методикой создания модуля оплаты. Описание сервиса оплаты ipay Беларусь. Сервис умеет оплачивать: 1. СМС-оплата для абонентов МТС и life:) - сформировать и отобразить клиенту текст СМС, который он должен отправить на номер 553 для оплаты своего заказа. Например, "Отправьте на номер 553 СМС с текстом: 444 999999" 2. Оплата через сайт системы iPay для абонентов МТС - переадресация клиентов на сайт iPay по ссылке для оплаты с баланса МТС; 3. Оплата через сайт системы iPay для абонентов мобильной сети life:) - переадресация клиентов на сайт iPay по ссылке для оплаты с баланса life:). 4.Оплатить через систему "Расчет" (ЕРИП). Оплата заказа в инфокиосках, банкоматах, интернет и SMS-банкингах в банках участниках системы "Расчет". Вот этот 4-й пункт мне более всего интересен. Первые три пока даже не уверен, что буду реализовывать. По поводу этого 4-го пункта. Клиент формирует корзину, выбирает доставку, метод оплаты и попадает на страницу, где ему я сообщаю инструкции, номер заказа и идентификатор получателя платежа. Например: Номер выставленного Вам счета в системе "Расчет": 999999 Запишите номер счета - он понадобится Вам для оплаты. Сформированный счет Вы можете оплатить: - в любой кассе или банкомате ближайшего банка; - через платежные терминалы, инфокиоски; - через системы интернет-банкинга и СМС-банкинга; - через платежные системы iPay, WebMoney, Easypay. Найдите в перечне услуг системы "Расчет" следующую услугу (указать точное расположение в дереве услуг ЕРИП): + Платежи по Беларуси (ЕРИП) + Интернет-магазины/сервисы + H > мой_магазин.by и введите номер выставленного Вам счета. То есть нет единого места-сайта откуда может поступить платеж. Я взял за основу модуль платежа донор liqpay. Изменил название файлов модуля в админке и каталоге на ipay.php Заменил внутри в файлах соответственно "liqpay" на "ipay". Заменил в переводе на ipay. 1. Мне нужно по кнопке "подтвердить заказ", отправить клиента на свою страничку с инструкцией Для этого в файле \catalog\controller\payment\ipay.php я должен передать ссылку на инструкцию $this->data['action'] = 'ссылка'; Как лучше создать такую страничку с инструкцией и как будет выглядить ссылка на неё?
  11. По картинкам я закрыл вопрос. Image Searh. Недорого для начинающего магазина и реально работает быстро и удобно. А вот с описаниями .... Хотелось бы иметь оффлайн помощник создания описаний товаров. Вижу что e trade CC справиться с моей задачей. Но 300 уй... Да и работает демо версия как то не стабильно что ли (может показалось)... Хотелось программку на винду, в которой задать заранее набор характеристик для разных групп товаров. Ну и чтоб она на выходе генерировала HTML код-табличку (настраиваемый) с описанием товара. Функции парсера не интересуют. Может кто решал эту проблему?
  12. Спасибо друг! Хотел послать тебя за такой ответ. Но подышал... подумал.... Нашел скачал бесплатный модуль доставки. Посмотрел, что движок оно не трогает. Короче исправил все где встречалось "Free" на "Free2" не только в названиях фалов но и внутри в новых файлах Free2.php *.tpl. Заработало.
  13. Тоже надо две бесплатные доставки на разные регионы. Для одного региона бесплано при заказе от 10-уй для второго от 30-уй. Сделал копию файла Free c именем Free2 в папке /admin/controller/shipping + копию в папке admin/language/russian/shipping. В файле Free2 изменил вторую строку на class ControllerShippingFree2 extends Controller {. Модуль появился в админке. Установился... Но при редактировании его настроек данные берутся и изменяются в оригинальном модуле free. Где бы еще поковырять...
  14. или удалить английский язык...Система-локализация-языки.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.