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

Проблема при работе с qiwi_rest


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

Добрый день.

Подключал к магазину 1.73 модуль qiwi_rest.

Есть две проблемы:

1. Модуль не работает с включенным быстрым оформлением заказа (файл checkoup.php). Проблема в том, что в модуль в этом случае не передается номер телефона из поля 'qiwi_telephone'. При обычном оформлении заказа (файл checkout_payment.php) все нормально.

2. Достаточно регулярно после подтверждения выбора формы оплаты (qiwi) кнопка (продолжить) не выводится контент, просто пустой экран (хотя счет в qiwi создан и заказ в магазине тоже создан).

 

Еще замечание к логике работы модуля, счет и заказ создаются до подтверждения заказа пользователем (после кнопки продолжить на форме выбора способа оплаты). Пользователь, теоретически может вернуться и выбрать другой способ оплаты или вообще неоформит заказ. Почему нельзя создавать и счет и заказ тогда, когда пользователь нажимает кнопку подтвердить заказ

 

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

Здравствуйте!

 

Обновитесь до 1.74 или хотя бы возьмите файлы 

/includes/modules/payment/qiwi_rest.php

/qiwi_rest.php

 

По идее, эти проблемы были исправлены.

 

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

 

Ну и что, пусть возвращается и выбирает новый способ оплаты, в чём проблема, заказ ведь не потеряется и контактные данные покупателя тоже никуда не потеряются, я, к примеру, не считаю это проблемой, а наоборот, плюсом.

 

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

 

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

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

Добрый вечер.

Обновил магазин. Проверил qiwi_rest при быстром оформлении номер телефона из поля не передается (вставил в модуль запись логов лог пишется в ф-ции confirmation там, где устанавливаются опции передачи данных):

24.10.14 19:01  order_id = 10
24.10.14 19:01  service_url = https://w.qiwi.com/api/v2/prv/[xxxxxxxx/bills/10
 
24.10.14 19:01  _SESSION['qiwi_telephone'] =  _POST['qiwi_telephone']= 
24.10.14 19:01  _data = user=tel%3A%2B&.....
 
24.10.14 19:01  results = {"response": {
  "result_code": 341,
  "description": "Format of parameter 'user' is incorrect"
}}
Ссылка на сообщение
Поделиться на другие сайты

Ну а как же тогда работает этот модуль на vamshop.ru ?!

 

Вы через обновления никакие не перескакивали?!

 

Быстрое оформление включено у Вас? В Админке - Настройки - Оформление заказов?

Страница подтверждения выключена?

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

Должно работать, по идее.

 

Через обновления не перескакивали, по порядку всё обновляли?

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

Да, все по порядку обновлял. с 1.72. Причем я смотрел переменную $_POST в checkout.php, там есть номер телефона, но в файле qiwi_rest.php эта же переменная пустая...

 

Кстати еще вопрос. У меня при оплате qiwiqiwi просто создается счет, а когда я пробовал оплату на vamshop.ru, там на стороне киви было отображено меню с возможными опциями оплаты: киви, банковская карта, терминал, вебмани. Почему так? Как это настраивается? 

Изменено пользователем sdi_68
Ссылка на сообщение
Поделиться на другие сайты

А как именно Вы post проверяли?

 

Может не туда вставили код?

 

POST ведь передаётся когда форма submit'ится.

 

По поводу способов, не знаю, подключались просто к ishop.qiwi.com, никаких особоых настроек не делали, всё по умолчанию.

 

Переход на сайт киви - это новая возможность qiwi rest протокола.

 

Можно и использовать старый модуль qiwi с протоколом rest, но там нет перехода на сайт, просто счёт выписывается.

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

А как именно Вы post проверяли?

 

Может не туда вставили код?

 

POST ведь передаётся когда форма submit'ится.

 

По поводу способов, не знаю, подключались просто к ishop.qiwi.com, никаких особоых настроек не делали, всё по умолчанию.

 

Переход на сайт киви - это новая возможность qiwi rest протокола.

 

Можно и использовать старый модуль qiwi с протоколом rest, но там нет перехода на сайт, просто счёт выписывается.

Добрый день. Запись в лог поставил перед той строчкой:

 

$_data = "user=" . urlencode("tel:+" . ($_SESSION['qiwi_telephone'] == '' ? $_POST['qiwi_telephone'] : $_SESSION['qiwi_telephone'])) . "&amount=" . urlencode($summ) . "&ccy=" . urlencode($currency_code) . "&comment=" . urlencode($order_id) . "&lifetime=" . urlencode($life_time). "&prv_name=" . urlencode(STORE_NAME); 

Соответственно и увидел, что $_SESSION['qiwi_telephone'] и $_POST['qiwi_telephone'] с пустыми значениями, а когда отключаю режим быстрого заказа, то телефон есть.

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

Не знаю даже, может или через обновления перескакивали или ещё что, потому как по умолчанию точно всё передаётся.

 

Попробуйте файл /checkout.php взять из архива с магазином.

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

Я даже и не знаю, что сказать.

 

Пробую модуль киви и быстрое оформление из архива с VamShop у себя на локальном компе, да и на vamshop.ru стоит стандартный модуль, всё работает.

 

Поставьте рядом в папку чистую копию VamShop и посмотрите как там.

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

Обычно подобные проблемы могут возникать из-за того, что, к примеру, имея старую версию VamShop устанавливает на старую версию самое последнее обновления, перескакивания через ранние обновления.

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

Добрый день.

Вроде нашел способ устранения описанной выше проблемы:

в файле checkout.php

Находим:

############################# Validate start - NOT LOGGED ON #######################################
  $process = false;

и вставляем

############################# Validate start - NOT LOGGED ON #######################################

if (!isset($_SESSION['qiwi_telephone'])) $_SESSION['qiwi_telephone'] = $_POST['qiwi_telephone'];


  $process = false;

После этого номер телефона стал передаваться в модуль qiwi_rest.

 

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

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

А Вы точно пробовали на текущей версии модуля?

Вроде как на текущей версии не должно быть такой проблемы, по идее.

 

Может просто у Вас старая версия модуля была.

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

Добрый день. 

Версия самая последняя. И проблема в файле checkout.php/ Если используется оформление без регистрации, то в модуль qiwi_rest не передается номер телефона, вводимый в поле QIWI. Если пользователь зарегистрирован, то такой проблемы нет.

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

Добрый день. 

Столкнулся еще с одной проблемой при работе с QIWI (rest):

Как я понимаю, при вводе номера телефона клиента во время быстрого оформления заказа используется маска (ххх) ххх-хх-хх (без ввода +7). Клиент при работе с QIWI может просто скопировать или ввести номер в том же формате (не обращая внимание на указание рядом с полем о формате ввода номера для QIWI). В этом случае, счет в QIWI не создается. Вот выдержка из лога для этой ситуации (номер естественно не реальный). 

 

16.01.15 04:08  Создание счета клиенту начало
16.01.15 04:08  order_id = 1566
16.01.15 04:08  _SESSION['qiwi_telephone'] = 9231234567 _POST['qiwi_telephone]= 
16.01.15 04:08  _data = user=tel%3A%2B9231234567&amount=2447.28&ccy=RUB&comment=1566&...... (остальное, в строке удалено)
16.01.15 04:08  results = {"response": {
  "result_code": 303,
  "description": "Incorrect phone number"
}}
 
Отсюда вопрос как можно сделать проверку ввода в поле номера телефона в корректном формате?
Ссылка на сообщение
Поделиться на другие сайты

Можно попробовать задать маску для киви телефона, в /templates/vamshop1/module/checkout.html поменяйте:

$("#telephone").mask("(999) 999-9999");

на:

$("#telephone").mask("(999) 999-9999");

$("#qiwi_telephone").mask("79999999999");

и в /includes/modules/payment/qiwi_rest.php поменяйте:

vam_draw_input_field('qiwi_telephone',$order->customer['telephone'])

на:

vam_draw_input_field('qiwi_telephone',$order->customer['telephone'], 'id="qiwi_telephone"')
Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

Попробовал. Есть несколько моментов:

1. $("#telephone").mask("(999) 999-9999"); находится в файле .includes/form_check.js.php

2. Есть проблемы при оформлении заказа зарегистрированным клиентом, у кого номер сохранен как +71234567890. Он копируется так 77123456789 (последняя цифра обрезается). У меня есть старые клиенты,перенесенные с VamEdit.

3. Через какое-то время (около 30 сек. на  странице checkout/php  происходит выполнение какого то скрипта (по внешним признакам, появляется курсор колесиком :)) и маска с поля пропадает. 

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

ajax запрос выполняется когда заполняются поля индекс, город, страна, выбирается доставка.

 

По поводу старых клиентов не знаю, может в базе данных им всем принудительно поменять телефоны, убрав лишний символ.

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

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

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

Если клиент залогинен и у него есть уже телефон, то в поле киви телефона будет проставлен этот телефон.

 

Можно сделать, что б просто пустое поле было.

 

Так:

vam_draw_input_field('qiwi_telephone','', 'id="qiwi_telephone"')
Ссылка на сообщение
Поделиться на другие сайты

Я не это имел ввиду. Если перейти на cytckout/php то в течение 30 секунд в поле телефона qiwi можно ввести номер телефона в соответствие с маской, но после того как отработает ajax запрос, маска исчезает и можно ввести номер как попало. Как можно сделать, чтобы маска не исчезала из этого поля?

По поводу старых клиентов ,то действительно, лучше их номера привести к стандарту. 

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

Если идти по порядку, сверху вниз, то такого быть не должно, т.е. сначала вводятся данные, затем выбирается доставка, затем оплата.

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