Closed superromeo closed 2 years ago
Добрый день!
Статус заказа после оплаты меняется благодаря получению уведомления со стороны ЮKassa (вариант смены статуса при возвращении на сайт является дополнительным). В первую очередь проверьте, что адрес для уведомлений в ЮKassa установлен именно тот, на который модуль ожидает получения уведомлений.
проверьте, что адрес для уведомлений в ЮKassa установлен именно тот, на который модуль ожидает получения уведомлений.
А где это смотреть?
В Интеграция\HTTP-уведомления написано:
Вы выбрали платёжный модуль для Drupal 8.x (Commerce). Настройки для него заданы автоматически.
Нажмите на кнопку "Задать вручную", чтобы появилась возможность редактирования. Адрес должен быть прописан с доменом. Если в пути модуля на сайте есть дополнительные каталоги, они должны быть добавлены в урл.
Адрес по-умолчанию прописан верно, если у платежного шлюза ID = yookassa
.
У меня ID = yookassa_ru
и с адресом по-умолчанию /payment/notify/yookassa
не работало.
Изменил на /payment/notify/yookassa_ru
- на работает.
Решил создать шлюз с ID по умолчанию = yookassa
.
Теперь вызывается без ошибки.
77.75.153.76 - - [15/Oct/2021:13:49:40 +0300] "POST /payment/notify/yookassa HTTP/1.1" 200 627 "-" "AHC/2.1" "-"
Но заказу установился статус Completed
, а у платежа остался New
.
Пришлите, пожалуйста, скриншот, где у Вас не изменился статус.
Drupal 9.2.7
Очень хочется пользоваться Юкассой. Как бы нам продвинуть процесс?
Добрый день!
Где именно в Drupal у Вас не меняется статус после успешной оплаты?
В нескольких предыдущих сообщениях я это уже показывал. И скиншоты делал
Если имеется в виду значение в столбце "Состояние", то оно не изменяется.
Оно должно изменяться на completed
.
Можно посмотреть, например, как у модуля commerce_robokassa
:
public function onNotify(Request $request) {
/** @var PaymentInterface $payment */
$payment = $this->doValidatePost($request);
if (!$payment) {
return FALSE;
}
$payment->setState('completed');
$payment->save();
$data = $request->request->all();
return new Response('OK' . $data['InvId'], 200);
}
В последнем обновлении добавили обновление статуса у Платежа.
Спасибо. Поставил последний релиз. Итого:
Draft
.New
. А оба устанавливается в Completed
только после нажатия кнопки "Вернуться в магазин".
Идентификатор платежа: 294d1058-000f-5000-9000-12db5eb8ab1b
Отправка уведомления об успешной оплате платежа с меткой 294d1058-000f-5000-9000-12db5eb8ab1b завершилась кодом 404 на тот адрес, который сейчас указан.
Скопируйте адрес для уведомлений, который показывается на сайте внутри модуля, и установите его через личный кабинет ЮKassa для отправки уведомлений.
Прошу прощения. Неправильно задал адрес HTTP-ответа. Итого:
Completed
.New
.После нажатия кнопки "Вернуться в магазин" тоже ничего не меняется.
В логе 3 записи:
Место | https://xn----7sblvlgns.xn--p1ai/payment/notify/yookassa_ru Notification: { "type" : "notification", "event" : "payment.succeeded", "object" : { "id" : "294e4d51-000f-5000-9000-11d60f4d0c17", "status" : "succeeded", "amount" : @ "value" : "10.00", "currency" : "RUB" , "income_amount" : @ "value" : "9.65", "currency" : "RUB" , "description" : "Оплата заказа №12194", "recipient" : @ "account_id" : "790264", "gateway_id" : "1828824" , "payment_method" : { "type" : "bank_card", "id" : "294e4d51-000f-5000-9000-11d60f4d0c17", "saved" : false, "title" : "Bank card *7230", "card" : @ "first6" : "555949", "last4" : "7230", "expiry_year" : "2026", "expiry_month" : "07", "card_type" : "MasterCard", "issuer_country" : "RU", "issuer_name" : "Joint Stock Company \"Alfa-Bank\"" }, "captured_at" : "2021-12-17T07:18:04.741Z", "created_at" : "2021-12-17T07:17:37.298Z", "test" : false, "refunded_amount" : @ "value" : "0.00", "currency" : "RUB" , "paid" : true, "refundable" : true, "metadata" : @ "module_version" : "2.1.0", "cms_name" : "yoo_api_drupal8" , "authorization_details" : { "rrn" : "33100578120", "auth_code" : "2V05RS", "three_d_secure" : @ "applied" : true } } }
Место | https://xn----7sblvlgns.xn--p1ai/payment/notify/yookassa_ru Payment info: {"id":"294e4d51-000f-5000-9000-11d60f4d0c17","status":"succeeded","recipient":@"account_id":"790264","gateway_id":"1828824","amount":@"value":"10.00","currency":"RUB","description":"\u041e\u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u043a\u0430\u0437\u0430 \u211612194","payment_method":@"last4":"7230","first6":"555949","expiry_year":"2026","expiry_month":"07","card_type":"MasterCard","issuer_country":"RU","issuer_name":"Joint Stock Company \"Alfa-Bank\"","type":"bank_card","id":"294e4d51-000f-5000-9000-11d60f4d0c17","saved":false,"title":"Bank card *7230","created_at":"2021-12-17T07:17:37.298+00:00","captured_at":"2021-12-17T07:18:04.741+00:00","refunded_amount":@"value":"0.00","currency":"RUB","paid":true,"refundable":true,"metadata":@"module_version":"2.1.0","cms_name":"yoo_api_drupal8","authorization_details":{"rrn":"33100578120","auth_code":"2V05RS","three_d_secure":@"applied":true},"transfers":[],"income_amount":@"value":"9.65","currency":"RUB"}
Место | https://xn----7sblvlgns.xn--p1ai/payment/notify/yookassa_ru Payment complete
Похоже, что файлы модуля на сайте не обновились. Последняя версия - v2.2.1, в ней как раз добавили выставление статуса для Payment, а в логе платежа указано "module_version":"2.1.0"
Обновлено. Видно забыли заменить в тексте модуля.
wodby@php.container:/var/www/lom $ composer info yoomoney/yookassa-sdk-php name : yoomoney/yookassa-sdk-php descrip. : This is a developer tool for integration with YooMoney. keywords : api, payments, sdk, yookassa, yoomoney versions : * 2.2.4
В коде модуля указано верно. Версия внутренней библиотеки yookassa-sdk-php - да, используется 2.2.4
Обновил drupal/commerce_yookassa
до сегодняшней версии 2.2.0.
Без изменений.
Вот access.log. Без ошибки.
77.75.154.206 - - [17/Dec/2021:16:46:15 +0300] "POST /payment/notify/yookassa_ru HTTP/1.1" 200 627 "-" "AHC/2.1" "-"
46.147.208.5 - - [17/Dec/2021:16:47:09 +0300] "GET /checkout/12197/payment/return HTTP/2.0" 302 781 "https://yoomoney.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36" "-"
Место | https://xn----7sblvlgns.xn--p1ai/payment/notify/yookassa_ru Notification: { "type" : "notification", "event" : "payment.succeeded", "object" : { "id" : "294ea82f-000f-5000-8000-15c0a65430e4", "status" : "succeeded", "amount" : @ "value" : "10.00", "currency" : "RUB" , "income_amount" : @ "value" : "9.65", "currency" : "RUB" , "description" : "Оплата заказа №12197", "recipient" : @ "account_id" : "790264", "gateway_id" : "1828824" , "payment_method" : { "type" : "bank_card", "id" : "294ea82f-000f-5000-8000-15c0a65430e4", "saved" : false, "title" : "Bank card *7230", "card" : @ "first6" : "555949", "last4" : "7230", "expiry_year" : "2026", "expiry_month" : "07", "card_type" : "MasterCard", "issuer_country" : "RU", "issuer_name" : "Joint Stock Company \"Alfa-Bank\"" }, "captured_at" : "2021-12-17T13:46:12.615Z", "created_at" : "2021-12-17T13:45:19.418Z", "test" : false, "refunded_amount" : @ "value" : "0.00", "currency" : "RUB" , "paid" : true, "refundable" : true, "metadata" : @ "module_version" : "2.2.0", "cms_name" : "yoo_api_drupal8" , "authorization_details" : { "rrn" : "33114105268", "auth_code" : "2VB5AY", "three_d_secure" : @ "applied" : true } } }
Более того. В логе нет строки: Payment completed
| Type | Date | Message | User | Operations | yookassa | 17.12.2021 - 16:46 | Payment complete | Гость (не проверено) | | yookassa | 17.12.2021 - 16:46 | Payment info: {"id":"294ea82f-000f-5000-8000-… | Гость (не проверено) | | yookassa | 17.12.2021 - 16:46 | Notification: { "type" : "notification", "event…
Следовательно часть кода:
$this->log('Payment completed');
вообще не вызывается.
Попробуйте еще раз обновить модуль, должно сработать до версии 2.2.1. В ней как раз было добавлено обновление статуса у Payment.
Вот теперь работает. Спасибо!
После оплаты платежу не устанавливается Completed и, соответственно, заказу тоже не устанавливается Completed. А устанавливается только после нажатия кнопки "Вернуться в магазин". А если пользователь просто закроет эту вкладку, то в системе заказ останется в состоянии Draft. Считаю данную ошибку критической.