Search by

skeeks / cms-shop-paysystem-yapay

skeeks-semenov

Способ оплаты yapay и сплит для SkeekS CMS

Package info

github.com/skeeks-cms/cms-shop-paysystem-yapay

Homepage

Issues

Type:yii2-extension

pkg:composer/skeeks/cms-shop-paysystem-yapay

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

1.0.1 2026-10-23 20:17 UTC

This package is auto-updated.

Last update: 2026-10-23 20:19:28 UTC


README

Повторная оплата

При открытии оплаты обработчик берёт MySQL mutex по заказу и читает актуальный статус попытки в Яндекс Пэй. PENDING повторно использует действующую ссылку, включая период охлаждения Сплита. Только подтверждённые FAILED и VOIDED закрывают старый счёт и создают новый; старые внешний ID, ссылка и ответ сохраняются для истории и уведомлений. Новый счёт даёт новый внешний ID.

Внешний ID новой попытки сохраняется до POST. Потерянный ответ восстанавливается GET по тому же ID; ORDER_ALREADY_EXISTS также проверяется GET. Ошибка API, неизвестный статус, оплаченный заказ, авторизация или списание не разрешают создать ещё одну попытку. Нельзя определять истечение оплаты только по локальному TTL: статус Яндекса и период охлаждения имеют приоритет.

Проверка без сети и списаний:

php tests/payment-retry.php src/YapayPaysystemHandler.php

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