Перейти к содержанию
Форум поддержки пользователей VamShop

проблемы с модулем оплаты liqpay


freebsd_admin

Рекомендуемые сообщения

добрый день.

тестирую модуль оплаты liqpay

добавил айди мерчанта и подпись, и статус заказа после оплаты

покупаю тестовый товар

оплата ликпей происходит, но когда с сайта ликпей мы возвращаемся в магазин получаю ошибку

Warning: addslashes() expects parameter 1 to be string, array given in /usr/local/www/shop/inc/vam_address_format.inc.php on line 66

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/shop164/inc/vam_address_format.inc.php:66) in /usr/local/www/shop/inc/vam_redirect.inc.php on line 47

При этом оплата с ликпей уходит. Но статус заказа не меняется и соответственно невозможно из админки понять оплачен заказ или нет

помогите пожалуйста разобраться и правильно настроить модуль оплаты.

p.s. страна Украина, валюта гривня.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 63
  • Created
  • Последний ответ

Top Posters In This Topic

  • support

    30

  • freebsd_admin

    19

  • yulianna_yuliya

    13

  • Boris

    2

Попробуйте в /inc/vam_address_format.inc.php поменять:


if ($firstname == '') $firstname = addslashes($address['name']);
if ($country == '') $country = addslashes($address['country']);
[/code] на:
[code]
if ($firstname == '') $firstname = addslashes((string)$address['name']);
if ($country == '') $country = addslashes((string)$address['country']);

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, помогло. Ошибки исчезли.

Возникла следующая проблема: после оплаты не поменялся статус заказа на выбранный в модуле liqpay.

Ссылка на сообщение
Поделиться на другие сайты

И еще в админке в настройках статуса заказа не выходит написать статус заказа для украинского языка. после обновления все остается по прежнему. Видно только русский вариант статуса. Возможно это связано с переходом и с версии 1.63 на 1.64 при импорте базы?

Ссылка на сообщение
Поделиться на другие сайты

Если модуль настроили так как написано здесь - http://vamshop.ru/forum/topic/8436-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8f-%d0%be%d0%bf%d0%bb%d0%b0%d1%82%d1%8b-liqpay/page__hl__liqpay__fromsearch__1

Всё меняется автоматически, проверено.

Ссылка на сообщение
Поделиться на другие сайты

id и пароль указаны..

"Укажите оплаченный статус заказа Доставлен"

оплата проходит, кидает обратно в магазин, но статус заказа старый.

Деньги нормально проходят.

Ссылка на сообщение
Поделиться на другие сайты

Проверьте, на месте ли у Вас файл http://магазин.ру/liqpay.php

Можете сами проверить на том же vamshop.ru, всё работает.

Ссылка на сообщение
Поделиться на другие сайты

Проверяйте тогда, что присылает liqpay.php на этот файл, какие данные приходят после платежа и смотрите, почему у Вас условие смены статуса заказа не работает, я не в курсе, что у Вас не так.

Ссылка на сообщение
Поделиться на другие сайты

поставил для эксперимента голый движок, создал товар, оплатил через ликпей. Сперва была ошибка как раньше, поменял две строки в

/inc/vam_address_format.inc.php. Ошибки пропали, деньги ушли, а статус не поменялся.. версия магазина 1.64

Проверяйте тогда, что присылает liqpay.php на этот файл, какие данные приходят после платежа и смотрите, почему у Вас условие смены статуса заказа не работает, я не в курсе, что у Вас не так.

А как и где это проверить?

Ссылка на сообщение
Поделиться на другие сайты

В /liqpay.php есть закомментированный код сохранения присылаемых $_POST данных от liqpay в log файл.

Вот расскомментируйте код, правильно укажите путь до лог файла, создайте лог файл, а затем смотрите, что присылает liqpay после оплаты и смотрите, почему у Вас не срабатывает.

Повторяю, что в текущей версии модуля liqpay всё работает, на том же vamshop.ru платят и всё меняется.

Ссылка на сообщение
Поделиться на другие сайты

Сделал как Вы сказали. В логе какая-то билиберда.

"2011-08-17 15:38:44 - signature= набор символов ;operation_xml = набор символов."

А какой текст должен быть в логе чтоб определить что все правильно работает?

Ссылка на сообщение
Поделиться на другие сайты

У Вас магазин какой версии вообще?

Если старой, то возьмите файлы /liqpay.php

/includes/modules/payment/liqpay.php из текущей версии и переустановите модуль в админке - модули - оплаты.

Всё правильно, данные присылает liqpay.

У Вас в магазине одна валюта?!

или разные и заказ в разных валютах оформляется?!

Для пробы, в /liqpay.php закомментируйте или удалите:


if ($xml->status == 'success') {
if (number_format($xml->amount,0) == number_format($order->info['total'],0)) {
[/code] и внизу:
[code]
}
}

Ссылка на сообщение
Поделиться на другие сайты

версия магазина 1.64

Валюта одна - гривна, русскую удалил в файле языка поменял RUR на UAH, в админке поставил использовать валюту текущего языка.

с кодом буду пробовать.

Ссылка на сообщение
Поделиться на другие сайты

Если у Вас не виртуальные товары, то можно конечно оставить, но если виртуальные, то не очень хорошо удалять условие.

Ссылка на сообщение
Поделиться на другие сайты

Товары как раз виртуальные.. Что нужно изменить чтоб заработало? Это проблема связана с изменением валюты?

Ссылка на сообщение
Поделиться на другие сайты

Оставил одно условие:

if ($xml->status == 'success') {

Платеж проходит, статус меняется. А что теперь делать со вторым условием? За что оно отвечает?

Ссылка на сообщение
Поделиться на другие сайты

Проверяется сумма заказа, видимо, оно не срабатывает у Вас.

Попробуйте поменять:

if (number_format($xml->amount,0) == number_format($order->info['total'],0)) {
[/code] на:
[code]if (number_format($xml->amount,0, '', '.') == number_format($order->info['total'],0, '', '.')) {

Ссылка на сообщение
Поделиться на другие сайты

Поменял, статус заказа не поменялся.

в описании валюты:


Название: Гривня
Код: UAH
Символ слева:
Символ справа: грн.
Десятичный знак: ,
Разделитель тысяч: .
Десятичные порядки: 2
Последний раз скорректировано:
Величина: 1.00000000
Пример:
30 = 30,00 грн.
[/CODE]

Ссылка на сообщение
Поделиться на другие сайты

Ну тогда нужно в лог файл писать значение $order->info['total'] и $xml->amount или как там.

И смотреть, что записалось, затем смотреть условие, почему не срабатывает.

Ссылка на сообщение
Поделиться на другие сайты

попробовал, не получилось вывести в лог файле.

Вот часть ответственная за лог:


$fp = fopen('/путь/liqpay.log', 'a+');
$str=date('Y-m-d H:i:s').' - ';
foreach ($_REQUEST as $vn=>$vv) {
$str.=$vn.'='.$vv.';';
}
fwrite($fp, $str."\n");
fclose($fp);
[/CODE]

Что именно нужно прописать и где чтоб вывести в логе эти переменные?

Ссылка на сообщение
Поделиться на другие сайты

И запись лога нужно вниз опустить, после:


$xml = simplexml_load_string($xml_decoded);
[/code]

Иначе не запишется ничего.

Ссылка на сообщение
Поделиться на другие сайты

×
×
  • Создать...