paveldanilin / php-tinkoff-payment
适用于PHP 7.4+的Tinkoff支付客户端
2.0.0
2024-02-11 08:49 UTC
Requires
- php: >=8.1
- paveldanilin/rest-client: 2.0.*
Requires (Dev)
- monolog/monolog: 2.8.0
- phpstan/phpstan: 1.10.*
- phpunit/phpunit: 10.5.*
- dev-main
- 2.0.x-dev
- 2.0.0
- 1.3.x-dev
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.x-dev
- v1.2.1
- v1.2.0
- 1.1.x-dev
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- 1.0.x-dev
- v1.0.0
- dev-bugfix/1.1/object-util-datetime
- dev-bugfix/logger-aware-remove
- dev-bugfix/normalizer
- dev-dep-update-rest-client
- dev-feature/receipt-builder-items
- dev-feature/receipt
This package is auto-updated.
Last update: 2024-09-11 10:04:03 UTC
README
Tinkoff支付API(https://www.tinkoff.ru/kassa/develop/api/payments/)的支付客户端。
安装
composer require paveldanilin/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('pavel.k.danilin@gmail.com') ->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(1645861116); if ($result->isSuccess()) { print 'PaymentId: ' . $result->getPaymentId() . ' [' . $result->getStatus() . "]\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
获取当前支付状态
/** @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('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"; }
重复未成功的通知
/** @var ResendResultInterface $result */ $result = $paymentClient->resendNotifications(); if ($result->isSuccess()) { print 'Count: ' . $result->getCount() . "\n"; } else { print 'Error: ' . $result->getMessage() . "\n"; }
自动支付
父级支付
调用带有参数 Recurrent 和 CustomerKey 的 Init 方法,将买家重定向到支付页面并等待支付完成。在 AUTHORIZED 或 CONFIRMED 通知中获取并保存 RebillID。
$charge = new Charge(); $charge->setPaymentId(10063); $charge->setRebillId(1234); $result = $paymentClient->charge($charge); if ($result->isSuccess()) { // Успех } else { // Ошибка }
启动测试
composer test