gamsh / php-tinkoff-payment
Tinkoff payment client for PHP 8.3+
2.1.3
2024-10-22 14:43 UTC
Requires
- php: >=8.3
- gamsh/rest-client: ^2.0
Requires (Dev)
- monolog/monolog: ^2.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.5
README
Клиент для проведения платежей API Тинькофф Платежи.
Установка
composer require gamsh/php-tinkoff-payment
Реализованные API
Платежи
- Создание платежа
- Отмена платежа
- Получение статуса платежа
- Получения статуса заказа
- Повторить неуспешные нотификации
- Подтверждение платежа
Автоплатежи
Примеры
Создание клиента
/** @var PaymentClientInterface $paymentClient */ $paymentClient = PaymentClient::create('<terminal_key>', '<password>');
Создание платежа
$payment = newPayment() ->amount(1000) ->orderId('1234') ->oneStep() ->build(); /** @var NewPaymentResultInterface $result */ $result = $paymentClient->init($payment); if ($result->isSuccess()) { print 'PaymentId: ' . $result->getPaymentId() . "\n"; print 'PaymentURL: ' . $result->getPaymentURL() . "\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
Создание платежа с чеком
$payment = newPayment() ->orderId('33101') ->oneStep() ->receipt(newReceipt() ->email('fake@fake.org') ->taxationOSN() ->addItem(newReceiptItem() ->name('Кружка') ->price(1000) ->quantity(1) ->taxNone() ->build()) ->build()) ->build(); /** @var NewPaymentResultInterface $result */ $result = $paymentClient->init($payment); if ($result->isSuccess()) { print 'PaymentId: ' . $result->getPaymentId() . "\n"; print 'PaymentURL: ' . $result->getPaymentURL() . "\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
Отмена платежа
/** @var CancelResultInterface $result */ $result = $paymentClient->cancel(1647427416); if ($result->isSuccess()) { print 'PaymentId: ' . $result->getPaymentId() . ' [' . $result->getStatus() . "]\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
Получение текущего статуса платежа
API получение текущего статуса платежа
/** @var GetStateResultInterface $result */ $result = $paymentClient->getState(1645861116); if ($result->isSuccess()) { print 'PaymentId: ' . $result->getPaymentId() . ' [' . $result->getStatus() . "]\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
Получение статуса заказа
/** @var CheckOrderResultInterface $result */ $result = $paymentClient->checkOrder('34532135669'); if ($result->isSuccess()) { print 'OrderID: ' . $result->getOrderId() . "\n"; print '-----' . "\n"; foreach ($result->getPayments() as $payment) { print 'PaymentID: ' . $payment->getPaymentId() . "\n"; print 'Status: ' . $payment->getStatus() . "\n"; print 'Success: ' . $payment->getSuccess() . "\n"; print 'RRN: ' . $payment->getRRN() . "\n"; print '=====' . "\n"; } } else { print 'Error: ' . $result->getMessage() . "\n"; }
Повторить неуспешные нотификации
API повторной отправки неуспешных нотификаций
/** @var ResendResultInterface $result */ $result = $paymentClient->resendNotifications(); if ($result->isSuccess()) { print 'Count: ' . $result->getCount() . "\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
Автоплатежи
Родительский платеж
Вызовите метод Init с параметрами Recurrent и CustomerKey Переадресуйте покупателя на страницу оплаты и дождитесь совершения платежа В нотификации AUTHORIZED или CONFIRMED получите и сохраните идентификатор RebillID
$charge = new Charge(); $charge->setPaymentId(10942); $charge->setRebillId(4567); $result = $paymentClient->charge($charge); if ($result->isSuccess()) { // Успех } else { // Ошибка }
Запуск тестов
composer test