Integracja bramki płatności dla gruzińskiego rynku e-commerce. 3 metody płatności, obsługa API OAuth 2.0, kompatybilność z wtyczkami bezpieczeństwa i wielojęzycznością.
Główne funkcjonalności
3 metody płatności w jednej wtyczce:
- 💳 Płatność kartą Standardowa płatność kartą kredytową/debetową
- 🟠 Nაწილ-ნაწილ (Part-by-Part) Płatność rozłożona na 4 równe raty
- 🟢 განვადება (Raty) Elastyczne raty od 5 do 48 miesięcy z kalkulatorem
Funkcje techniczne
- Zunifikowany panel administracyjny z zakładkami dla każdej metody płatności
- Obsługa wielu zestawów poświadczeń API (osobne Client ID/Secret dla każdej metody)
- Inteligentne cachowanie tokenów OAuth per credentials (unikanie konfliktów między metodami)
- Automatyczne zapobieganie anulowaniu zamówień – wtyczka sprawdza status płatności w BOG API przed anulowaniem
- Kompatybilność z TranslatePress/WPML – callback URL działają z prefiksami językowymi (/ka/, /en/)
- Bypass dla wtyczek bezpieczeństwa (CleanTalk, Wordfence) – automatyczne wykluczenie callbacków
- Cron job sprawdzający statusy oczekujących płatności co godzinę
- Rozbudowane logowanie – tryb debug + krytyczne logi zawsze włączone
- Zgodność z HPOS (High-Performance Order Storage) WooCommerce
Technologie
- PHP 7.4+
- WordPress 5.0+
- WooCommerce 5.0+
- REST API Bank of Georgia
- OAuth 2.0 (client_credentials grant)
Stack
WordPress Plugin Development
├── WooCommerce Payment Gateway API
├── OAuth 2.0 Authentication
├── Webhook/Callback Handling
├── WP Cron Jobs
├── Transients API (token caching)
└── HPOS Compatibility
Wyzwania rozwiązane podczas projektu
| Problem | Rozwiązanie |
|---|---|
| Wspólny cache tokenów powodował używanie złych poświadczeń | Implementacja cache per client_id |
| Zamówienia anulowane mimo udanej płatności | Dodanie weryfikacji z API BOG przed auto-anulowaniem |
| TranslatePress blokował callbacki | Wczesne przechwytywanie requestów przed przetworzeniem przez TranslatePress |
| CleanTalk blokował notyfikacje od BOG | Automatyczny bypass + filtry wykluczeń |
| Literówka "Berer" zamiast "Bearer" | Naprawiona w wersji 1.3.0 |

