sdi_68 3 Опубликовано 7 февраля, 2015 Автор Жалоба Share Опубликовано 7 февраля, 2015 Добрый день. Вроде нашел способ устранения описанной выше проблемы: в файле 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. Не уверен, что это правильное решение, но у меня заработало. Посмотрите, хотел бы увидеть правильное и корректное решение. Добрый день. После внесения корректив, понаблюдал, было несколько заказов с оплатой QIWI/ Вот что увидел: 1. Несмотря на добавление указанного выше кода, все равно есть случаи, когда номер телефона не передается. Расширил логирование, буду наблюдать. 2. Почти всегда клиент создает несколько заказов (очевидно, не сразу попадает на страницу QIWI и нажимает кнопку назад и нажимает кнопку "подтвердить" снова. Есть ли какие мысли, что делать с этой проблемой? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 7 февраля, 2015 Жалоба Share Опубликовано 7 февраля, 2015 Можно неаверное js код найти и добавить, который два клика не позволит сделать. Ссылка на сообщение Поделиться на другие сайты
sdi_68 3 Опубликовано 26 марта, 2015 Автор Жалоба Share Опубликовано 26 марта, 2015 Добрый день. Обнаружил еще одну проблему после внесения указанных доработок. Если клиент зарегистрирован и при быстром заказе пару раз кликнет мышкой в поле телефона киви, то значение в этом поле изменится, на сохраненное в БД, а именно в формате (987)654-3210, что приводит к ошибке при формировании счета киви. Я сделал такую доработку в модуле qiwi_rest.php Вместо $_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); Вставил $QPhone = ($_SESSION['qiwi_telephone'] == '' ? $_POST['qiwi_telephone'] : $_SESSION['qiwi_telephone']); $QPhone = preg_replace('"\\D"','',$QPhone); if (substr($QPhone,0,1) != "7") { $QPhone = "7" . $QPhone; } $_data = "user=" . urlencode("tel:+" . $QPhone) . "&amount=" . urlencode($summ) . "&ccy=" . urlencode($currency_code) . "&comment=" . urlencode($order_id) . "&lifetime=" . urlencode($life_time). "&prv_name=" . urlencode(STORE_NAME); Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 марта, 2015 Жалоба Share Опубликовано 26 марта, 2015 А это универсальный код, точно подойдёт для всех случаев? Ссылка на сообщение Поделиться на другие сайты
sdi_68 3 Опубликовано 27 марта, 2015 Автор Жалоба Share Опубликовано 27 марта, 2015 Этот код убирает все не цифровые символы из номера, которые хранятся в базе. На все случаи не подойдет, потому-что: 1. В БД хранятся номера без кода страны. 2. В модуле принудительно подставляется +7, как код страны, хотя QIWI работает не только в России. Это все проблемы не этой доработки, а VamShop в принципе. Я не очень понимаю, почему отказались от хранения кода страны в номере? У меня во всяком случае работает и пока ошибок при выставлении счетов не было. Буду смотреть. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 27 марта, 2015 Жалоба Share Опубликовано 27 марта, 2015 Так это у киви правила изменились, у киви в документации, в rest протоколе теперь по-новому нужно телефон записывать, без кода. В старом модуле с кодом. Спасибо за код, посмотрим, возможно, добавим в следующей версии по умолчанию. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения