Skip to content

Repository files navigation

Website 🚀 contributte.org | Contact 👨🏻‍💻 f3l1x.io | Twitter 🐦 @contributte

Nette integration for ThePay API client with DI configuration and ready-to-use payment services.

Versions

StateVersionBranchPHP
dev^5.0master>= 8.2
stable^4.1v4.x>= 7.1

Contents

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/falsemerchantId:'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:truemerchantId:'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\TheConfig
  • ThePay\ApiClient\Service\SignatureService
  • ThePay\ApiClient\Service\ApiService (implements ApiServiceInterface)
  • ThePay\ApiClient\Service\GateService (implements GateServiceInterface)
  • ThePay\ApiClient\TheClient

Usage

Create a Payment

useNette\Application\UI\Presenter;
useThePay\ApiClient\Model\CreatePaymentParams;
useThePay\ApiClient\TheClient;
class OrderPresenter extends Presenter
{
publicfunction__construct(
privateTheClient$thePayClient,
) {
parent::__construct();
}
publicfunctionactionPay(): void
{
$params = newCreatePaymentParams(10000, 'CZK', 'order-123');
$payment = $this->thePayClient->createPayment($params);
$this->redirectUrl($payment->getPayUrl());
}
}

Render Payment Buttons

useNette\Application\UI\Presenter;
useThePay\ApiClient\Model\CreatePaymentParams;
useThePay\ApiClient\TheClient;
class OrderPresenter extends Presenter
{
publicfunction__construct(
privateTheClient$thePayClient,
) {
parent::__construct();
}
publicfunctionrenderPaymentMethods(): void
{
$params = newCreatePaymentParams(10000, 'CZK', 'order-123');
$this->template->paymentButtons = $this->thePayClient->getPaymentButtons($params);
}
}

Verify a Payment

useNette\Application\UI\Presenter;
useThePay\ApiClient\TheClient;
class OrderPresenter extends Presenter
{
publicfunction__construct(
privateTheClient$thePayClient,
) {
parent::__construct();
}
publicfunctionactionConfirmation(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.


Consider to supportcontributte development team. Also thank you for using this package.

About

💵 ThePay integration for Nette Framework

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages