Przejdź do głównej zawartości

Sylius

Oficjalny plugin dpay.pl dla platformy Sylius. Umożliwia przyjmowanie płatności online w sklepie internetowym opartym na Sylius z wykorzystaniem biblioteki Payum. Obsługuje pełny cykl płatności - od rejestracji transakcji, przez powiadomienia IPN, po zwroty.


Wymagania

  • Sylius 1.12 lub 2.0+
  • PHP 8.1 lub nowszy
  • Payum Core 1.7+
  • Composer
  • Aktywne konto w Panelu dpay.pl z utworzonym Punktem Płatności

Obsługiwane metody płatności

  • BLIK (w tym BLIK Level 0 - inline)
  • Przelewy bankowe (pay-by-link)
  • Karty płatnicze (inline)
  • Google Pay i Apple Pay
  • PayPal
  • Paysafecard
  • Raty (BLIK BNPL)

Instalacja

Zainstaluj plugin za pomocą Composera:

composer require dpay/sylius-plugin

Następnie zarejestruj bundle w pliku config/bundles.php:

return [
// ...
DPay\SyliusPlugin\DPaySyliusPlugin::class => ['all' => true],
];

Zaimportuj konfigurację serwisów. Utwórz plik config/packages/dpay_sylius_plugin.yaml:

imports:
- { resource: "@DPaySyliusPlugin/config/services.xml" }

Wyczyść cache:

bin/console cache:clear

Konfiguracja

Krok 1 - Przygotowanie danych w Panelu dpay.pl

  1. Zaloguj się do Panelu dpay.pl.
  2. Przejdź do sekcji Punkty Płatności.
  3. Utwórz nowy Punkt Płatności lub wybierz istniejący.
  4. Zanotuj:
    • Nazwa serwisu (service_name) - unikalna nazwa Twojego Punktu Płatności
    • Tajny hash (secret_hash) - klucz używany do podpisywania żądań
  5. Adres IPN zostanie ustawiony automatycznie przez Payum (token notify).
Ważne

Tajny hash powinien być traktowany jak hasło. Nigdy nie udostępniaj go publicznie ani nie umieszczaj w kodzie frontendowym.

Krok 2 - Konfiguracja bramki płatności w Sylius

  1. Przejdź do panelu administracyjnego Sylius.
  2. Otwórz Configuration > Payment methods.
  3. Kliknij Create i wybierz gateway dPay.pl.
  4. Wypełnij formularz konfiguracyjny:
PoleOpis
Service NameNazwa serwisu z Panelu dpay.pl
Hash KeyTajny hash z Panelu dpay.pl
PayPalWłącz/wyłącz płatności PayPal
Credit CardWłącz/wyłącz płatności kartą
PaysafecardWłącz/wyłącz płatności Paysafecard
InstallmentWłącz/wyłącz płatności ratalne
No BanksUkryj listę banków
BLIK ZeroWłącz płatności BLIK Level 0 (inline)
Apple PayWłącz płatności Apple Pay
Google PayWłącz płatności Google Pay
Card InlineWłącz formularz karty inline
  1. Zapisz konfigurację.

Krok 3 - Weryfikacja

  1. Złóż testowe zamówienie w sklepie.
  2. Wybierz dPay.pl jako metodę płatności.
  3. Sprawdź, czy następuje poprawne przekierowanie na stronę płatności.
  4. Po dokonaniu płatności sprawdź, czy status zamówienia w Sylius zmienił się na Opłacone.

Zwroty

Plugin obsługuje zwroty online za pośrednictwem mechanizmu Payum Refund. Zwroty mogą być:

  • Pełne - zwrot całej kwoty transakcji
  • Częściowe - zwrot wybranej kwoty (ustawianej przez pole dpay_refund_amount)

Zwrot zostanie automatycznie przesłany do API dpay.pl.


Mapowanie statusów

Status dpay.plStatus Sylius (Payum)
pendingPending
pending_inlinePending (BLIK inline)
completedCaptured (Opłacone)
failedFailed
refundedRefunded

Rozwiązywanie problemów

Zamówienia nie zmieniają statusu automatycznie

  • Sprawdź, czy token notify Payum jest poprawnie generowany.
  • Upewnij się, że serwer dpay.pl ma dostęp do adresu IPN (nie jest blokowany przez firewall).
  • Sprawdź logi Symfony: var/log/dev.log lub var/log/prod.log.

Błąd "Only PLN currency is supported"

  • Plugin obsługuje wyłącznie walutę PLN. Upewnij się, że kanał sprzedaży (channel) w Sylius ma ustawioną walutę PLN.

Błąd "Invalid IPN payload"

  • Upewnij się, że Hash Key w konfiguracji bramki jest identyczny z hashem w Panelu dpay.pl.
  • Sprawdź, czy nie ma dodatkowych spacji przed lub po wartości klucza.

Plugin nie pojawia się jako opcja gateway

  • Sprawdź, czy bundle jest poprawnie zarejestrowany w config/bundles.php.
  • Wyczyść cache: bin/console cache:clear.

Więcej informacji