Płatności
- routy:
/routes/vendor/idir/web/payments.php
/routes/vendor/idir/admin/payments.php
/routes/vendor/idir/api/payments.php
- kontrolery:
N1ebieski\IDir\Http\Controllers\Web\Payment\Dir\PaymentController
N1ebieski\IDir\Http\Controllers\Admin\
Payment\Dir\Payment
ControllerN1ebieski\IDir\Http\Controllers\Api\
Payment\Dir\Payment
Controller - model:
N1ebieski\IDir\Models\Payment\Dir\Payment
- repozytorium:
N1ebieski\IDir\Repositories\PaymentRepo
- serwis:
N1ebieski\IDir\Services\PaymentService
- widok:
/resources/views/vendor/idir/admin/payment
- pliki językowe:
/resources/lang/vendor/idir/pl/payments.php
/resources/lang/vendor/idir/en/payments.php
# Opis
iDir posiada wbudowany system płatności realizowany przez Cashbill. Model płatności przechowuje informację o wpisie za który następuje płatność, wybraną cenę oraz logi. Obsługiwane są automatyczne płatności przelewem, za kod SMS oraz kod przelewem.
W przypadku płatności przelewem, użytkownik po wypełnieniu formularza zostaje przekierowany na stronę płatności Cashbill gdzie dokonuje płatności. Do czasu weryfikacji płatności, wpis zostaje umieszczony w bazie ze statusem "oczekujący na płatność". Potwierdzenie odbywa się automatycznie za pośrednictwem API.
W przypadku płatności za kod SMS, użytkownik na etapie formularza proszony jest o wpisanie kodu. Pod polem znajduje się informacja na jaki numer telefonu należy wysłać płatność. Otrzymany SMSem zwrotnym kod użytkownik wpisuje w formularzu po czym natychmiast zostaje on potwierdzony przez aplikację za pośrednictwem API.
W przypadku płatności za kod przelewem, użytkownik na etapie formularza proszony jest o wpisanie kodu. Pod polem znajduje się link do płatności Cashbill. Otrzymany drogą mailową kod użytkownik wpisuje w formularzu po czym natychmiast zostaje on potwierdzony przez aplikację za pośrednictwem API.
Statusy
- zakończona - płatność zrealizowana, potwierdzona pozytywnie i wykonana przez aplikację
- oczekująca na realizację - płatność zrealizowana, potwierdzona pozytywnie, ale nie wykonana przez aplikację (na przykład wpis oczekuje na akceptację i dopiero od tego momentu zostanie naliczony czas premium)
- oczekująca na potwierdzenie - płatność zadeklarowana, brak potwierdzenia od operatora lub potwierdzona negatywnie (powód zostanie ujęty w logach)
# Konfiguracja płatności przelewem
Dane dostępowe należy umieścić w pliku .env w głównym folderze z aplikacją.
Adres do strony dokonywania płatności za pośrednictwem operatora:
CASHBILL_TRANSFER_URL=https://pay.cashbill.pl/form/pay.php
Identyfikator przypisany do usługi dostępny z poziomu panelu Cashbill > Płatności Pośrednictwo Finansowe > Punkt Płatności Sklep Internetowy > klikając na usługę:
CASHBILL_TRANSFER_SERVICE=
Klucz przypisany do usługi dostępny z poziomu panelu Cashbill > Płatności Pośrednictwo Finansowe> Punkt Płatności Sklep Internetowy > klikając na usługę:
CASHBILL_TRANSFER_KEY=
Walutę i język strony dokonywania płatności można opcjonalnie skonfigurować z poziomu pliku /config/services.php:
'cashbill' => [
'transfer' => [
'currency' => 'PLN',
'lang' => 'PL'
],
Dodatkowo należy skonfigurować adresy potwierdzenia oraz przekierowania z poziomu panelu Cashbill.
Adres serwerowego potwierdzenia transakcji, pod którym następuje weryfikacja płatności:
https://adres-strony.pl/api/payments/dir/verify
Adres powrotu przeglądarki, pod który zostanie przekierowany użytkownik po dokonaniu płatności:
https://adres-strony.pl/payments/dir/complete
# Konfiguracja płatności za kod SMS
Dane dostępowe należy umieścić w pliku .env w głównym folderze z aplikacją.
Adres do API operatora do weryfikacji SMS:
CASHBILL_CODE_SMS_CHECK_URL=https://sms.cashbill.pl/code/
Token przypisany do usługi dostępny z poziomu panelu Cashbill > Usługi SMS > SMS kody automatyczne > klikając na usługę należy podać indywidualnie dla każdej z cen.
Jeśli identyczny token zostanie skonfigurowany dla kilku cen/usług, wówczas Cashbill sprawdzi wszystkie, aż znajdzie pierwszą dla której kod jest aktywny.
W panelu Cashbill należy ustawić "czas ważności" kodu na 0.
Ewentualną listę kodów manualnych można wygenerować z poziomu panelu Cashbill > Usługi SMS > SMS Kod Obsługowy.
# Konfiguracja płatności za kod przelewem
Dane dostępowe należy umieścić w pliku .env w głównym folderze z aplikacją.
Usługę wystarczy stworzyć w panelu Cashbill > Płatności Pośrednictwo Finansowe > Punkt Płatności Kody Automatyczne (A)
Adres do strony dokonywania płatności za pośrednictwem operatora:
CASHBILL_CODE_TRANSFER_URL=https://pay.cashbill.pl/form/paycode.php?id=
Adres do API operatora do weryfikacji kodu:
CASHBILL_CODE_TRANSFER_CHECK_URL=https://pay.cashbill.pl/form/backcode_check.php
Identyfikator ID przypisany do usługi dostępny z poziomu panelu Cashbill > Płatności > Punkt Płatności Kody Automatyczne (A) > klikając na usługę należy podać indywidualnie dla każdej z cen.
W panelu Cashbill należy ustawić "czas ważności" kodu na 0.
Ewentualną listę kodów manualnych można wygenerować z poziomu panelu Cashbill > Płatności Pośrednictwo Finansowe > Punkt Płatności Kody Obsługowe.
# Konfiguracja ogólna
W pliku /config/idir.php znajduje się kilka ustawień ogólnego zastosowania:
'payment' => [
'transfer' => [
'driver' => 'cashbill'
],
'code_sms' => [
'driver' => 'cashbill'
],
'code_transfer' => [
'driver' => 'cashbill'
],
'cashbill' => [
'name' => 'CashBill',
'url' => 'https://www.cashbill.pl',
'rules_url' => 'https://www.cashbill.pl/download/regulaminy/Regulamin_Platnosci.pdf',
'docs_url' => 'https://www.cashbill.pl/pobierz/dokumenty/'
]
]
- driver odpowiada za silnik obsługujący poszczególne metody płatności
- name definiuje nazwę używaną na stronie. Pole url to adres internetowy operatora płatności
- rules_url to adres do regulaminu płatności operatora
- docs_url to adres do pozostałych dokumentów operatora