Модуль оплаты QIWI для osCommerce

Статус
В этой теме нельзя размещать новые ответы.

Razgildjay

Постоялец
Регистрация
1 Апр 2010
Сообщения
120
Реакции
14
Cуществует ли модуль оплаты через терминалы QIWI для магазинов на базе osCommerce?
 
Примерно такой же вопрос задается на _http://oscomm.biz и он без ответа.
порывшись чуть больше нашел ссылку на готовый модуль:
 
Отлично! Еще бы гарантии... Хотя цена вопроса не очень значительна.
 
Отправлял этим ребятам письмо, чтобы удостовериться, что еще кто-то жив. До сих пор ответа жду, 3-й месяц пошел... А сейчас и сайт ихний мохнатым местом накрылся.

В одной из вамовских сборок вроде бы есть модуль QIWI. Кто-нибудь его пользовал?
 
тоже интересует этот модуль. Попутно модуль для оплаты через Элекснет
 
А в чем проблема взять этот модуль с вамшопа или shopos?. Это ведь одна и та же система. На сайте вамшопа есть инструкция, как перенести модуль с оскоммерца на вамшоп, просто сделайте все наоборот :)
 
Есть такой в 213 патче
 
Он-то есть. Я его уже посмотрел, но не тестировал совсем.
Интересует работоспособность данной штуки, а то будет как с вамовским модулем доставки EMS - проще написать самому, чем использовать ЭТО.
 
Нет пока не тестировал. Мне изначально не нравится что счет выставляется клиенту сразу после оформления заказа, до того как заказ проверят менеджеры. Мало ли может на складе товара уже нет, а клиент успеет оплатить по счету. Я как раз собираюсь начинать разбираться с этим вопросом. Нужно перенести формирование счета из checkout в account_history_info. Если в курсе что за код отвечает за формирование подскажите. Я пока не смотрел модуль. Сейчас как раз сижу разбираюсь с EMS. Не понятно что модуль получает с сайта и не понятно что отправляет. Но город отправителя точно не отправляет или не получает. Город получателя вроде отправляет. Максимальный вес не проверяет города куда EMS не доставляется то же. Сумма выдается от балды. С таким же успехом вместо этого модуля можно генератор случайных чисел использовать. Интересно он вообще тестировался. Может кто то это уже исправил? Или рабочий ссылку на рабочий модуль подскажите, на любой, хочу глянуть как там запросы организованы.
 
Я лично вамовскими сборками не пользуюсь. Смотрю их только ради интереса или ради вот таких вот модулей типа QIWI или EMS. Но в 99% их приходится ковырять и переделывать под себя.
На счет автоматического выставления счета - это палка о двух концах, есть и плюсы и минусы, минусов больше, ИМХО.

С EMS-модулем помочь могу. Могу прямо в данной теме, могу в отдельной. Лишь бы модераторы не сочли офтопом.

Короче. Работает ээта байда через cURL, поддержка должна быть включена на хостинге.
Далее топаем в функцию quote() и правим ее, правим....
Я выделил код запроса на сервер EMS и ответа в отдельную функцию. Самый первый раз я передаю ей урл _http://emspost.ru/api/rest/?method=ems.get.locations&type=russia чтобы получить список городов и регионов России. на максимальный вес можно забить, т.к. дл России он везде одинаков, а международной доставки у меня нет. Ответ заносим в переменную ems_zones, я до кучи юзаю кэш, который в вамовской сборке отсутствует.

Далее я получаю город по индексу (но это сугубо моя личная сборка), можно использовать город, который указал клиент, лишь бы он был указан корректно, без лишних символов, опечаток и прочих прелестей. Конвертим город в UTF-8 и ищем его в нашем массиве с регионами ems_zones['rsp']['locations'] и сравниваем со значением в ems_zones['rsp']['locations']['name'] предварительно преобразовав оба значения к одному регистру, например нижнему.

Если город не найден, то берем регион (у меня автоматом по индексу, но можно взять из $order->delivery['state']. Проделываем ту же самую операцию, что и с городом. Удобнее всего вынести это в функцию. Функция при нахождении совпадения должна возвращать значение ems_zones['rsp']['locations']['value'] - это и будет искомыый город или регион в транслите.
Далее остается только найти город отправки по аналогичному алгоритму и можно все это скармливать EMS серверу. Например так:
PHP:
$url = 'http://emspost.ru/api/rest?method=ems.calculate&from='.$from_city.'&to='.$to_city.'&weight='.$shipping_weight.'&type=att';
В итоге мы получим ответ о стоимости.

Я бы еще рекомендовал вставить такую строку
PHP:
      if ($results['rsp']['stat'] != 'ok') {
        $this->quotes['error'] = MODULE_SHIPPING_RUSSIANPOSTEMS_ERROR;
      }
после
PHP:
      if ($this->tax_class > 0) {
        $this->quotes['tax'] = tep_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
      }
переменная $results здесь хранит ответ сервера, а MODULE_SHIPPING_RUSSIANPOSTEMS_ERROR - это Ваше сообщение об ошибке в случае неудачного расчета.

Все очень просто. Но должен предостеречь, что регион из таблицы вамовского магазина не всегда совпадают с регионами, которые возвращаются в запросе EMS, например проблему будут с Кабардой, Чечней, ХМАО, словом, всеми республиками и автономными округами. Для их использования требуется таблица соответствия названий, как и для модуля СПСР.

А вамовскую функцию make_alias() из general.php следует назамедлительно кастрировать, как вредную и мешающую нормальной работе модуля дооставки EMS!
Удачи! :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху