Helper for yandex kassa, helps handling callbacks and requests.
composer require tigr/yandex-kassa
- Create controllers that would handle yandex kassa requests and do something like this in it:
<?php
use TiGR\YandexKassa\YandexKassaHelper;
use TiGR\YandexKassa\Exception\AuthorizationErrorException;
use TiGR\YandexKassa\Exception\BadRequestException;
$helper = new YandexKassaHelper(KASSA_SHOP_ID, KASSA_SHOP_PASSWORD);
$errorStatus = YandexKassaHelper::STATUS_BAD_REQUEST;
if ($helper->isCheckOrderAction()) {
$errorStatus = YandexKassaHelper::STATUS_PAYMENT_REJECTED;
}
try {
$helper->parseRequest($_POST);
} catch (AuthorizationErrorException $e) {
// ... handle this exception ...
return $this->xmlResponse($helper->buildResponse(null, $e->getMessage()));
} catch (BadRequestException $e) {
// ... handle this exception ...
return $this->xmlResponse($helper->buildResponse(null, $e->getMessage()));
} catch (\Exception $e) {
// ... handle this exception ...
return $this->xmlResponse($helper->buildResponse($errorStatus));
}
try {
$payment = $helper->getPayment();
// ... do some validation using $payment data ...
if ($helper->isPaymentAvisoAction()) {
// ... Mark this payment as settled in your system ...
// ... log successful transaction, if needed ...
// ... notify user of successful transaction. if needed ...
}
return $this->xmlResponse($helper->buildResponse(/* successful by default */));
} catch (\Exception $e) {
// ... handle this exception ...
return $this->xmlResponse(
$helper->buildResponse(YandexKassaHelper::STATUS_PAYMENT_REJECTED, $e->getMessage())
);
}