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\PaymentController
    N1ebieski\IDir\Http\Controllers\Api\Payment\Dir\PaymentController
  • 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