Website π contributte.org | Contact π¨π»βπ» f3l1x.io | Twitter π¦ @contributte
Nette integration for ThePay API client with DI configuration and ready-to-use payment services.
| State | Version | Branch | PHP |
|---|---|---|---|
| dev | ^5.0 |
master |
>= 8.2 |
| stable | ^4.1 |
v4.x |
>= 7.1 |
- Installation
- Requirements
- Configuration
- Services Available in DI Container
- Usage
- Official Documentation
- Development
To install the latest version of contributte/thepay use Composer.
composer require contributte/thepayThis 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/guzzleYou need to register the PSR interfaces in your neon config:
services:
- GuzzleHttp\Client
- GuzzleHttp\Psr7\HttpFactoryRegister the extension:
extensions:
contributte.thepay: Contributte\ThePay\DI\ThePayExtensionList 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.
ThePay\ApiClient\TheConfigThePay\ApiClient\Service\SignatureServiceThePay\ApiClient\Service\ApiService(implementsApiServiceInterface)ThePay\ApiClient\Service\GateService(implementsGateServiceInterface)ThePay\ApiClient\TheClient
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());
}
}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);
}
}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.
}
}
}See how to contribute to this package.
This package is currently maintained by these authors.
Consider to support contributte development team. Also thank you for using this package.