freebsd_admin 0 Опубликовано 12 августа, 2011 Жалоба Share Опубликовано 12 августа, 2011 добрый день. тестирую модуль оплаты 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. страна Украина, валюта гривня. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 августа, 2011 Жалоба Share Опубликовано 12 августа, 2011 Попробуйте в /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']); Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 16 августа, 2011 Автор Жалоба Share Опубликовано 16 августа, 2011 Спасибо, помогло. Ошибки исчезли. Возникла следующая проблема: после оплаты не поменялся статус заказа на выбранный в модуле liqpay. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 16 августа, 2011 Автор Жалоба Share Опубликовано 16 августа, 2011 И еще в админке в настройках статуса заказа не выходит написать статус заказа для украинского языка. после обновления все остается по прежнему. Видно только русский вариант статуса. Возможно это связано с переходом и с версии 1.63 на 1.64 при импорте базы? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 16 августа, 2011 Жалоба Share Опубликовано 16 августа, 2011 Если модуль настроили так как написано здесь - 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 Всё меняется автоматически, проверено. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 16 августа, 2011 Автор Жалоба Share Опубликовано 16 августа, 2011 id и пароль указаны.. "Укажите оплаченный статус заказа Доставлен" оплата проходит, кидает обратно в магазин, но статус заказа старый. Деньги нормально проходят. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 16 августа, 2011 Жалоба Share Опубликовано 16 августа, 2011 Проверьте, на месте ли у Вас файл http://магазин.ру/liqpay.php Можете сами проверить на том же vamshop.ru, всё работает. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 16 августа, 2011 Автор Жалоба Share Опубликовано 16 августа, 2011 файл 1908 Jul 26 09:52 liqpay.php в корневой папке есть Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 16 августа, 2011 Жалоба Share Опубликовано 16 августа, 2011 Проверяйте тогда, что присылает liqpay.php на этот файл, какие данные приходят после платежа и смотрите, почему у Вас условие смены статуса заказа не работает, я не в курсе, что у Вас не так. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 поставил для эксперимента голый движок, создал товар, оплатил через ликпей. Сперва была ошибка как раньше, поменял две строки в /inc/vam_address_format.inc.php. Ошибки пропали, деньги ушли, а статус не поменялся.. версия магазина 1.64 Проверяйте тогда, что присылает liqpay.php на этот файл, какие данные приходят после платежа и смотрите, почему у Вас условие смены статуса заказа не работает, я не в курсе, что у Вас не так. А как и где это проверить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 В /liqpay.php есть закомментированный код сохранения присылаемых $_POST данных от liqpay в log файл. Вот расскомментируйте код, правильно укажите путь до лог файла, создайте лог файл, а затем смотрите, что присылает liqpay после оплаты и смотрите, почему у Вас не срабатывает. Повторяю, что в текущей версии модуля liqpay всё работает, на том же vamshop.ru платят и всё меняется. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 Сделал как Вы сказали. В логе какая-то билиберда. "2011-08-17 15:38:44 - signature= набор символов ;operation_xml = набор символов." А какой текст должен быть в логе чтоб определить что все правильно работает? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 У Вас магазин какой версии вообще? Если старой, то возьмите файлы /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] } } Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 версия магазина 1.64 Валюта одна - гривна, русскую удалил в файле языка поменял RUR на UAH, в админке поставил использовать валюту текущего языка. с кодом буду пробовать. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 17 августа, 2011 Автор Жалоба Share Опубликовано 17 августа, 2011 После того как закомментировал, все прошло удачно! Статус изменился. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2011 Жалоба Share Опубликовано 17 августа, 2011 Если у Вас не виртуальные товары, то можно конечно оставить, но если виртуальные, то не очень хорошо удалять условие. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 18 августа, 2011 Автор Жалоба Share Опубликовано 18 августа, 2011 Товары как раз виртуальные.. Что нужно изменить чтоб заработало? Это проблема связана с изменением валюты? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 августа, 2011 Жалоба Share Опубликовано 18 августа, 2011 Попробуйте хотя бы оставить одноу условие: if ($xml->status == 'success') { [/code] Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 19 августа, 2011 Автор Жалоба Share Опубликовано 19 августа, 2011 Оставил одно условие: if ($xml->status == 'success') { Платеж проходит, статус меняется. А что теперь делать со вторым условием? За что оно отвечает? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 августа, 2011 Жалоба Share Опубликовано 19 августа, 2011 Проверяется сумма заказа, видимо, оно не срабатывает у Вас. Попробуйте поменять: 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, '', '.')) { Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 19 августа, 2011 Автор Жалоба Share Опубликовано 19 августа, 2011 Поменял, статус заказа не поменялся. в описании валюты: Название: Гривня Код: UAH Символ слева: Символ справа: грн. Десятичный знак: , Разделитель тысяч: . Десятичные порядки: 2 Последний раз скорректировано: Величина: 1.00000000 Пример: 30 = 30,00 грн. [/CODE] Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 19 августа, 2011 Жалоба Share Опубликовано 19 августа, 2011 Ну тогда нужно в лог файл писать значение $order->info['total'] и $xml->amount или как там. И смотреть, что записалось, затем смотреть условие, почему не срабатывает. Ссылка на сообщение Поделиться на другие сайты
freebsd_admin 0 Опубликовано 21 августа, 2011 Автор Жалоба Share Опубликовано 21 августа, 2011 попробовал, не получилось вывести в лог файле. Вот часть ответственная за лог: $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] Что именно нужно прописать и где чтоб вывести в логе эти переменные? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 22 августа, 2011 Жалоба Share Опубликовано 22 августа, 2011 Наверное заменить $str на $str.=$xml->amount; Если нужно только это значение сохранить. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 22 августа, 2011 Жалоба Share Опубликовано 22 августа, 2011 И запись лога нужно вниз опустить, после: $xml = simplexml_load_string($xml_decoded); [/code] Иначе не запишется ничего. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения