Проблемы С Оплатой Через Яндекс.деньги

Здравствуйте, повидимому в Яндекс.Деньги произошли какието изменения.

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

Яндекс поддержка приводит лог запроса и ответ магазина на уведомление о платеже:

[2016-12-17T23:46:34.198+0300] INFO  [AvisoQueue-11-48] [529686622.TOID] [Cz5/EEVsAMs=.1832] [] [AvisoExecutor] - Processing aviso: task=AvisoTask={AbstractTask{taskID=529686622, status=PROCESSING, createdDT=
2016-12-17T23:00:33.108+03:00, retries=4, processedDT=2016-12-17T23:46:34.197+03:00, scheduledAT=2016-12-17T23:54:34.197+03:00} orderReportId=2000564900769 }
[2016-12-17T23:46:34.202+0300] INFO  [AvisoQueue-11-48] [529686622.TOID] [Cz5/EEVsAMs=.1832] [] [CommonHttp30Protocol] - paramsToSign: 'paymentAviso;581.00;643;1001;*******;********;*********@yan
dex.ru'
[2016-12-17T23:46:34.202+0300] INFO  [AvisoQueue-11-48] [529686622.TOID] [Cz5/EEVsAMs=.1832] [] [CommonHTTPStub] - Request params:
shopSumCurrencyPaycash=643
rebillingOn=false
orderSumBankPaycash=1001
orderNumber=2886_214
orderSumAmount=581.00
orderSumCurrencyPaycash=643
shopArticleId=*****
cms_name=cscart
paymentPayerCode=***********
unilabel=1fe7ad07-000f-5079-8000-097b384deaa7
paymentDatetime=2016-12-17T23:00:32.642+03:00
customerNumber=*******@yandex.ru
paymentType=PC
requestDatetime=2016-12-17T23:46:34.199+03:00
cps_user_country_code=RU
orderCreatedDatetime=2016-12-17T23:00:31.825+03:00
action=paymentAviso
invoiceId=*********
shopId=*****
scid=*****
shopSumBankPaycash=1001
shopSumAmount=563.57
md5=647DD250DBCD8F566DD1330777ED337A

[2016-12-17T23:46:34.496+0300] INFO [AvisoQueue-11-48] [529686622.TOID] [Cz5/EEVsAMs=.1832] [] [CommonHTTPSCAConnector] - 294 ms for https://***./index.php?dispatch=payment_notification.payment_aviso&pay
ment=yandex_money
[2016-12-17T23:46:34.499+0300] INFO [AvisoQueue-11-48] [529686622.TOID] [Cz5/EEVsAMs=.1832] [] [CommonHttp30Protocol] - Error connecting to shop: java.io.IOException: wrong response document (too many elemen
ts =3). response:

PHP Notice

Message

Undefined index: merchant_order_id

Error at

app/......( check url and port params!!! )

Поддержка яндекса также написала:
Для корректной работы на выбранной схеме подключения, Вам необходимо устранить ошибку в ответе магазина на доставку уведомления о платеже.
Приводим ссылку на протокол: https://tech.yandex.ru/money/doc/payment-solution/payment-notifications/payment-notifications-aviso-docpage/

Странно , у меня все нормально.

А что скажет поддержка движка?

У меня сейчас возникла такая же проблема, хотя пару дней назад все проходило нормально

Яндекс пишет следующее:

платеж завершается некорректно, так как не получаем ответа на уведомление PaymentAviso.
На CheckOrder ответ полностью успешен:
<?xml version="1.0" encoding="utf-8"?> 2017-01-18T19:23:11+10:00" shopId="111111" invoiceId="2000585137890" code="0"/>

Проверьте, чтобы ответ на Aviso соотвествовал эталону:
<?xml version="1.0" encoding="utf-8"?> 2017-01-18T19:23:11+10:00" shopId="111111" invoiceId="2000585137890" code="0"/>

У меня версия магазина 4.3.5

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

Фиксить:

app/addons/rus_payments/payments/yandex_money.php

После строчек:

$pp_response = array(
                 'order_status' => $order_status,
                 'yandex_invoice_id' => $invoiceId,
-                'yandex_merchant_order_id' => $_REQUEST['merchant_order_id']
             );

Добавить:

if (isset($_REQUEST['merchant_order_id'])) {
      $pp_response['yandex_merchant_order_id'] = $_REQUEST['merchant_order_id'];
          }

Попробуйте, может у вас заработает

У нас версия 4.3.6

фикс также не помог

diff --git a/app/addons/rus_payments/payments/yandex_money.php b/app/addons/rus_payments/payments/yandex_money.php
index 5a97c17..7ceb7d5 100644
--- a/app/addons/rus_payments/payments/yandex_money.php
+++ b/app/addons/rus_payments/payments/yandex_money.php
@@ -131,9 +131,12 @@
             $pp_response = array(
                 'order_status' => $order_status,
                 'yandex_invoice_id' => $invoiceId,
-                'yandex_merchant_order_id' => $_REQUEST['merchant_order_id']
             );
 
+            if (isset($_REQUEST['merchant_order_id'])) {
+                $pp_response['yandex_merchant_order_id'] = $_REQUEST['merchant_order_id'];
+            }
+
             if (
                 !empty($processor_data['processor_params']['postponed_payments_enabled'])
                 && $processor_data['processor_params']['postponed_payments_enabled'] == 'Y'

Видимо я не правильно сделал изменения, короче вот сам .diff файл

У вас после внесения изменений заработало?

Нет, к сожалению. Жду новых логов от яндекса и напишу в поддержку CS-cart

У меня выяснилась проблема:

в Яндекс.Кассе почему-то нежданно негаданно AvisoURL стал одинаковым с CheckorderURL. Попросил поменять, сейчас все тьфу-тьфу-тьфу заработало.