You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Если для заказа в силу разных причин создаётся 2 и более транзакций и удачной становится не первая, то возврат на сайт после оплаты приводит к выводу сообщения о неудачной оплате.
Причина в следующем коде, проверяющем только первую транзакцию: $transaction = !empty($transactions) ? array_shift($transactions) : null;
The text was updated successfully, but these errors were encountered:
Для себя временно решил эту проблему, перевернув массив, чтобы всегда брать последнюю транзакцию: $transactions = array_reverse(commerce_payment_transaction_load_multiple(array(), array('order_id' => $order->order_id))); $transaction = !empty($transactions) ? array_shift($transactions) : null;
Я бы перебрал весь массив транзакций данного заказа.
Не проверял, но можно смоделировать ситуацию, когда пользователь в двух браузерах или вкладках начинает оплату заказа и доводит до конца первую попытку.
Сам еле вспомнил, о чём это и где. После обновления модуля до последней версии пришлось опять вносить правки, так как разработчики не исправили критические ошибки.
В функции yamoney_api_commerce_return_page() берётся первая транзакция вместо перебора всех транзакций заказа.
Нужно вместо $transaction = !empty($transactions) ? array_shift($transactions) : null; ...
сделать перебор foreach ($transactions as $transaction) { ... }
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Если для заказа в силу разных причин создаётся 2 и более транзакций и удачной становится не первая, то возврат на сайт после оплаты приводит к выводу сообщения о неудачной оплате.
Причина в следующем коде, проверяющем только первую транзакцию:
$transaction = !empty($transactions) ? array_shift($transactions) : null;
The text was updated successfully, but these errors were encountered: