PHPackages                             crehler/inpost-pay - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. crehler/inpost-pay

ActiveShopware-platform-plugin

crehler/inpost-pay
==================

InPost Pay integration

4.1.1(yesterday)02↑2900%MITPHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0

Since Jul 22Compare

[ Source](https://github.com/crehler/inpost-pay)[ Packagist](https://packagist.org/packages/crehler/inpost-pay)[ RSS](/packages/crehler-inpost-pay/feed)WikiDiscussions Synced today

READMEChangelog (8)Dependencies (2)Versions (8)Used By (0)

InPost Pay - Wtyczka dla Shopware 6.5
=====================================

[](#inpost-pay---wtyczka-dla-shopware-65)

> **Którą wersję zainstalować (dopasuj do swojej wersji Shopware):**
>
> - Shopware **6.5** → `composer require crehler/inpost-pay:^1.0`
> - Shopware **6.6** → `composer require crehler/inpost-pay:^2.0`
> - Shopware **6.7.0 – 6.7.6** → `composer require crehler/inpost-pay:^3.0`
> - Shopware **6.7.7+** → `composer require crehler/inpost-pay:^4.0`

Spis treści
-----------

[](#spis-treści)

- [Wprowadzenie](#wprowadzenie)
- [Co to jest InPost Pay?](#co-to-jest-inpost-pay)
- [Funkcjonalności wtyczki](#funkcjonalno%C5%9Bci-wtyczki)
- [Wymagania systemowe](#wymagania-systemowe)
- [Instalacja](#instalacja)
- [Konfiguracja](#konfiguracja)
    - [Konfiguracja podstawowa](#konfiguracja-podstawowa)
    - [Konfiguracja metod płatności](#konfiguracja-metod-p%C5%82atno%C5%9Bci)
    - [Mapowanie metod dostawy](#mapowanie-metod-dostawy)
    - [Konfiguracja widgetów](#konfiguracja-widget%C3%B3w)
- [Wymagane ustawienia Shopware](#wymagane-ustawienia-shopware)
- [Jak to działa?](#jak-to-dzia%C5%82a)
- [Endpointy API](#endpointy-api)
- [Obsługa Webhooków](#obs%C5%82uga-webhook%C3%B3w)
- [Rozwiązywanie problemów](#rozwi%C4%85zywanie-problem%C3%B3w)
- [Wsparcie techniczne](#wsparcie-techniczne)

---

Wprowadzenie
------------

[](#wprowadzenie)

Wtyczka **InPost Pay** umożliwia integrację platformy e-commerce Shopware 6.5 z systemem płatności InPost Pay. Dzięki tej wtyczce klienci mogą korzystać z różnorodnych metod płatności oferowanych przez InPost Pay, a także z wygodnych widgetów prezentujących informacje o dostępnych opcjach płatności bezpośrednio na stronach produktów, w koszyku oraz podczas procesu finalizacji zamówienia.

---

Co to jest InPost Pay?
----------------------

[](#co-to-jest-inpost-pay)

**InPost Pay** to kompleksowa platforma płatnicza oferowana przez firmę InPost, która umożliwia:

- **Płatności online** - obsługę różnych form płatności elektronicznych
- **Odroczone płatności** - możliwość zakupu z odroczonym terminem płatności
- **Raty i limity zakupowe** - elastyczne opcje finansowania zakupów
- **Płatności mobilne** - wsparcie dla Google Pay, Apple Pay, BLIK
- **Bezpieczeństwo transakcji** - zaawansowane mechanizmy weryfikacji i autoryzacji

### Cele biznesowe InPost Pay:

[](#cele-biznesowe-inpost-pay)

1. **Zwiększenie konwersji** - oferowanie wielu metod płatności zwiększa szanse na finalizację zakupu
2. **Budowanie zaufania** - znana marka InPost zwiększa zaufanie klientów
3. **Elastyczność finansowa** - odroczone płatności i raty umożliwiają zakupy klientom o różnej sytuacji finansowej
4. **Uproszczenie procesu zakupowego** - szybkie płatności mobilne (BLIK, Google Pay, Apple Pay)
5. **Bezpieczeństwo** - nowoczesne mechanizmy bezpieczeństwa chronią sprzedawcę i kupującego

---

Funkcjonalności wtyczki
-----------------------

[](#funkcjonalności-wtyczki)

### 1. Integracja z systemem płatności InPost Pay

[](#1-integracja-z-systemem-płatności-inpost-pay)

- Dodanie metody płatności InPost Pay w Shopware
- Obsługa procesu płatności z wykorzystaniem API InPost Pay
- Automatyczna synchronizacja statusów płatności

### 2. Widget InPost Pay

[](#2-widget-inpost-pay)

Wtyczka wyświetla interaktywne widgety InPost Pay w następujących lokalizacjach:

- **Strona produktu** - informacje o dostępnych metodach płatności dla konkretnego produktu
- **Mini koszyk (offcanvas)** - widget w wysuwanym koszyku
- **Strona podsumowania koszyka** - pełne informacje o metodach płatności
- **Strona checkout** - widget podczas finalizacji zamówienia

Widgety są w pełni konfigurowalne (kolor, rozmiar, styl, marginesy, wyrównanie).

### 3. Synchronizacja koszyka

[](#3-synchronizacja-koszyka)

- Automatyczna synchronizacja zawartości koszyka Shopware z koszykiem InPost Pay
- Aktualizacja koszyka w czasie rzeczywistym przy zmianach (dodanie/usunięcie produktu, zmiana ilości)
- Obsługa potwierdzeń koszyka z poziomu aplikacji InPost Pay

### 4. Tworzenie zamówień

[](#4-tworzenie-zamówień)

- Automatyczne tworzenie zamówień w Shopware po potwierdzeniu płatności
- Mapowanie danych klienta z InPost Pay do Shopware
- Obsługa danych dostawy i faktury

### 5. Obsługa webhooków

[](#5-obsługa-webhooków)

Wtyczka odbiera i przetwarza webhooki od InPost Pay:

- `PAYMENT_AUTHORIZED` - autoryzacja płatności
- `PAYMENT_DECLINED` - odrzucenie płatności
- `REFUND` - potwierdzenie zwrotu środków
- `REFUND_DECLINED` - odrzucenie zwrotu
- `SETTLEMENT` - rozliczenie transakcji

### 6. Mapowanie metod dostawy

[](#6-mapowanie-metod-dostawy)

Wtyczka umożliwia mapowanie metod dostawy Shopware na typy dostawy InPost Pay:

- **APM (Paczkomat)** - odbiór w paczkomacie InPost
- **Courier** - dostawa kurierska
- **Digital** - produkty cyfrowe

### 7. Wsparcie dla wielu metod płatności

[](#7-wsparcie-dla-wielu-metod-płatności)

Wtyczka obsługuje następujące metody płatności:

- **BLIK** - szybkie płatności mobilne
- **Karta płatnicza (CARD)** - płatność kartą kredytową/debetową
- **Card Token** - zapisane karty płatnicze
- **Google Pay** - płatności Google
- **Apple Pay** - płatności Apple
- **Pay by Link** - płatność przez link
- **Shopping Limit** - limit zakupowy
- **Deferred Payment** - odroczona płatność
- **Cash on Delivery** - płatność przy odbiorze

---

Wymagania systemowe
-------------------

[](#wymagania-systemowe)

### Wymagania platformy:

[](#wymagania-platformy)

- **Shopware**: wersja **6.5.x**
- **PHP**: wersja **8.1**, **8.2** lub **8.3**
- **Composer**: do zarządzania zależnościami

### Wymagania funkcjonalne:

[](#wymagania-funkcjonalne)

- Aktywne konto InPost Pay (środowisko sandbox lub produkcyjne)
- Certyfikaty API i dane autoryzacyjne (Client ID, Client Secret, Post ID, Merchant Client ID, Merchant Secret)
- Dostęp do konfiguracji Shopware w panelu administracyjnym

### Wymagania Shopware:

[](#wymagania-shopware)

- **WAŻNE**: Numer telefonu musi być włączony, wymagany i poprawnie skonfigurowany w formularzach Shopware (rejestracja, checkout)
- Włączone SSL (HTTPS) dla bezpieczeństwa komunikacji
- Dostęp do logów systemowych dla debugowania

---

Instalacja
----------

[](#instalacja)

### 1. Instalacja przez Composer (zalecane)

[](#1-instalacja-przez-composer-zalecane)

```
# Przejdź do katalogu głównego Shopware
cd /path/to/shopware

# Zainstaluj wtyczkę
composer require crehler/inpost-pay

# Odśwież wtyczki Shopware
bin/console plugin:refresh

# Zainstaluj wtyczkę
bin/console plugin:install InpostPay --activate

# Wyczyść cache
bin/console cache:clear
```

### 2. Instalacja manualna

[](#2-instalacja-manualna)

```
# Skopiuj wtyczkę do katalogu custom/plugins
cp -r InpostPay /path/to/shopware/custom/plugins/

# Odśwież wtyczki
bin/console plugin:refresh

# Zainstaluj wtyczkę
bin/console plugin:install InpostPay --activate

# Wyczyść cache
bin/console cache:clear
```

### 3. Migracja bazy danych

[](#3-migracja-bazy-danych)

Po instalacji wtyczki zostaną automatycznie uruchomione migracje tworzące wymagane tabele w bazie danych:

- `inpost_basket_session` - tabela przechowująca sesje koszyków InPost Pay

---

Konfiguracja
------------

[](#konfiguracja)

### Dostęp do konfiguracji

[](#dostęp-do-konfiguracji)

1. Zaloguj się do panelu administracyjnego Shopware
2. Przejdź do: **Rozszerzenia** → **Moje rozszerzenia** → **Aplikacje**
3. Znajdź wtyczkę **InPost Pay** i kliknij ikonę **ustawień** (⚙️)

---

### Konfiguracja podstawowa

[](#konfiguracja-podstawowa)

#### 1. InPost Pay Configuration

[](#1-inpost-pay-configuration)

PoleOpisWymagane**Enable Sandbox Mode**Włącza tryb testowy (sandbox). Wyłącz dla produkcji.Tak**Client ID**Identyfikator klienta otrzymany od InPost PayTak**Client Secret**Sekret klienta (nie udostępniaj publicznie)Tak**Post ID**Identyfikator punktu sprzedażyTak**Merchant Client ID**Identyfikator merchantowyTak**Merchant Secret**Sekret merchantowy używany do walidacji webhookówTak**Przykład:**

```
Client ID: b73ca9fc-0123-4567-8912-5ac02c6af6e9
Client Secret: ********************************
Post ID: 12345678
Merchant Client ID: b73ca9fc-0123-4567-8912-5ac02c6af6e9
Merchant Secret: ********************************

```

---

### Konfiguracja metod płatności

[](#konfiguracja-metod-płatności)

#### 2. Payment Methods Configuration

[](#2-payment-methods-configuration)

W tej sekcji możesz wybrać, które metody płatności będą dostępne dla klientów w widgecie InPost Pay.

**Dostępne metody:**

- ✅ **BLIK** (domyślnie włączone)
- ✅ **Credit/Debit Card** (domyślnie włączone)
- ⬜ **Card Token**
- ⬜ **Google Pay**
- ⬜ **Apple Pay**
- ✅ **Pay by Link** (domyślnie włączone)
- ⬜ **Shopping Limit**
- ⬜ **Deferred Payment**
- ⬜ **Cash on Delivery**

**Zalecenie:** Włącz metody płatności najpopularniejsze wśród Twoich klientów, ale nie przytłaczaj ich zbyt dużą liczbą opcji.

---

### Mapowanie metod dostawy

[](#mapowanie-metod-dostawy)

#### 3. Delivery Method Mapping

[](#3-delivery-method-mapping)

Wtyczka wymaga mapowania metod dostawy Shopware na typy dostawy InPost Pay. Jest to kluczowe dla poprawnego działania integracji.

Typ dostawy InPost PayOpisPrzykładowe metody Shopware**APM (Paczkomat)**Odbiór w paczkomacie InPost"InPost Paczkomat", "Odbiór w paczkomacie"**Courier**Dostawa kurierska"DHL", "DPD", "UPS", "InPost Kurier"**Digital**Produkty cyfrowe"Pobieranie cyfrowe", "E-book", "Dostawa email"**Jak skonfigurować:**

1. Kliknij w pole **APM (Paczkomat) Methods**
2. Wybierz metody dostawy Shopware, które odpowiadają dostawie do paczkomatu
3. Powtórz dla **Courier Delivery Methods** (kurier)
4. Powtórz dla **Digital Delivery Methods** (produkty cyfrowe)

---

### Konfiguracja widgetów

[](#konfiguracja-widgetów)

Wtyczka oferuje szczegółową konfigurację wyglądu widgetów dla 4 różnych lokalizacji:

#### 4. Widget Display - Product Card (Strona produktu)

[](#4-widget-display---product-card-strona-produktu)

Konfiguracja widgetu wyświetlanego na stronie produktu.

PoleOpisDomyślna wartość**Display Widget**Czy wyświetlać widget✅ Włączone**Dark Mode**Ciemny motyw⬜ Wyłączone**Variant**Wariant kolorystycznySecondary**Frame Style**Styl ramki (rounded/round)-**Size**Rozmiar (xs/sm/md/lg/xl)-**Max Width**Maksymalna szerokość w px (220-1200)-**Margin Top/Bottom/Left/Right**Marginesy w px-**Alignment**Wyrównanie (Left/Center/Right)-#### 5. Widget Display - Mini Cart (Mini koszyk)

[](#5-widget-display---mini-cart-mini-koszyk)

Konfiguracja widgetu w wysuwanym koszyku (offcanvas).

*(Pola identyczne jak w Product Card)*

#### 6. Widget Display - Cart Summary (Podsumowanie koszyka)

[](#6-widget-display---cart-summary-podsumowanie-koszyka)

Konfiguracja widgetu na stronie koszyka.

*(Pola identyczne jak w Product Card)*

#### 7. Widget Display - Checkout Page (Strona checkout)

[](#7-widget-display---checkout-page-strona-checkout)

Konfiguracja widgetu na stronie finalizacji zamówienia.

*(Pola identyczne jak w Product Card)*

**Zalecenia dotyczące widgetów:**

- Na stronie produktu: rozmiar **sm** lub **md**, wyrównanie **Left**
- W mini koszyku: rozmiar **xs** lub **sm**, wyrównanie **Center**
- Na stronie koszyka: rozmiar **md** lub **lg**, wyrównanie **Center**
- Na checkout: rozmiar **md**, wyrównanie **Center**

---

Wymagane ustawienia Shopware
----------------------------

[](#wymagane-ustawienia-shopware)

### ⚠️ KRYTYCZNE: Konfiguracja numeru telefonu

[](#️-krytyczne-konfiguracja-numeru-telefonu)

**Wtyczka InPost Pay wymaga numeru telefonu klienta do poprawnego działania.** Numer telefonu jest niezbędny do:

- Autoryzacji płatności w aplikacji InPost Pay
- Komunikacji z klientem w przypadku problemów z płatnością
- Weryfikacji tożsamości podczas płatności mobilnych (BLIK)

#### Jak włączyć i skonfigurować numer telefonu w Shopware:

[](#jak-włączyć-i-skonfigurować-numer-telefonu-w-shopware)

1. **Włączenie pola numer telefonu w systemie:**

    - Zaloguj się do panelu administracyjnego Shopware
    - Przejdź do: **Settings** (Ustawienia) → **System** → **Customer groups** (Grupy klientów)
    - Wybierz grupę klientów, którą chcesz edytować (np. "Standard customer group")
    - W sekcji **Registration** (Rejestracja) znajdź opcję **Phone number field**
    - ✅ Zaznacz opcję **Display** (Wyświetl) - aby pole było widoczne
    - ✅ Zaznacz opcję **Required** (Wymagane) - aby pole było obowiązkowe
2. **Alternatywnie - konfiguracja przez Settings → Shop:**

    - Przejdź do: **Settings** → **Shop** → **Customer**
    - W sekcji **Address fields** (Pola adresu) znajdź:
        - **Phone number** → ustaw jako **Display and required** (Wyświetl i wymagane)
3. **Weryfikacja ustawień:**

    - Przejdź na frontend sklepu w trybie incognito
    - Sprawdź formularz rejestracji - pole "Phone number" powinno być widoczne i oznaczone jako wymagane (\*)
    - Sprawdź formularz checkout - pole "Phone number" powinno być widoczne w sekcji adresu
    - Spróbuj zarejestrować konto bez numeru telefonu - system powinien wyświetlić błąd walidacji
4. **Weryfikacja w bazie danych:**

    - Sprawdź, czy w tabeli `customer_address` kolumna `phone_number` zawiera dane
    - Możesz to zrobić przez: `SELECT phone_number FROM customer_address LIMIT 10;`

**Format numeru telefonu:**

- Wtyczka obsługuje format międzynarodowy, np. `+48 123 456 789`
- Preferowany jest format z prefiksem kraju (+48 dla Polski)
- System akceptuje również format lokalny, np. `123 456 789`

---

Jak to działa?
--------------

[](#jak-to-działa)

### Przepływ procesu płatności InPost Pay

[](#przepływ-procesu-płatności-inpost-pay)

```
1. Klient dodaje produkty do koszyka
   ↓
2. Widget InPost Pay wyświetla dostępne metody płatności
   ↓
3. Klient klika "Kup teraz z InPost Pay" lub przechodzi do checkout
   ↓
4. Shopware tworzy sesję koszyka i wysyła dane do InPost Pay API
   ↓
5. InPost Pay zwraca ID koszyka i link do aplikacji płatniczej
   ↓
6. Klient zostaje przekierowany do aplikacji InPost Pay
   ↓
7. Klient wybiera metodę płatności i potwierdza zakup
   ↓
8. InPost Pay wysyła webhook z potwierdzeniem płatności
   ↓
9. Shopware aktualizuje status zamówienia
   ↓
10. Klient otrzymuje potwierdzenie zamówienia

```

### Synchronizacja koszyka w czasie rzeczywistym

[](#synchronizacja-koszyka-w-czasie-rzeczywistym)

Wtyczka automatycznie synchronizuje koszyk między Shopware a InPost Pay:

- **Dodanie produktu** → aktualizacja koszyka InPost Pay
- **Usunięcie produktu** → aktualizacja koszyka InPost Pay
- **Zmiana ilości** → aktualizacja koszyka InPost Pay
- **Zmiana metody dostawy** → aktualizacja koszyka InPost Pay

Synchronizacja jest asynchroniczna i nie wpływa na wydajność sklepu.

### Obsługa płatności

[](#obsługa-płatności)

#### Statusy płatności (webhooks):

[](#statusy-płatności-webhooks)

Webhook InPost PayStatus transakcji ShopwareOpis`PAYMENT_AUTHORIZED``paid`Płatność została opłacona - zamówienie można realizować`PAYMENT_DECLINED``failed`Płatność została odrzucona - klient musi spróbować ponownie`REFUND``refunded`Zwrot środków został zrealizowany`REFUND_DECLINED`-Zwrot odrzucony - wymaga ręcznej interwencji`SETTLEMENT`-Transakcja rozliczona (informacja księgowa)#### Statusy płatności (order events - `/order/{orderId}/event`):

[](#statusy-płatności-order-events---orderorderidevent)

PaymentStatus InPost PayStatus transakcji ShopwareOpis`AUTHORIZED``paid`Płatność została opłacona`COMPLETED``paid`Płatność zakończona`FAILED``failed`Płatność nieudana`CANCELLED``cancelled`Płatność anulowana`PENDING``in_progress`Płatność w trakcie`REFUNDED``refunded`Zwrot zrealizowany**Uwaga:** Status transakcji w Shopware jest aktualizowany automatycznie przez webhooki i eventy. Początkowo każde zamówienie ma status `open` (oczekuje), który jest aktualizowany po otrzymaniu webhooka/eventu od InPost Pay. W odpowiedzi na event zwracamy `order_merchant_status_description` z polskim opisem aktualnego statusu.

---

Endpointy API
-------------

[](#endpointy-api)

Wtyczka udostępnia następujące endpointy API dla komunikacji z InPost Pay:

### Publiczne API (bez autoryzacji)

[](#publiczne-api-bez-autoryzacji)

#### Koszyk

[](#koszyk)

```
POST   /api/inpost/v1/izi/basket/{basketId}/confirmation
GET    /api/inpost/v1/izi/basket/{basketId}
DELETE /api/inpost/v1/izi/basket/{basketId}/binding
POST   /api/inpost/v1/izi/basket/{basketId}/event
PUT    /api/inpost/v2/izi/basket/{basketId}

```

#### Zamówienie

[](#zamówienie)

```
POST   /api/inpost/v1/izi/order
GET    /api/inpost/v1/izi/order/{orderId}
POST   /api/inpost/v1/izi/order/{orderId}/event

```

#### Webhooki

[](#webhooki)

```
POST   /api/inpost/events

```

### Storefront API (wymagana sesja klienta)

[](#storefront-api-wymagana-sesja-klienta)

```
POST   /checkout/inpost/basket/bind
POST   /checkout/inpost/basket/bindBasket

```

### Zabezpieczenie webhooków

[](#zabezpieczenie-webhooków)

Webhooki od InPost Pay są zabezpieczone podpisem HMAC SHA-256. Wtyczka automatycznie weryfikuje podpis używając `Merchant Secret` z konfiguracji.

---

Obsługa Webhooków
-----------------

[](#obsługa-webhooków)

### Konfiguracja URL webhooka w InPost Pay

[](#konfiguracja-url-webhooka-w-inpost-pay)

Podczas konfiguracji konta InPost Pay podaj następujący URL webhooka:

```
https://twoja-domena.pl/api/inpost/events

```

Zastąp `twoja-domena.pl` rzeczywistą domeną Twojego sklepu.

### Typy webhooków

[](#typy-webhooków)

Wtyczka obsługuje następujące typy webhooków:

#### 1. PAYMENT\_AUTHORIZED

[](#1-payment_authorized)

Wysyłany, gdy płatność została autoryzowana przez InPost Pay.

**Akcja:** Wtyczka aktualizuje status transakcji na "authorized" (autoryzowana).

**Znaczenie biznesowe:** Płatność została zatwierdzona, ale środki jeszcze nie zostały pobrane. Zamówienie można realizować.

#### 2. PAYMENT\_DECLINED

[](#2-payment_declined)

Wysyłany, gdy płatność została odrzucona (np. brak środków, błąd karty).

**Akcja:** Wtyczka aktualizuje status transakcji na "failed" (nieudana).

**Znaczenie biznesowe:** Płatność nie powiodła się. Klient musi spróbować ponownie lub wybrać inną metodę płatności.

#### 3. REFUND

[](#3-refund)

Wysyłany, gdy zwrot środków został pomyślnie przetworzony.

**Akcja:** Wtyczka aktualizuje status transakcji na "refunded" (zwrócona) i tworzy notatkę o zwrocie.

**Znaczenie biznesowe:** Środki zostały zwrócone klientowi. Proces zwrotu zakończony.

#### 4. REFUND\_DECLINED

[](#4-refund_declined)

Wysyłany, gdy próba zwrotu została odrzucona.

**Akcja:** Wtyczka loguje błąd i tworzy notatkę o nieudanym zwrocie.

**Znaczenie biznesowe:** Zwrot nie powiódł się - wymaga ręcznej interwencji.

#### 5. SETTLEMENT

[](#5-settlement)

Wysyłany, gdy transakcja została rozliczona (środki przekazane do sprzedawcy).

**Akcja:** Wtyczka loguje informację o rozliczeniu dla celów księgowych.

**Znaczenie biznesowe:** Transakcja została ostatecznie rozliczona - środki trafiły na konto sprzedawcy.

### Debugowanie webhooków

[](#debugowanie-webhooków)

Webhooki są logowane w logach Shopware. Aby włączyć szczegółowe logowanie:

1. Przejdź do pliku `.env` w katalogu głównym Shopware
2. Ustaw poziom logowania na `debug`: ```
    APP_ENV=dev
    APP_DEBUG=1

    ```
3. Logi znajdziesz w: `var/log/dev.log`

**Przykładowy log webhooka:**

```
[2025-12-01 10:30:45] app.INFO: Sprawdzamy webhooka:
[2025-12-01 10:30:45] app.INFO: Webhook event processed successfully {"event_type":"PAYMENT_AUTHORIZED","order_id":"abc123"}

```

**Testowanie webhooków:**Możesz ręcznie przetestować endpoint webhooków używając narzędzi jak curl lub Postman:

```
curl -X POST https://twoja-domena.pl/api/inpost/events \
  -H "Content-Type: application/json" \
  -H "X-API-Version: 1.0" \
  -H "X-Signature: test-signature" \
  -d '{
    "eventType": "PAYMENT_AUTHORIZED",
    "eventData": {
      "orderReference": "test-order-123",
      "status": "AUTHORIZED"
    }
  }'
```

**Uwaga:** W środowisku produkcyjnym webhook wymaga poprawnego podpisu HMAC.

---

Rozwiązywanie problemów
-----------------------

[](#rozwiązywanie-problemów)

### Problem: Widget InPost Pay nie wyświetla się na stronie

[](#problem-widget-inpost-pay-nie-wyświetla-się-na-stronie)

**Rozwiązanie:**

1. Sprawdź, czy wtyczka jest aktywna: `bin/console plugin:list | grep InpostPay`
2. Sprawdź konfigurację widgetów - upewnij się, że "Display Widget" jest włączone
3. Wyczyść cache: `bin/console cache:clear`
4. Sprawdź logi przeglądarki (F12 → Console) w poszukiwaniu błędów JavaScript

### Problem: Błąd "Basket session not found"

[](#problem-błąd-basket-session-not-found)

**Rozwiązanie:**

1. Sprawdź, czy sesja koszyka została utworzona
2. Sprawdź, czy nie upłynął timeout sesji
3. Sprawdź logi: `var/log/dev.log`

### Problem: Płatność nie jest aktualizowana po potwierdzeniu

[](#problem-płatność-nie-jest-aktualizowana-po-potwierdzeniu)

**Rozwiązanie:**

1. Sprawdź, czy URL webhooka jest poprawnie skonfigurowany w InPost Pay
2. Sprawdź, czy Merchant Secret jest poprawny
3. Sprawdź logi webhooków: `var/log/dev.log | grep webhook`
4. Sprawdź, czy serwer jest dostępny publicznie (nie localhost)

### Problem: Błąd "Invalid webhook signature"

[](#problem-błąd-invalid-webhook-signature)

**Rozwiązanie:**

1. Sprawdź, czy Merchant Secret w konfiguracji jest poprawny
2. Upewnij się, że używasz tej samej wartości co w panelu InPost Pay
3. Sprawdź, czy webhook zawiera wymagane nagłówki: `X-API-Version`, `X-Signature`

### Problem: Brak numeru telefonu w zamówieniu

[](#problem-brak-numeru-telefonu-w-zamówieniu)

**Rozwiązanie:**

1. Sprawdź konfigurację pól klienta w Shopware (patrz: [Wymagane ustawienia Shopware](#wymagane-ustawienia-shopware))
2. Upewnij się, że numer telefonu jest oznaczony jako wymagany
3. Przetestuj formularz rejestracji i checkout

### Problem: Błąd "Client credentials are invalid"

[](#problem-błąd-client-credentials-are-invalid)

**Rozwiązanie:**

1. Sprawdź, czy Client ID i Client Secret są poprawne
2. Upewnij się, że używasz właściwego środowiska (sandbox vs. production)
3. Sprawdź, czy certyfikaty nie wygasły
4. Skontaktuj się z działem technicznym InPost Pay

### Problem: Webhook nie aktualizuje statusu zamówienia

[](#problem-webhook-nie-aktualizuje-statusu-zamówienia)

**Rozwiązanie:**

1. Sprawdź logi webhooka: `tail -f var/log/dev.log | grep -i inpost`
2. Upewnij się, że webhook zawiera poprawny typ zdarzenia: `PAYMENT_AUTHORIZED`, `PAYMENT_DECLINED`, `REFUND`, `REFUND_DECLINED` lub `SETTLEMENT`
3. Sprawdź, czy `orderReference` w webhooku odpowiada istniejącemu zamówieniu w Shopware
4. Zweryfikuj, czy webhooki są faktycznie wysyłane z InPost Pay - sprawdź w panelu InPost Pay historię webhooków
5. Przetestuj endpoint ręcznie za pomocą curl (patrz sekcja "Testowanie webhooków")

---

Wsparcie techniczne
-------------------

[](#wsparcie-techniczne)

### Wsparcie wtyczki

[](#wsparcie-wtyczki)

- **Email:**
- **Strona WWW:**
- **GitHub:** [Zgłoś problem](https://github.com/crehler/inpost-pay/issues) (jeśli dostępne)

### Wsparcie InPost Pay

[](#wsparcie-inpost-pay)

- **Strona WWW:**
- **Dokumentacja API:**
- **Pomoc techniczna:** Skontaktuj się przez panel InPost Pay

### Przydatne komendy Shopware

[](#przydatne-komendy-shopware)

```
# Odśwież listę wtyczek
bin/console plugin:refresh

# Aktywuj wtyczkę
bin/console plugin:install InpostPay --activate

# Dezaktywuj wtyczkę
bin/console plugin:deactivate InpostPay

# Odinstaluj wtyczkę
bin/console plugin:uninstall InpostPay

# Wyczyść cache
bin/console cache:clear

# Uruchom migracje
bin/console database:migrate --all InpostPay

# Wyświetl logi
tail -f var/log/dev.log
```

---

Licencja
--------

[](#licencja)

Wtyczka jest udostępniana na licencji MIT.

Autor
-----

[](#autor)

**Crehler Sp. z o. o.**

- Email:
- WWW:

---

**Wersja dokumentacji:** 1.0.0 **Data:** 2025-12-01 **Wersja wtyczki:** 1.0.0

📅 Kalendarium
-------------

[](#-kalendarium)

Utworzono: 14.11.2025 Ostatnia modyfikacja: 07.01.2026

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance100

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

1d ago

Major Versions

1.1.0 → 2.1.02026-07-22

2.1.0 → 3.1.02026-07-22

3.1.0 → 4.1.12026-07-22

PHP version history (2 changes)1.1.0PHP ~8.1.0 || ~8.2.0 || ~8.3.0

2.1.0PHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/f3555d31d96611f957fdd615fc226984674efe74397ee230635cfc65c9008289?d=identicon)[crehlerpl](/maintainers/crehlerpl)

### Embed Badge

![Health badge](/badges/crehler-inpost-pay/health.svg)

```
[![Health](https://phpackages.com/badges/crehler-inpost-pay/health.svg)](https://phpackages.com/packages/crehler-inpost-pay)
```

###  Alternatives

[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k16](/packages/tempest-framework)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k46](/packages/civicrm-civicrm-core)[shopware/storefront

Storefront for Shopware

674.6M245](/packages/shopware-storefront)[xeroapi/xero-php-oauth2

Xero official PHP SDK for oAuth2 generated with OpenAPI spec 3

1054.7M18](/packages/xeroapi-xero-php-oauth2)[shopware/production

177209.0k](/packages/shopware-production)[frosh/tools

Provides some basic things for managing the Shopware Installation

87820.7k3](/packages/frosh-tools)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
