Skip to content

Ошибка после возврата на сайт #19

Open
antiden opened this issue Sep 18, 2018 · 4 comments
Open

Ошибка после возврата на сайт #19

antiden opened this issue Sep 18, 2018 · 4 comments
Labels

Comments

@antiden
Copy link

antiden commented Sep 18, 2018

После успешной оплаты, покупатель делает возврат обратно в магазин и выходит сообщение об ошибке:
Recoverable fatal error: Object of class stdClass could not be converted to string в функции DatabaseStatementBase->execute() (строка 2227 в файле /var/www/user/data/www/dev.site.ru/includes/database/database.inc).

В логах модуля:
[2018-09-18 20:36:44] [info] Message: Return url init [2018-09-18 20:37:32] [info] Message: Send request: GET /payments/00000000-0000-0000-0000-000000000001 [2018-09-18 20:37:33] [info] Message: Response with code 404 received with headers: {"0":"HTTP\/1.1 404","Keep-Alive":"timeout=10000, max=100","Content-Type":"application\/json;charset=UTF-8","Content-Length":"151","Date":"Tue, 18 Sep 2018 17:37:33 GMT","Connection":"close"} and body: {"type":"error","id":"a89744f1-f9d1-4f64-8f9d-81a1ae6f4883","code":"not_found","description":"Payment not found or forbidden","parameter":"payment_id"}

В чем может быть проблема?

@ostulov
Copy link

ostulov commented Sep 24, 2018

Благодарю за информацию! Подготовим исправление.

@Niklan
Copy link

Niklan commented Jan 17, 2019

Подтверждаю. Проблема абсолютно идентичная. Проявляется как на PHP 5.6, так и на PHP 7.3.

Быстро исправить не получилось. Код написан с полным игнором друпал стандартов (#9), функции находятся не на своих местах, из-за чего вникать становится крайне сложно.

Не понимаю что делает функция yamoney_api_commerce_return_page (для drupal commerce), в основном модуле, кода для коммерца есть отдельный модуль ya_commerce. И почему они не называются идентично. Основной yamoney_api, для коммерца ya_commerce, хотя, логичнее всего, учитывая что модули поставляются вместе, называть в одном "неймспейсе": yamoney_api_commerce. Всё это просто мешает ориентироваться в происходящем.

Ещё не ясно, зачем архив лежит в исходниках 🤷‍♂️.

Если тут есть авторы модуля, могли бы вы подсказать. Вы не влезаете в работу сущности commerce_payment_transaction? Валится на загрузке сущности. Даже прямо вызов entity_load('commerce_payment_transaction', [TRANSACTION_ID]) вышибает ошибку, если эта транзакция связана с яндекс оплатой. Аналогичная ошибка вылетает на странице транзакций заказа: /admin/commerce/orders/ORDER_ID/payment. Что наводит на мысли, что в сущность производятся какие-то записи или модифицируется как-то, чего не ожидает друпал, или производятся некорректно (читать как - битая сущность). В итоге это приводит к ошибке загрузки транзакции в любом месте сайта.

А из-за описанных выше проблем по стандартам, ориентировать и искать где что возможно внедряется, крайне сложно. Так что ваша помощь была бы крайне полезной в идентификации проблемы.

@suo2018
Copy link

suo2018 commented Jan 24, 2019

Проблема вызвана ошибкой в файле ya_commerce_api.module в function ya_commerce_api_commerce_payment_transaction_load строка 772 array('remote_id' => $paymentId) нужно заменить на array('remote_id' => $paymentId->remote_id)

@ntym4ek
Copy link

ntym4ek commented Feb 1, 2019

Проблема вызвана ошибкой в файле ya_commerce_api.module в function ya_commerce_api_commerce_payment_transaction_load строка 772 array('remote_id' => $paymentId) нужно заменить на array('remote_id' => $paymentId->remote_id)

Это не решение. Вместо ошибки просто получаем Notice, не ломающий сайт.
Запостил ошибку и решение отдельно.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Development

No branches or pull requests

5 participants