Установите пакет через 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',
]
];
- Создайте контроллер и унаследуйте класс AbstractNotifyController
<?php
class InvoiceController extends AbstractNotfyController {
//orderID - ID заказа в вашей системе
function onPay($orderId, $amount)
{
//При успешной оплате
}
function onFail($orderId)
{
//При неудачной оплате
}
function onRefund($orderId)
{
//При возврате средств
}
}- Создайте маршрут
'invoice' => [
'type' => Literal::class,
'options' => [
'route' => '/notify',
'defaults' => [
'controller' => Controller\InvoiceController::class,
'action' => 'notify'
]
],
],- В личном кабинете 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, 'Причина');