Skip to content

paveldanilin/php-tinkoff-payment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tinkoff Payment API client

Клиент для проведения платежей API Тинькофф Платежи.

Установка

composer require paveldanilin/php-tinkoff-payment

Реализованные API

Платежи

Автоплатежи

Примеры

Создание клиента

/** @var PaymentClientInterface $paymentClient */
$paymentClient = PaymentClient::create('<terminal_key>', '<password>');

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

API создания платежа

Полный пример

$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('[email protected]')
        ->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";
}

Отмена платежа

API отмена платежа

Полный пример

/** @var CancelResultInterface $result */
$result = $paymentClient->cancel(1645861116);

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";
}

Получение статуса заказа

API получение статуса заказа

Полный пример

/** @var CheckOrderResultInterface $result */
$result = $paymentClient->checkOrder('333335556669');

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

API проведения автоплатежа

$charge = new Charge();
$charge->setPaymentId(10063);
$charge->setRebillId(1234);
$result = $paymentClient->charge($charge);

if ($result->isSuccess()) {
    // Успех
} else {
    // Ошибка
}

Запуск тестов

composer test

About

Клиент Тинькофф Платежи

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages