contributte/thepay
ThePay library - nette extension
Maintainers
Requires
- php: ^8.2
- nette/di: ^3.2.5
- nette/schema: ^1.3.5
- thepay/api-client: ^2.2.1
Requires (Dev)
- contributte/phpstan: ~0.3.1
- contributte/qa: ~0.4.0
- contributte/tester: ~0.4.1
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-06-23 08:22:01 UTC
README
👁 Image
👁 Image
👁 Image
👁 Image
👁 Image
👁 Image
👁 Image
👁 Image
👁 Image
Website 🚀 contributte.org | Contact 👨🏻💻 f3l1x.io | Twitter 🐦 @contributte
Nette integration for ThePay API client with DI configuration and ready-to-use payment services.
Versions
| State | Version | Branch | PHP |
|---|---|---|---|
| dev | ^5.0 |
master |
>= 8.2 |
| stable | ^4.1 |
v4.x |
>= 7.1 |
Contents
- Installation
- Requirements
- Configuration
- Services Available in DI Container
- Usage
- Official Documentation
- Development
Installation
To install the latest version of contributte/thepay use Composer.
composer require contributte/thepay
Requirements
This extension requires PSR-18 HTTP client and PSR-17 HTTP factories to be registered in your DI container.
The recommended implementation is Guzzle:
composer require guzzlehttp/guzzle
You need to register the PSR interfaces in your neon config:
services: - GuzzleHttp\Client - GuzzleHttp\Psr7\HttpFactory
Configuration
Register the extension:
extensions: contributte.thepay: Contributte\ThePay\DI\ThePayExtension
List of all options:
contributte.thepay: demo: true/false merchantId: 'your-merchant-id' projectId: (int) apiPassword: '' apiUrl: 'https://api.thepay.cz/' gateUrl: 'https://gate.thepay.cz/' language: 'cs'
Minimal production configuration:
contributte.thepay: merchantId: 'your-merchant-id' projectId: (int) apiPassword: ''
Demo configuration:
contributte.thepay: demo: true merchantId: 'your-merchant-id' projectId: (int) apiPassword: ''
When demo: true is set, apiUrl and gateUrl are automatically switched to demo endpoints.
Services Available in DI Container
ThePay\ApiClient\TheConfigThePay\ApiClient\Service\SignatureServiceThePay\ApiClient\Service\ApiService(implementsApiServiceInterface)ThePay\ApiClient\Service\GateService(implementsGateServiceInterface)ThePay\ApiClient\TheClient
Usage
Create a Payment
use Nette\Application\UI\Presenter; use ThePay\ApiClient\Model\CreatePaymentParams; use ThePay\ApiClient\TheClient; class OrderPresenter extends Presenter { public function __construct( private TheClient $thePayClient, ) { parent::__construct(); } public function actionPay(): void { $params = new CreatePaymentParams(10000, 'CZK', 'order-123'); $payment = $this->thePayClient->createPayment($params); $this->redirectUrl($payment->getPayUrl()); } }
Render Payment Buttons
use Nette\Application\UI\Presenter; use ThePay\ApiClient\Model\CreatePaymentParams; use ThePay\ApiClient\TheClient; class OrderPresenter extends Presenter { public function __construct( private TheClient $thePayClient, ) { parent::__construct(); } public function renderPaymentMethods(): void { $params = new CreatePaymentParams(10000, 'CZK', 'order-123'); $this->template->paymentButtons = $this->thePayClient->getPaymentButtons($params); } }
Verify a Payment
use Nette\Application\UI\Presenter; use ThePay\ApiClient\TheClient; class OrderPresenter extends Presenter { public function __construct( private TheClient $thePayClient, ) { parent::__construct(); } public function actionConfirmation(string $paymentUid): void { $payment = $this->thePayClient->getPayment($paymentUid); if ($payment->wasPaid()) { // Payment was successful. } } }
Official Documentation
Development
See how to contribute to this package.
This package is currently maintained by these authors.
👁 Image👁 Image
Consider to support contributte development team. Also thank you for using this package.
