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

Изменение статуса заказа


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

День добрый!

 

Пользуемся для онлайн-оплаты сервисом payonline.ru

Оплата проходит успешно и покупателя после оплаты возвращает в магазин, но в заказах не изменяется статус. Как был "Подтвержден", так и остался, хотя в настройках модуля стоит "оплаченный статус заказа" - "Подготовка к отправке".

Возможно это дело в настройках интеграции на payonline.ru. Скрин я прилагаю.

post-51997-0-85232000-1376731213_thumb.p

И на самом деле хотелось бы, чтобы изменялся статус и при успешной и при неудачной оплате.
Ссылка на сообщение
Поделиться на другие сайты

К сожалению статус не изменился.

Куда ещё можно посмотреть? Убрать комментарии в файле и читать логи?

payonlinesystem.php

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

Ну да, нужно смотреть, что присылает 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;
//}
}
Ссылка на сообщение
Поделиться на другие сайты

Попробовал без проверки $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);

Провел операцию и логи оказались чистыми... как так?

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

Хм... добился чтобы логи всё таки писались и видимо нашел беду

В логах приблизительно так (хэ поменял)

2013-08-23 13:51:14 - lt_sid=YWNjb3VudDjhjghdfgiowuer3534kljfs89s2l;kcksjLKrwelw2LAyMDk2MjM1ODp2aXNpdG9yLXNlc3Npb246d29ya2VyLTY4MTgxMTMyNzU4MDM2MjY=;cookie_test=please_accept_for_session;livetex_uid=YWNjb3VudLkjfsd0234jkl0298492NzYxOnZpc2l0b3I6ODcwMDE2MDAyMDk2MjM1ODp2aXNpdG9yLXNlc3Npb246d29ya2VyLTY4MTgxMTMyNzU4MDM2MjY=;livetex_visit=3;
 
livetex сюда я думаю попадать не должен... Ваше мнение?
Ссылка на сообщение
Поделиться на другие сайты

Вы в настройках на сайте payonline поменяли GET на POST !?

 

Судя по логу, вообще ничего не пришло от payonline

 

При оплате payonline должен присылать информацию о платеже.

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

Ларчик просто открывался... На чекбокс "Вызывать CallBack для успешных операций" никто внимание не обратил в приложенном скриншоте...

Так, для успешных транзакций статус меняется. Как быть с неуспешными? Сделать копию payonlinesystem.php и изменить в нём MODULE_PAYMENT_PAYONLINESYSTEM_ORDER_STATUS_ID на id нужного мне статуса? Больше ничего не надо делать?

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

Понятно, хорошо, что разобрались.

 

А что с неуспешными? С ними надо что-то делать? По умолчанию просто статус не меняется ведь, если не было оплаты, да и это правильно, как мне кажется.

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