madlock 0 Опубликовано 17 августа, 2013 Жалоба Share Опубликовано 17 августа, 2013 День добрый! Пользуемся для онлайн-оплаты сервисом payonline.ru Оплата проходит успешно и покупателя после оплаты возвращает в магазин, но в заказах не изменяется статус. Как был "Подтвержден", так и остался, хотя в настройках модуля стоит "оплаченный статус заказа" - "Подготовка к отправке". Возможно это дело в настройках интеграции на payonline.ru. Скрин я прилагаю. И на самом деле хотелось бы, чтобы изменялся статус и при успешной и при неудачной оплате. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 17 августа, 2013 Жалоба Share Опубликовано 17 августа, 2013 CallBackURL Method попробуйте поставить POST Ссылка на сообщение Поделиться на другие сайты
madlock 0 Опубликовано 17 августа, 2013 Автор Жалоба Share Опубликовано 17 августа, 2013 К сожалению статус не изменился. Куда ещё можно посмотреть? Убрать комментарии в файле и читать логи? payonlinesystem.php Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 августа, 2013 Жалоба Share Опубликовано 18 августа, 2013 Ну да, нужно смотреть, что присылает payonline, наверное подпись не совпадает. Можно например убрать проверку подписи, это конечно не очень хорошо, но всё-таки, в /payonlinesystem.php поменяйте: if ($hash == $crc) { if (number_format($_POST['Amount'],2,'.','') == number_format($order->info['total'],2,'.','')) { $sql_data_array = array('orders_status' => MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID); vam_db_perform('orders', $sql_data_array, 'update', "orders_id='".$inv_id."'"); $sql_data_arrax = array('orders_id' => $inv_id, 'orders_status_id' => MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID, 'date_added' => 'now()', 'customer_notified' => '0', 'comments' => 'PayOnline System accepted this order payment'); vam_db_perform('orders_status_history', $sql_data_arrax); echo 'OK'.$inv_id; } } на: //if ($hash == $crc) { if (number_format($_POST['Amount'],2,'.','') == number_format($order->info['total'],2,'.','')) { $sql_data_array = array('orders_status' => MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID); vam_db_perform('orders', $sql_data_array, 'update', "orders_id='".$inv_id."'"); $sql_data_arrax = array('orders_id' => $inv_id, 'orders_status_id' => MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID, 'date_added' => 'now()', 'customer_notified' => '0', 'comments' => 'PayOnline System accepted this order payment'); vam_db_perform('orders_status_history', $sql_data_arrax); echo 'OK'.$inv_id; //} } Ссылка на сообщение Поделиться на другие сайты
madlock 0 Опубликовано 23 августа, 2013 Автор Жалоба Share Опубликовано 23 августа, 2013 Попробовал без проверки $hash и $crc. Всё равно статус не меняется... Создал payonline.log, проставил на него права 777, раскомментарил блок $fp = fopen('payonline.log', 'a+'); $str=date('Y-m-d H:i:s').' - '; foreach ($_REQUEST as $vn=>$vv) { $str.=$vn.'='.$vv.';'; } fwrite($fp, $str."\n"); fclose($fp); Провел операцию и логи оказались чистыми... как так? Ссылка на сообщение Поделиться на другие сайты
madlock 0 Опубликовано 23 августа, 2013 Автор Жалоба Share Опубликовано 23 августа, 2013 Хм... добился чтобы логи всё таки писались и видимо нашел беду В логах приблизительно так (хэ поменял) 2013-08-23 13:51:14 - lt_sid=YWNjb3VudDjhjghdfgiowuer3534kljfs89s2l;kcksjLKrwelw2LAyMDk2MjM1ODp2aXNpdG9yLXNlc3Npb246d29ya2VyLTY4MTgxMTMyNzU4MDM2MjY=;cookie_test=please_accept_for_session;livetex_uid=YWNjb3VudLkjfsd0234jkl0298492NzYxOnZpc2l0b3I6ODcwMDE2MDAyMDk2MjM1ODp2aXNpdG9yLXNlc3Npb246d29ya2VyLTY4MTgxMTMyNzU4MDM2MjY=;livetex_visit=3; livetex сюда я думаю попадать не должен... Ваше мнение? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 23 августа, 2013 Жалоба Share Опубликовано 23 августа, 2013 Вы в настройках на сайте payonline поменяли GET на POST !? Судя по логу, вообще ничего не пришло от payonline При оплате payonline должен присылать информацию о платеже. Ссылка на сообщение Поделиться на другие сайты
madlock 0 Опубликовано 26 августа, 2013 Автор Жалоба Share Опубликовано 26 августа, 2013 Ларчик просто открывался... На чекбокс "Вызывать CallBack для успешных операций" никто внимание не обратил в приложенном скриншоте... Так, для успешных транзакций статус меняется. Как быть с неуспешными? Сделать копию payonlinesystem.php и изменить в нём MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID на id нужного мне статуса? Больше ничего не надо делать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 августа, 2013 Жалоба Share Опубликовано 26 августа, 2013 Понятно, хорошо, что разобрались. А что с неуспешными? С ними надо что-то делать? По умолчанию просто статус не меняется ведь, если не было оплаты, да и это правильно, как мне кажется. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения