stitchua / yii2-paymento
Payment system Paymento
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- php: >=7.4.0
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2025-03-24 18:20:12 UTC
README
System realizowany jako moduł pod nazwą paymento
, będzie konfigurowany w pliku konfiguracyjnym config/web.php
sekcja modules
. Moduł realizuje tylko jeden sposób
płatności: Bramkę płatności
Instalacja
Zalecany sposób instalacji przez composer
Możesz uruchomić
php composer.phar require --prefer-dist ststichua/yii2-paymento
lub dodać
"stitchua/yii2-paymento":"*"
do sekcji require
twojego composer.json
Po instalacji pakietu należy uruchomić migrację (w konsoli):
php yii migrate --migrationPath="@stitchua/paymento/migrations"
Konfiguracja
Do konfigurowania modułu służą:
merchantId
- ID konta w systemie płatnościowym PaymentopayloadModelClass
- Klasa opłacanego zamówienia np. 'app/models/Invoice'. Dana klasa ma realizowywać dwa interface-y:- [stitchua\paymento\base\PaymentoPayloadRequestDataInterface]
- [stitchua\paymento\base\PaymentoResponseDataInterface]
shops
- sklepy z systemu płatnościowego Paymento. Sklepów może być kilka. Każdy sklep jest skonfigurowany za pomocą trzech parametrów:nazwaSklepu
- klucz, dowolna unikalna nazwa pośród innych sklepów, można je dodać do stałych w klasie realizującej ww. interfasy.serviceId
- identyfikator sklepu nadany w systemie Paymento;serviceKey
- prywatny klucz nadany w systemie Paymento, jest wykorzystywany do obliczeniasygnatury
(hash kodu) przekazywanych danych do systemu Paymeno.
Klasa odzwierciedlająca dane przekazywane do Paymento [[stitchua/paymento/models/Paywall]]
Wyliczenie sygnatury notyfikacji z Paymento
Sygnatura w notyfikacji z Paymento wylicza się ze wszystkich pól 'transaction' przekazanej w notyfikacji i ma być porównywana z sygnaturą przekazaną w nagłówku
x-paymento-signature
Jak korzystyać
- W klasie która odpowiada w twoim systemie za zamówienie implementuj dwa interface-y:
- [stitchua\paymento\base\PaymentoPayloadRequestDataInterface]
- [stitchua\paymento\base\PaymentoResponseDataInterface]
- Skonfigurować jak opisno w sekcji konfiguracja
- Dodać przycisk do płatności
Realizujemy interface-y
// Istniejąca klasa/model Invoice namespace app\models; use stitchua\paymento\models\PaymentoTransaction; use yii\db\ActiveRecord; use stitchua\paymento\base\{ PaymentoPayloadRequestDataInterface, PaymentoResponseDataInterface }; class Invoice extends ActiveRecord implements PaymentoPayloadRequestDataInterface, PaymentoResponseDataInterface { public function getCustomerFirstName() : string{ // TODO: Implement getCustomerFirstName() method. return $this->account->first_name; } public function getCustomerLastName() : string{ // TODO: Implement getCustomerLastName() method. return $this->account->last_name; } public function getCustomerEmail() : string{ // TODO: Implement getCustomerEmail() method. return $this->account->email; } public function getAmount() : int{ // TODO: Implement getAmount() method. return $this->amount * 100; // Zwracamy w groszach } public function getId() : int{ // TODO: Implement getId() method. return $this->id; } public function getTitle() : string{ // TODO: Implement getTitle() method. return $this->invoicenumber; } public function paymentoOrderInvoiced(PaymentoTransaction $transaction){ // TODO: Implement paymentoOrderInvoiced() method. if($transaction->canBeSettled()){ $this->settle(); } } }
Konfigurujemy
W pliku konfiguracyjnym config/web.php (dla basic template) dodajesz:
[ 'modules' => [ 'paymento' => [ 'class' => 'stitchua\paymento\Paymento', 'merchantId' => 'jahds-we4fde-erge-fgsf', // ID twojego konta w Paymento 'payloadModelClass' => 'app\models\Invoice', // Klasa realizująca interface-y 'successReturnUrl' => 'https://mysite.com/site/payment-landig-page?status=success', 'failureReturnUrl' => 'https://mysite.com/site/payment-landig-page?status=error', 'shops' => [ // Nazwa sklepu, dowolno ustawiona przez ciebie 'myShop1' => [ 'serviceId' => 'id-sklepu-nadany-przez-paymento', // ID sklepu z Paymento 'serviceKey' => 'tayny-klusz-twojego-sklepu' // klucz sklepu z Paymento ] ] ] ] ]
Dane do konfiguracji
Dane do konfiguracji pobierz ze swojego konta w Paymento
WAŻNE!!! Nie zapomnij podać URL do wiadomości zwrotnych od Paymento. Bo w takim razie nie będą księgowane twoje zamówienia u Ciebie w systemie.
Tworzymy przycisk w widoku
W widoku faktury app\views\invoice\view.php
wyświetlamy przycisk do opłacenia faktury jeśli faktura jeszcze nie jest opłacona
use stitchua\paymento\models\Paywall; $invoice = Invoice::findOne(10); if(!$invoice->isSettled){ echo \yii\helpers\Html::a('Opłać fakturę', [ '/stitchua/paymento/pay-for-order', 'id' => $invoice->fld_id, 'shopName' => 'myShop1', 'payMethod' => Paywall::METHOD_PBL], [ 'class' => 'btn btn-success', 'target' => '_blank' ] ); }