invoice-llc/payment-zend

Invoice Payment Module

dev-master 2020-06-22 10:52 UTC

This package is not auto-updated.

Last update: 2024-09-25 05:48:27 UTC


README

Установка

Установите пакет через Composer:

composer require invoice-llc/payment-zend:dev-master

Перейдите в папку: vendor/invoice-llc/zend-module/config В файле module.config.php впишите свой логин от личного кабинета и API Key

return [
  'invoice' => [
      'api_key' => '1526fec01b5d11f4df4f2160627ce351',
      'login' => 'demo',
  ]
];

Создание контроллера уведомлений

  1. Создайте контроллер и унаследуйте класс AbstractNotifyController
<?php

class InvoiceController extends AbstractNotfyController {

        //orderID - ID заказа в вашей системе

        function onPay($orderId, $amount)
        {
    
            //При успешной оплате
        }
    
        function onFail($orderId)
        {
            //При неудачной оплате
        }
    
        function onRefund($orderId)
        {
            //При возврате средств
        }
}
  1. Создайте маршрут
'invoice' => [
    'type' => Literal::class,
    'options' => [
        'route' => '/notify',
        'defaults' => [
            'controller' => Controller\InvoiceController::class,
            'action' => 'notify'
        ]
    ],
],
  1. В личном кабинете Invoice(Настройки->Уведомления->Добавить) добавьте уведомление с типом WebHook и адресом, который вы задали в конфиге(например: %url%/notify)

Создание платежей

<?php

$invoice = new InvoicePaymentManager();

$items = [
    //Название, цена за 1шт, кол-во, итоговая цена
    new ITEM('Какой-то предмет',10,1,10)
];
//ID заказа, цена, товары
$payment = $invoice->createPayment('ID заказа в вашей системе', 10, $items);

echo($payment->payment_url);

Поулчение статуса платежа

<?php

$invoice = new InvoicePaymentManager();

$payment = $invoice->getPayment('ID заказа в вашей системе');

echo($payment->payment_url);

Создание возврата

<?php

$invoice = new InvoicePaymentManager();

//ID заказа в вашей системе, сумма возврата, причина
$refundInfo = $invoice->createRefund('ID заказа в вашей системе', 10, 'Причина');