Buker Posted September 17, 2014 Report Share Posted September 17, 2014 Добрый всем вечер. Есть проблема с модулем YandexMoney. Не работает модуль, который был предустановлен в моей версии Simpla 2.3.3. и не работает модуль из самой последней версии Simpla 2.3.6 По ошибке из модуля из версии 2.3.3 тех. поддержка яндекса отписалась о следующей ошибке:---------------------В ответе от Вашего магазина приходит следующее code="200" invoiceId="2147483647" message="Контрольная подпись не верна" shopId="19102"/>code="200" 200 Ошибка разбора запроса ИС Контрагента не в состоянии разобрать запрос. Оператор считает ошибку окончательной и не будет осуществлять перевод. Проверьте логи магазина на Вашей стороне, что бы проверить с чем именно проблема, что не удалось разобрать в запросе.Проверьте так же формат времени, который магазин передаетperformedDatetime="2014-09-09T17:01:14+04:00" - сейчасperformedDatetime="2011-05-04T20:38:01.000+04:00" должно быть. (это пример)https://money.yandex.ru/doc.xml?id=526537Спасибо за запрос.--------------------- По ошибке модуля 2.3.6. о следующей ошибке:---------------------Платежи по прежнему не проходят code="200" invoiceId="2147483647" message="Оплачиваемый заказ не найден" shopId="19102"/>Спасибо за запрос.----------------------- Во вложении два файла callback_2.3.3.php и callback_2.3.6.php Собственно вопроса два:1. есть ли у кого рабочий модуль или кто знает что нужно и как поправить чтобы работали платежи? У меня у одного такая проблема или нет?2. как самостоятельно смотреть логи ответа магазина? Тех поддержка яндекса ссылается на документ https://money.yandex.ru/doc.xml?id=526537 и на то чтобы я самостоятельно смотрел логи и разбирался в чем проблема По ошибке 1 (версия 2.3.3) видно что необходима дата в другом формате. Возможно эта единственная ошибка в этом модуле. По ошибке 2 мне кажется неверная строчка кода "$invoice_id = $simpla->request->post('invoiceId', 'string');" Мне кажется тут должно быть integer Но я в этом не уверен. Пожста помогите callback_2.3.3.phpcallback_2.3.6.php Quote Link to post Share on other sites
Matteus Posted October 3, 2014 Report Share Posted October 3, 2014 Поддерживаю! Точно такая же проблема. Уже давно поднял эту тему, пожалуйста, помогите разобраться! Quote Link to post Share on other sites
Matteus Posted October 3, 2014 Report Share Posted October 3, 2014 Номер транзакции: 2000000246402Детали платежа Федеральный интернет-магазин техники OKI Реквизиты платежа: Идентификатор клиента: 2467 Cумма платежа: 29220.00 RUB_DEMO ФИО: Адрес клиента: E-mail: Заказ: Номер транзакции: 2000000246402 Юр.лицо: Федеральный интернет-магазин техники OKI Номер договора: НЭК.1******* Как видно в деталях платежа не передались: заказ, фио, адрем, емэйл. Quote Link to post Share on other sites
Matteus Posted October 3, 2014 Report Share Posted October 3, 2014 В рабочем режиме (не тестовом) Ошибка Провести платеж не удалось. Магазин передает некорректные параметры. Пожалуйста,обратитесь в службу поддержки магазина. Quote Link to post Share on other sites
Matteus Posted October 3, 2014 Report Share Posted October 3, 2014 Ни разу не удалось провести тестовый платеж. Правки в файл не вносил. Quote Link to post Share on other sites
Buker Posted October 3, 2014 Author Report Share Posted October 3, 2014 Модули пишутся на скорую руку для галочки. Качество работы модулей соответствуют скорости их написания. Зато вы получаете в последней версии 15 модулей. Не важно что часть из них не работают. Поддержки никакой. Quote Link to post Share on other sites
Matteus Posted October 3, 2014 Report Share Posted October 3, 2014 Да, я давно пишу о проблеме. Указывал, что файл оригинальный. Очень жду поддержки. Понимаю, что есть несколько программистов, которые помогут разобраться за отдельную плату,но, все-таки, хотелось бы, чтоб заявленное работало. На Яндексе, кстати, есть инструкция по настройке модуля в симпле!! и там ничего не сказано о том, что нужно лезть в код самому и проверять. Там в инструкции все просто - вводите параметры магазина, способ оплаты (из 5 предложенных- картой, я.деньгами, с мобилы и т.д.) и тестовом режиме должно начать работать. Quote Link to post Share on other sites
Matteus Posted October 7, 2014 Report Share Posted October 7, 2014 Ответа нет Quote Link to post Share on other sites
Buker Posted October 9, 2014 Author Report Share Posted October 9, 2014 Когда будет ответ? Quote Link to post Share on other sites
Kasha Posted October 10, 2014 Report Share Posted October 10, 2014 Добрый всем вечер. По ошибке модуля 2.3.6. о следующей ошибке:---------------------Платежи по прежнему не проходят code="200" invoiceId="2147483647" message="Оплачиваемый заказ не найден" shopId="19102"/> Спасибо за запрос.----------------------- Во вложении два файла callback_2.3.3.php и callback_2.3.6.php Собственно вопроса два:1. есть ли у кого рабочий модуль или кто знает что нужно и как поправить чтобы работали платежи? У меня у одного такая проблема или нет?2. как самостоятельно смотреть логи ответа магазина? Тех поддержка яндекса ссылается на документ https://money.yandex.ru/doc.xml?id=526537 и на то чтобы я самостоятельно смотрел логи и разбирался в чем проблема По ошибке 2 мне кажется неверная строчка кода "$invoice_id = $simpla->request->post('invoiceId', 'string');" Мне кажется тут должно быть integer Но я в этом не уверен. Пожста помогите Ошибка не из-за этого "Оплачиваемый заказ не найден" говорит о том что не выполнено условие $order_id = $simpla->request->post('orderNumber', 'integer'); $order = $simpla->orders->get_order(intval($order_id)); if(empty($order)) print_error('Оплачиваемый заказ не найден'); По сути система не может выбрать заказ из базы.У этого может быть две причины: или номер передается не правильно, или он не передается вовсе. Quote Link to post Share on other sites
Solution Matteus Posted October 10, 2014 Solution Report Share Posted October 10, 2014 Аллилуя! С коллегой разобрались в чем было дело: в файле yandex.php генерируется форма и в ней вместо orderNumber было customerNumber Соответственно яндекс не получал номер заказа и не мог идентифицировать заказ. Проблема решилась заменой customerNumber на orderNumber Причем сейчас скачал свежую симплу и этот косяк есть в оригинальном файле yandex.php . Почему на это ни кто раньше внимания не обратил.. вот как это выглядит теперь. <form method="POST" action="'.$payment_url.'"> <input type="hidden" name="shopid" value="'.$settings['yandex_shopid'].'"> <input type="hidden" name="sum" value="'.$price.'"> <input type="hidden" name="scid" value="'.$settings['yandex_scid'].'"> <input type="hidden" name="shopSuccessURL" value="'.$success_url.'"> <input type="hidden" name="shopFailURL" value="'.$fail_url.'"> <input type="hidden" name="cps_email" value="'.htmlspecialchars($order->email,ENT_QUOTES).'"> <input type="hidden" name="cps_phone" value="'.htmlspecialchars($order->phone,ENT_QUOTES).'"> <input type="hidden" name="orderNumber" value="'.$order->id.'"> '.$payment_type.' <input type="hidden" name="cms_name" value="simplacms"/> <input type="submit" name="submit-button" value="'.$button_text.'" class="checkout_button"> </form>' Quote Link to post Share on other sites
Buker Posted October 10, 2014 Author Report Share Posted October 10, 2014 Совершилось. Александр, большое спасибо! Тоже заработало. Но у меня другой модуль YandexMoney.php (Яндекс деньги для юр. лиц), а ошибка та же! Quote Link to post Share on other sites
Matteus Posted October 14, 2014 Report Share Posted October 14, 2014 Тут стоит еще поразбираться. customerNumber xs:normalizedString, до 64 символов, обязательный Идентификатор плательщика в ИС Контрагента. В качестве идентификатора может использоваться номер договора плательщика, логин плательщика и т. п. Возможна повторная оплата по одному и тому же идентификатору плательщика. orderNumber xs:normalizedString, до 64 символов, необязательный Уникальный номер заказа в ИС Контрагента. Уникальность контролируется Оператором в сочетании с параметром shopId. Если платеж с таким номер заказа уже был успешно проведен, то повторные попытки оплаты будут отвергнуты Оператором. Quote Link to post Share on other sites
Matteus Posted October 14, 2014 Report Share Posted October 14, 2014 customerNumber - идентификатор клиента. можно сделать мд5 почты клиента для его идентификации <input type="hidden" name="customerNumber" value="'.md5($order->email).'"> Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.