Перейти к содержимому


Модуль оплаты Единая касса


  • Вы не можете ответить в тему
Сообщений в теме: 102

#81 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 12 July 2014 - 10:15 PM

Такая ошибка возвращается когда заказ вручную поменян на статус оплачен!

Ну да, приходится в ручную менять статус, так как автомтическое переключение перестало срабатывать и не знаю где его вновь заставить переключать статус после оплаты... И поддержка не знает..
  • 0

#82 kery

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 134 сообщений
Репутация: 17
Начинающий

Отправлено 24 September 2014 - 06:05 AM

может кому понадобится переехал на новый сервер у меня настроен мод секюрити для защиты от атак, так вот он анализировал запрос от кассы как аномальный и выдавал в ответ 403 доступ запрещен, согласно своему протоколу modsecurity_crs_21_protocol_anomalies.conf, чтобы проходил запрос от кассы и автоматом менялся статус надо добавить в конфигурационный файл исключение на этот протокол
  • 0

#83 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 30 September 2014 - 08:25 AM

может кому понадобится переехал на новый сервер у меня настроен мод секюрити для защиты от атак, так вот он анализировал запрос от кассы как аномальный и выдавал в ответ 403 доступ запрещен, согласно своему протоколу modsecurity_crs_21_protocol_anomalies.conf, чтобы проходил запрос от кассы и автоматом менялся статус надо добавить в конфигурационный файл исключение на этот протокол


А как и где это сделать?
  • 0

#84 kery

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 134 сообщений
Репутация: 17
Начинающий

Отправлено 01 October 2014 - 02:29 PM

при доставке уведомления от кассы, ваш сервер должен выдавать ответ что уведомление обработано если нормально то статус меняется если чтото не так то вам приходит письмо от единой кассы с ответом, прикрепляю скрин в моем случае мой сервер запрещал доступ и выдавал код 403 т.е. доступ запрещен, надо смотреть что отвечает ваш сервер, и соответствующим образом править конфиг, в моем случает добавить исключение на этот протокол в конфигурационный файл модсекюрити

Прикрепленные файлы


  • 0

#85 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 23 January 2015 - 11:14 AM

Всвязи с плясками курса рубля, что бы не править постоянно цены, решили просто менять сам курс:
Изображение

Изображение

А цены выставляли от поставщика. Например Товар 1 - цена 1000руб.
В магазине цена была видна как 1300руб. (курс ставим 1.3)

И все бы хорошо, НО.. при проведении оплаты, когда чел переходит на Единую кассу - там цена стоит 1000руб.... :o

Остальные модули оплаты, например QIWI, WM, оплата напрямую на карту сбербанка - те цену показывают и принимают нормальную, с процентом - 1300руб

А Единая касса берет ту, что выставлена в магазине - 1000руб.

Подскажите где это можно поправить, что бы в Единую кассу цена шла с процентом, а не та, что выставлена у товара!
  • 0

#86 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 January 2015 - 12:28 PM

Подскажите где это можно поправить, что бы в Единую кассу цена шла с процентом, а не та, что выставлена у товара!

Например, в модуле WEBMONEY задается валюта, в которой происходит оплата. И код формирования суммы к оплате выглядит так :

function after_processing_html( $orderID )
{
$order = ordGetOrder( $orderID );

if ( $this->_getSettingValue('CONF_PAYMENTMODULE_WEBMONEY_MERCHANT_EXCHANGERATE') > 0 )
{
$exhange_curr = currGetCurrencyByID ( $this->_getSettingValue('CONF_PAYMENTMODULE_WEBMONEY_MERCHANT_EXCHANGERATE') );
$exhange_rate = $exhange_curr["currency_value"];
$exhange_round = $exhange_curr["roundval"];

}
else
{
$exhange_rate = 1;
$exhange_round = 2;
}

if ( (float)$exhange_rate == 0 ) $exhange_rate = 1;

$order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");


Т.е. если валюта оплаты в настройках модуля задана (не ноль), то функцией currGetCurrencyByID получаем курс и округление, исходя их которых и формируем отправляемую на сайт системы оплаты цену. А если валюта оплаты не задана, то задаем курс=1 и округление=2.

А вот если глянуть в модуль оплаты Единой кассы, то там хоть и задается валюта оплаты в настройках (константа CONF_PAYMENTMODULE_WMI_CURRENCY_ID), но почему-то не используется.
И код выглядит так:

function after_processing_html( $orderID )
{
$order = ordGetOrder( $orderID );
$exhange_rate = 1;
$exhange_round = 2;

$order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");

Т.е. курс вне зависимости от выбранной валюты всегда единица, а округление - две цифры после запятой.
Думаю, дальнейшие действия достаточно очевидны :).
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#87 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 23 January 2015 - 12:43 PM

Т.е. курс вне зависимости от выбранной валюты всегда единица, а округление - две цифры после запятой.
Думаю, дальнейшие действия достаточно очевидны :).


Спасибо. То есть можно добавить то, что есть в Веб Мони и заработает?... Сейчас попробуем .. :)
Или напрямую прописать
$exhange_rate = 1.3;
$exhange_round = 0; ?
  • 0

#88 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 January 2015 - 12:52 PM

Правильнее, конечно, добавить. Только имя константы, естественно, сменить.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#89 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 23 January 2015 - 02:06 PM

Не получилось..
Было:
function after_processing_html( $orderID )
		{
			$order = ordGetOrder( $orderID );
   $exhange_rate = 1;
   $exhange_round = 2;
  
			$order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");

Поменяли по аналогии с WM на:
function after_processing_html( $orderID )
				{
						$order = ordGetOrder( $orderID );
				 if ( $this->_getSettingValue('CONF_PAYMENTMODULE_WMI_CURRENCY_ID') > 0 )
				 {
						 $exhange_curr = currGetCurrencyByID ( $this->_getSettingValue('CONF_PAYMENTMODULE_WMI_CURRENCY_ID') );
						 $exhange_rate = $exhange_curr["currency_value"];
						 $exhange_round = $exhange_curr["roundval"];
					  
				 }
				  else
						{			  
						 $exhange_rate = 1;
						 $exhange_round = 2;
						}
			  
				 if ( (float)$exhange_rate == 0 ) $exhange_rate = 1;
					  
				 $order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");
Цена товара - 1000руб.
Курс валюты - 1.3
Цена в магазине - 1300руб.
Цена в Единой кассе при оплате - опять 1000руб.

блинский нафиг.. :angry:
  • 0

#90 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 January 2015 - 02:27 PM

Не получилось..

Почему не получилось? Все работает ровно так, как Вы написали. Просто константу неверно обозвали (на конце _ID, а не _I).
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#91 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 23 January 2015 - 05:30 PM

Ой, точно!!! ID.. исправили. Для верности снесли модуль оплаты Единой кассой, поставили заново... Неа - всеравно не учитывает курс.
Так и ставит 1000 вместо 1300...
  • 0

#92 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 January 2015 - 06:59 PM

Для верности снесли модуль оплаты Единой кассой, поставили заново... Неа - всеравно не учитывает курс.

Ну, в конце концов, поставьте вручную 1.3 вместо 1.
Не решать же на халяву ваши проблемы вместо своих :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#93 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 25 January 2015 - 07:19 PM

Ну, в конце концов, поставьте вручную 1.3 вместо 1.
Не решать же на халяву ваши проблемы вместо своих :).

Мы не просим решать наши проблемы - просто советуемся на форуме.
Вручную 1.3 вместо 1. так же не прокатывает...
  • 0

#94 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 January 2015 - 08:12 PM

Вручную 1.3 вместо 1. так же не прокатывает...

Этого не может быть. Смотрите в код. Либо откуда растут руки :).

1. задаем курс:
$exhange_rate = 1.3;

2. вычисляем сумму заказа:
$order_amount = _formatPrice(roundf($order["order_amount"]*$exhange_rate), $exhange_round, ".", "");

3. записываем эту сумму в массив, отправляемый в конечном итоге методом POST на сайт единой кассы:
$fields{"WMI_PAYMENT_AMOUNT"} = $order_amount;

Все. Уж не знаю, где тут можно умудриться накосячить :).

PS. Я проверил у себя - в Единую кассу отправляется умноженная на 1.3 сумма заказа.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#95 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 25 January 2015 - 09:05 PM

Видимо косяк наш был как раз в том, что подставив 1.3 не переустанавливали модуль оплаты. Сейчас сработало нормально. Спасибо Вам,
badisoft
  • 0

#96 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 25 January 2015 - 09:36 PM

Видимо косяк наш был как раз в том, что подставив 1.3 не переустанавливали модуль оплаты.

Переустановка модуля оплаты (снести и поставить заново) в некоторых случаях, действительно, требуется, но В ДАННОМ СЛУЧАЕ ни на что не влияет. Как не влияет и очистка кэша. Так что я даже не знаю, в чем можно было ошибиться, когда для желаемого результата надо было исправить 1 на 1.3 в единственной строчке :).

Раз уж заработало, то сделайте еще один шаг и закройте вопрос - исправьте по человечески, аналогично модулю WM.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#97 Lada

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 107 сообщений
Репутация: 7
Начинающий
  • ГородЧита

Отправлено 25 January 2015 - 10:38 PM

Так по аналогии с WM не работает... вернее работает наоборот - не прибавляет эти 30% а отнимает.. :huh:
  • 0

#98 vr-3d

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 53 сообщений
Репутация: 0
Начинающий
  • ГородКраснодар

Отправлено 24 April 2016 - 10:47 AM

Прошу помощи.
Версия движка 3.1.3
Настроил на своем магазине данный модуль, все корректно обрабатывает на сайте Кассы, оплата проходит, возвращает в магазин с успешной оплатой, но не изменяет автоматически статус заказа. У человека выше была подобная проблема, но судя по комментам решить ее не удалось (если что-то не углядел - извиняюсь). Магазин работает в защищенном режиме с протоколом HTTPS. Тех. поддержка Кассы молчит, но подозреваю что мой сайт отдает ответ кассе после оплаты как "заказ не найден в базе магазина". Заранее спасибо.
  • 0

#99 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 24 April 2016 - 06:55 PM

Магазин работает в защищенном режиме с протоколом HTTPS

А запрос-то от Единой Кассы на изменение статуса заказа по HTTPS идет или по HHTP?
Если по HTTP, то, наверняка, на сайте стоит безусловный редирект-301 HTTP->HTTPS, при котором теряется содержимое POST.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#100 vr-3d

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 53 сообщений
Репутация: 0
Начинающий
  • ГородКраснодар

Отправлено 25 April 2016 - 01:39 PM

Тех поддержка ответила:

Да, Касса отправляет в защищенном режиме по HTTPS. Поддержка ответила, что отправляется неверная подпись после оплаты. Вот их рекомендация: << В нашей системе Сигнатура формируется дважды: при формировании счета - Вы нам её отправляете при вызове формы, и второй раз когда наш сервер отправляет post-запрос на адрес Вашего скрипта-обработчика. Второй раз она у нас генерируется заново исходя из всех параметров, которые мы передаем. Плюс к тем, что Вы передаете нам, мы прибавляем еще несколько (со способом оплаты, статусом счета и др.) Ваш скрипт должен её получить, взять оттуда все значения, кроме Сигнатуры, и подписать своим ключом. И в итоге полученная Сигнатура должна совпасть той, что прислали наш сервер в post-запросе. Подробное описание того, как Ваш скрипт должен проверять и шифровать, представлено в Документации (длинный код чуть ниже с абзацем "Проверка источника данных"): https://www.walleton...entation/#step5 Пожалуйста, пропишите в своём скрипте корректную информацию и дождитесь новых запросов от нашего сервера. >> Прилагаю свой w1.php

Прикрепленные файлы

  • Прикрепленный файл  w1.php   15.57К   0 Количество загрузок:

  • 0