Blashemy Опубликовано 20 февраля, 2013 Жалоба Поделиться Опубликовано 20 февраля, 2013 Настроил id мерчанта, на сайте liqpay настроил магазин, там вроде всё ок. Через сайт сделал тестовый товар с ценой 1 грн. выбрал способ оплаты liqpay, далее, далее, далее, оплатил, ввёл данные карты, пришёл код в смс, ввёл его, затем ввёл 3d код, который тоже пришёл в смс, затем идёт загрузка и в итоге полностью белый экран, без каких-либо ошибок, а в строке адреса "...мой магазин.ком.юа/payment/Liqpay/callback.php " дальше не знаю как и что, помогите донастроить эту оплатузначёк во вкладке браузера такойhttps://www.dropbox.com/s/v5z6ql1r3iw8pib/liqpay.jpg Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 20 февраля, 2013 Автор Жалоба Поделиться Опубликовано 20 февраля, 2013 На сайте Liqpay, в выписках по мерчанту, статус этого платёжа "отменён". Помогите настроить оплату через этот liqpay Цитата Ссылка на сообщение Поделиться на другие сайты
nwnet Опубликовано 20 февраля, 2013 Жалоба Поделиться Опубликовано 20 февраля, 2013 Судя по значку сайт на локалке? Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 20 февраля, 2013 Автор Жалоба Поделиться Опубликовано 20 февраля, 2013 Нет, сайт уже работает на хостинге Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 20 февраля, 2013 Автор Жалоба Поделиться Опубликовано 20 февраля, 2013 Содержание php файла, который в строке адреса после оплаты такое - Notice: Undefined index: operation_xml in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 20Notice: Undefined index: signature in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 21Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83 Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 20 февраля, 2013 Автор Жалоба Поделиться Опубликовано 20 февраля, 2013 Содержание файла, который находится в "payment/Liqpay/callback.php" не редактировал - <?php/** * Simpla CMS * * @copyright 2011 Denis Pikusov * @link http://simplacms.ru * @author Denis Pikusov * * К этому скрипту обращается Liqpay в процессе оплаты * */// Работаем в корневой директорииchdir ('../../');require_once('api/Simpla.php');$simpla = new Simpla();$xml = base64_decode($_POST['operation_xml']);$signature = $_POST['signature'];// Выбираем из xml нужные данные$order_id = intval(get_tag_val($xml, 'order_id'));$merchant_id = get_tag_val($xml, 'merchant_id'); $amount = get_tag_val($xml, 'amount'); $currency_code = get_tag_val($xml, 'currency'); $status = get_tag_val($xml, 'status'); if($status !== 'success') exit();////////////////////////////////////////////////// Выберем заказ из базы////////////////////////////////////////////////$order = $simpla->orders->get_order(intval($order_id));if(empty($order)) die('Оплачиваемый заказ не найден'); ////////////////////////////////////////////////// Выбираем из базы соответствующий метод оплаты////////////////////////////////////////////////$method = $simpla->payment->get_payment_method(intval($order->payment_method_id));if(empty($method)) die("Неизвестный метод оплаты"); $settings = unserialize($method->settings);$payment_currency = $simpla->money->get_currency(intval($method->currency_id));// Проверяем контрольную подпись$mysignature = base64_encode(sha1($settings['liqpay_sign'].$xml.$settings['liqpay_sign'],1));if($mysignature !== $signature) die("bad sign");// Нельзя оплатить уже оплаченный заказ if($order->paid) die('Этот заказ уже оплачен');if($amount != round($simpla->money->convert($order->total_price, $method->currency_id, false), 2) || $amount<=0) die("incorrect price"); if($currency_code != $payment_currency->code) die("incorrect currency"); // Установим статус оплачен$simpla->orders->update_order(intval($order->id), array('paid'=>1));// Отправим уведомление на email$simpla->notify->email_order_user(intval($order->id));$simpla->notify->email_order_admin(intval($order->id));// Спишем товары $simpla->orders->close(intval($order->id));// Перенаправим пользователя на страницу заказаheader('Location: '.$simpla->request->root_url.'/order/'.$order->url);exit();function get_tag_val($xml, $name){ preg_match("/<$name>(.*)<\/$name>/i", $xml, $matches); return trim($matches[1]); } Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 20 февраля, 2013 Автор Жалоба Поделиться Опубликовано 20 февраля, 2013 Ребята, помогите с этим вопросом, плиз Цитата Ссылка на сообщение Поделиться на другие сайты
VladP Опубликовано 20 февраля, 2013 Жалоба Поделиться Опубликовано 20 февраля, 2013 liqpay не возвращает operation_xml и signature, смотрите настройки аккаунта Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 21 февраля, 2013 Автор Жалоба Поделиться Опубликовано 21 февраля, 2013 Была не активирована карта для оплаты через интернет. НО! Как можно сделать так, что если карта не активирована, т.е. когда liqpay не возвращает operation_xml и signature, чтобы перенаправляло на страницу, на которой будет указано, что "карта не активирована, обратитесь в банк для активации"? Цитата Ссылка на сообщение Поделиться на другие сайты
VladP Опубликовано 21 февраля, 2013 Жалоба Поделиться Опубликовано 21 февраля, 2013 после:$xml = base64_decode($_POST['operation_xml']);$signature = $_POST['signature'];добавь:if(!isset($xml)) die("Карта не активирована, обратитесь в банк для активации");if(!isset($signature)) die("Не получена контрольная подпись");но в первом случае это может быть не только не активированная карта, но и проблемы на стороне liqpay, симплы и тдот liqpay могут прийти вот такие ответы: api_version incorrect – Установлена неправильная версия в настройках мерчантаhour_count_limit_exceed – Превышен лимит операций в часday_count_limit_exceed – Превышен лимит операций в суткиip_not_trusted – IP не в списке доверия(настройки мерчанта)signature_error – Ошибка подписиnot_enough_money - Недостаточно денегno_such_merchant - Некорректный merchant_idorder_id_repeat – Повторение order_idwrong_to_phone – Неправильный телефон назначениясреди них ошибки о не активированной карте нет, так что это не отследить Цитата Ссылка на сообщение Поделиться на другие сайты
Blashemy Опубликовано 21 февраля, 2013 Автор Жалоба Поделиться Опубликовано 21 февраля, 2013 Добавил if(!isset($xml)) die("Карта не активирована, обратитесь в банк для активации"); if(!isset($signature)) die("Не получена контрольная подпись");теперь строки ответа сократились до двухNotice: Undefined index: operation_xml in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 20Notice: Undefined index: signature in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 21Не получена контрольная подпись Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.