tigr/yandex-kassa

Helper for yandex kassa, helps handling callbacks and requests.

0.1.3 2017-09-04 08:25 UTC

This package is auto-updated.

Last update: 2024-05-14 03:44:47 UTC


README

Build Status Minimum PHP Version Coverage Status Total Downloads Latest Stable Version License

Helper for yandex kassa, helps handling callbacks and requests.

Installation

composer require tigr/yandex-kassa

Usage

  1. 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())
       );
   }