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

Проблема с модулем Яндекс.Деньги (yandex_merchant)


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

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

Вами были указаны следующие настройки:
Payment и check: https://сайт.ru/yandex.php
Success и fail - динамические.
Если вам необходимо внести изменения - укажите их ответным письмом. 

В модуле заполнил все ID, ключи, пароли. Режим test, способ оплаты AC. В модуле раскомментировал логирование в файл. Для тестирования дали такое:

Тестовая банковская карта
карта 4444 4444 4444 4448; cvv 000; действует до: любая дата в будущем

При оплате яндекс пишет интересную ошибку:
Что-то пошло не так
Техническая ошибка.

Техподдержка ответила, что типа магазин отвечает некорректно. Хотя они не проверяли скорее всего, т.к. в логе ничего не появилось.

Ссылка на сообщение
Поделиться на другие сайты
  В 11.11.2016 в 21:10, shaklov сказал:

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

Вами были указаны следующие настройки:
Payment и check: https://сайт.ru/yandex.php
Success и fail - динамические.
Если вам необходимо внести изменения - укажите их ответным письмом. 

В модуле заполнил все ID, ключи, пароли. Режим test, способ оплаты AC. В модуле раскомментировал логирование в файл. Для тестирования дали такое:

Тестовая банковская карта
карта 4444 4444 4444 4448; cvv 000; действует до: любая дата в будущем

При оплате яндекс пишет интересную ошибку:
Что-то пошло не так
Техническая ошибка.

Техподдержка ответила, что типа магазин отвечает некорректно. Хотя они не проверяли скорее всего, т.к. в логе ничего не появилось.

Expand  

Основной модуль yandex_merchant

А yandex_merchant_X - это дополнительные.

т.е. обязательно должен быть установлен основной yandex_merchant, его можно выключить, т.е. поставить в первой опции false, но сам модум должен быть установлен.

А вот дополнительные уже можно показывать, тот же yandex_merchant_ac

Возможно, что дело в этом, т.е. не установлен основной yandex_merchant

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

Тогда наверное надо у яндекса спрашивать, что именно не так, что значит "некорретктно".

Модуль делался по их спецификации и всё работало, это точно.

Может нужно что б Content-type был xml при ответе yandex.php файла.

Был вроде такой бзик у яндекса.

Можно попробовать в yandex.php добавить сверху что-то вроде:

          header('Content-Type: text/xml');

Но лучше всё-таки у яндекса спросить, что именно им не нравится, конкретнее, так сказать, а не общие фразы.

А может просто анкета неправильно для яндекса заполнена и данные не на тот файл отправляются яндексом.

Вот в блоге есть описание настройки и примре заполненной анкеты - http://blog.vamshop.ru/2014/02/20/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F-%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D1%8B-%D1%8F%D0%BD%D0%B4%D0%B5%D0%BA%D1%81-%D0%B4%D0%B5%D0%BD%D1%8C%D0%B3/

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

ТП написала: Получаем от адреса https://www.магазин/yandex.php пустой ответ.
Приложили файл, там лог отправки заказа (это я раскомментировал в модуле логирование), потом в конце их строка:

Техническая ошибка на стороне магазина: response is not XML. response:...

header('Content-Type: text/xml') в это время уже был добавлен
Прикладываю свой файл yandex.php, может он старый?

yandex.php

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

Ну, судя по "response is not XML" дело как раз в этом, по идее.

Если в yandex.php добавить header..., то Content-type как раз будет xml, по идее.

Лучше добавить сверху эту строку, а не как вы сделали, вот прицепил файл.

В браузере, в chrome developer console затем проверить, открыв файл yandex.php и посмотреть, что там в content-type документа указывается.

В content-type ответе должно быть xml, а не html

Вот с этим файлом, что я прицепил, как раз xml идёт, попробуйте его.

yandex.php

Кстати, yandex.log файл не пустой?!

Яндекс присылает данные в этот файл, лог записывается?!

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

Ничего не поменялось. Пишет "Что-то пошло не так" 

Лог вот такой:

2016-11-12 21:56:20 - orderNumber=31;
orderSumAmount=1112.50;
cdd_exp_date=1217;
shopArticleId=364162;
cms_name=vamshop;
paymentPayerCode=4100322062290;
cdd_rrn=277324130268;
external_id=deposit;
paymentType=AC;
requestDatetime=2016-11-12T21:56:19.956+03:00;
depositNumber=8Fdg4uDyWDcWK-zBqKyetmM7S-0Z.001f.201611;
cps_user_country_code=PL;
orderCreatedDatetime=2016-11-12T21:56:19.843+03:00;
sk=ucdf7f842fd08b578e25962c13919b2d3;
action=process;
shopId=73251;
scid=541596;
shopSumBankPaycash=1003;
shopSumCurrencyPaycash=10643;
rebillingOn=false;
orderSumBankPaycash=1003;
cps_region_id=2;
orderSumCurrencyPaycash=10643;
merchant_order_id=31_121116215610_00000_73251;
unilabel=1fb97989-0009-5000-8000-000017b81ea4;
cdd_pan_mask=444444|4448;
customerNumber=29;
yandexPaymentId=2570063888359;
invoiceId=2000000959787;
shopSumAmount=1073.56;
md5=8F815B69717ED26E967990FCB4363AF4;

 

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

Может хэши не совпадают, попробуйте в yandex.php закомментировать условия $hash == $crc

Что в хроме пишет, тип документа какой - xml или html?!

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

Убрал проверку хэш, платёж прошёл. Но статус заказа на оплачен не поменялся.

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

Статус заказа берётся из настроек основного модуля yandex_merchant, а не yandex_merchant_ac

Может в этом дело?!

Посмотрите в настройках основного модуля yandex_merchant, выставлен ли там оплаченный статус заказа в настройках.

Ну а почему не совпадает хэш, это надо смотреть, возможно, достаточно будет в Админке - Разное - Валюты в настройках валют десятичные порядки указать 0

Либо разбираться по лог-файлу, в чём именно проблема, почему md5 присылаемый яндексом не совпадаем с хэшем, который собирается из параметров в yandex.php файле.

Обчно это легко выясняется небольшой отладкой паратров.

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

У меня не включен  yandex_merchant_aс, у меня основной модуль включен  yandex_merchan. И разумеется статус заказа выставлен на оплачен.

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

Смотрите последнее условие, почему оно не выполняется.

Смотрите лог, что присылает яндекс.

Возможно, что просто в тестовом режиме полностью всю информацию яндекс не присылает, я уже точно и не помню.

Но точно, что в рабочем режиме всё менялось.

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

А что такое в официальном демо и у моего заказчика в админке? Скрин прилагается.

Warning: constant(): Couldn't find constant MODULE_PAYMENT_YANDEX_MERCHANT_SORT_ORDER_TITLE in /home/t/tovint2ru/public_html/admin/configuration.php on line 168
Warning: constant(): Couldn't find constant MODULE_PAYMENT_YANDEX_MERCHANT_SORT_ORDER_DESC in /home/t/tovint2ru/public_html/admin/configuration.php on line 168

 

Скриншот 2016-11-15 23.44.14.png

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

 

Ошибка в sql коде небольшая, неправильно указан id номер группы, в которую записываются настройки.

Удалите модуль (менять надо в yandex_merchant и во всех его клонах yandex_merchant_X, ошибка во всех) в админке и затем в /includes/modules/payment/

ищите в модуле код по _SORT_ORDER и меняйте 8 на 6, т.е., к примеру:

      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_YANDEX_MERCHANT_SORT_ORDER', '0', '8', '6', now())");

на:

      vam_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_YANDEX_MERCHANT_SORT_ORDER', '0', '6', '6', now())");

и затем снова устанавливайте модуль, либо можн не переустанавливать, а просто через phpMyAdmin найти в таблице configuration запись с ключом MODULE_PAYMENT_YANDEX_MERCHANT_SORT_ORDER и поменять 8 на 6 в колонке configuration_group_id

Спасибо, что сообщили об ошибке.

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

Это я к тому, что, по идее, теперь клоны модуля yandex_merchant_X не нужны, достаточно одного yandex_merchant

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