Jump to content

Не работают "Яндекс Деньги" для юр.лиц (YandexMoney)


Go to solution Solved by Matteus,

Recommended Posts

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

 

Есть проблема с модулем 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.php

callback_2.3.6.php

Link to post
Share on other sites
  • 3 weeks later...
 
Номер транзакции: 2000000246402
Детали платежа
Федеральный интернет-магазин техники OKI
Реквизиты платежа:
Идентификатор клиента: 2467
Cумма платежа: 29220.00 RUB_DEMO
ФИО:
Адрес клиента:
E-mail:
Заказ:
Номер транзакции: 2000000246402
Юр.лицо: Федеральный интернет-магазин техники OKI
Номер договора: НЭК.1*******

 

Как видно в деталях платежа не передались: заказ, фио, адрем, емэйл. 

Link to post
Share on other sites
В рабочем режиме (не тестовом)
Ошибка error_fatal.png
 

Провести платеж не удалось.

Магазин передает некорректные параметры. Пожалуйста,обратитесь в службу поддержки магазина.

Link to post
Share on other sites

Модули пишутся на скорую руку для галочки. Качество работы модулей соответствуют скорости их написания. Зато вы получаете в последней версии 15 модулей. Не важно что часть из них не работают. Поддержки никакой.

Link to post
Share on other sites

Да, я давно пишу о проблеме. Указывал, что файл оригинальный. 

Очень жду поддержки. 

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

На Яндексе, кстати, есть инструкция по настройке модуля в симпле!! и там ничего не сказано о том, что нужно лезть в код самому и проверять. Там в инструкции все просто - вводите параметры магазина, способ оплаты (из 5 предложенных- картой, я.деньгами, с мобилы и т.д.) и тестовом режиме должно начать работать. 

Link to post
Share on other sites

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

  

По ошибке модуля 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('Оплачиваемый заказ не найден');

 

По сути система не может выбрать заказ из базы.
У этого может быть две причины: или номер передается не правильно, или он не передается вовсе.
Link to post
Share on other sites
  • Solution

Аллилуя! С коллегой разобрались в чем было дело: 

 

в файле 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>'
 

 

Link to post
Share on other sites

Совершилось. Александр, большое спасибо! Тоже заработало. Но у меня другой модуль YandexMoney.php (Яндекс деньги для юр. лиц), а ошибка та же!

Link to post
Share on other sites

Тут стоит еще поразбираться. 

 

 
customerNumber xs:normalizedString, до 64 символов, обязательный Идентификатор плательщика в ИС Контрагента. В качестве идентификатора может использоваться номер договора плательщика, логин плательщика и т. п. Возможна повторная оплата по одному и тому же идентификатору плательщика. orderNumber xs:normalizedString, до 64 символов, необязательный Уникальный номер заказа в ИС Контрагента. Уникальность контролируется Оператором в сочетании с параметром shopId. Если платеж с таким номер заказа уже был успешно проведен, то повторные попытки оплаты будут отвергнуты Оператором.
Link to post
Share on other sites

customerNumber - идентификатор клиента. 

 

можно сделать мд5 почты клиента для его идентификации 

 

 

<input type="hidden" name="customerNumber" value="'.md5($order->email).'">
 
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...