Download the PHP package wpdesk/bm-sdk without Composer
On this page you can find all versions of the php package wpdesk/bm-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download wpdesk/bm-sdk
More information about wpdesk/bm-sdk
Files in wpdesk/bm-sdk
Informations about the package bm-sdk
BlueMedia PHP SDK
Kod zawarty w tym repozytorium umożliwia wykonanie transakcji oraz innych usług oferowanych przez Blue Media S.A.
Użycie SDK zalecane jest podczas implementacji własnych modułów płatności.
Uwaga: w wersji 1.0.0 możliwe jest wykonanie płatności oraz ITN z ograniczonym zestawem parametrów.
Spis treści
- Repozytorium
- Wymagania
- Instalacja
- Konfiguracja klienta
- Transakcja poprzez przekierowanie na paywall
- Przedtransakcja
- Przedtransakcja, link do kontynuacji płatności
- Przedtransakcja, brak kontynuacji
- Szybki przelew
- Obsługa ITN (Instant Transaction Notification)
- Obsługa ITN, utworzenie obiektu komunikatu
- Pobieranie listy aktualnie dostępnych regulaminów
- Pobieranie listy kanałów płatności
Repozytorium
Odpalenie testów:
docker-compose up
docker exec -it php_bm_sdk composer install
docker exec -it php_bm_sdk ./vendor/bin/phpunit tests
Wymagania
- PHP w wersji 7.2 lub nowszej.
- Rozszerzenia PHP:
- xmlwriter,
- xmlreader,
- iconv,
- mbstring,
- hash
Instalacja
Konfiguracja klienta
W celu utworzenia warstwy komunikacji należy utworzyć obiekt klasy BlueMedia\Client
podając id serwisu oraz klucz współdzielony (przyznane przez BlueMedia).
Podczas tworzenia obiektu klienta, za argumentami danych serwisu można dodatkowo dodać użyty tryb szyfrowania oraz separator danych (w przypadku kiedy są nadane inne niż domyślne):
Transakcja poprzez przekierowanie na paywall
Najprostszym typem wykonania transakcji jest przekierowanie do serwisu BlueMedia wraz z danymi o transakcji. Obsługa płatności leży wtedy w całości po stronie serwisu BlueMedia.
Aby wykonać transakcję należy wywołać metodę getTransactionRedirect
, poprawne wykonanie metody zwróci formularz który wykona przekierowanie do serwisu BlueMedia:
Po wykonaniu płatności, serwis BlueMedia wykona przekierowanie na skonfigurowany wcześniej adres powrotu płatności. Przekierowanie następuje poprzez żądanie HTTPS (GET) z trzema parametrami:
- ServiceID - Identyfikator serwisu
- OrderID - Identyfikator transakcji
- Hash - Suma kontrolna wyliczona na podstawie ServiceID i OrderID.
Wymagane jest, aby strona powrotu z płatności weryfikowała poprawność Hash, służy do tego metoda doConfirmationCheck
. Należy przekazać do niej dane przesłane w żądaniu GET:
Przedtransakcja
Metoda doTransactionInit
rozszerza standardowy model rozpoczęcia transakcji o obsługę określonych potrzeb:
- zamówienia linku do płatności na podstawie przesłanych parametrów
- obciążenia Klienta (jeśli nie jest wymagana dodatkowa autoryzacja dokonana przez Klienta)
- zweryfikowania poprawności linku płatności, zanim Klient zostanie przekierowany do Systemu – wywołanie powoduje walidację parametrów i konfiguracji Systemu
- skrócenia linka płatności – zamiast kilku/kilkunastu parametrów, link zostaje skrócony do dwóch identyfikatorów
- ukrycia danych wrażliwych parametrów linku transakcji – przedtransakcja odbywa się backendowo, a link do kontynuacji transakcji nie zawiera danych wrażliwych, a jedynie identyfikatory kontynuacji
- użycia SDK w modelu pełnym (bezpiecznym)
Metoda przyjmuje parametry takie jak w przypadku transakcji z przekierowaniem na paywall, z tą różnicą że wysyłany jest inny nagłówek, dzięki czemu serwis BlueMedia obsługuje żądanie w inny sposób. W odpowiedzi otrzymywany jest link do kontynuacji transakcji lub odpowiedź informująca o braku kontynuacji oraz statusem płatności.
Przedtransakcja, link do kontynuacji płatności
Przedtransakcja, brak kontynuacji
Szybki przelew
Szybki Przelew to forma płatności, która wymaga od Klienta samodzielnego przepisania danych do przelewu dostarczanych przez System. Dane do przelewu można pozyskać dzięki metodzie doTransactionBackground
.
W zależności od kanału płatności jaki zostanie wybrany w kontekście transakcji, metoda zwróci dane do przelewu lub gotowy formularz.
Przykład wywołania (dane do transakcji):
Przykład wywołania (formularz płatności):
Obsługa ITN (Instant Transaction Notification)
Serwis BlueMedia po wykonaniu płatności wysyła na wcześniej skonfigurowany adres ITN komunikat o statusie płatności. Dane przesyłane są w formacie XML dodatkowo zakodowanym w base64.
SDK oferuje metodę doItnIn
która w wyniku przekazania danych z serwisu BlueMedia zwraca gotowy obiekt BlueMedia\Itn\ValueObject\ItnIn
pozwalający na użycie akcesorów lub konwersję do tablicy.
Dzięki temu obiektowi, programista może użyć danych potrzebnych np. do aktualizacji statusu płatności w bazie danych itp.
Po przetworzeniu komunikatu ITN należy przekazać odpowiedź. Służy do tego metoda doItnInResponse
która przyjmuje obiekt ItnIn
oraz argument informujący o potwierdzeniu transakcji.
Poniżej przykład zastosowania obsługi ITN:
Obsługa ITN, utworzenie obiektu komunikatu
Podczas implementacji może okazać się że przed wykonaniem obsługi ITN zajdzie potrzeba np. konfiguracji klienta na podstawie danych dostępowych w oparciu o walutę.
W takim modelu programista może wspomóc się metodą getItnObject
.
Pobieranie listy aktualnie dostępnych regulaminów
Metoda getRegulationList
umożliwia odpytanie o aktualną listę regulaminów wraz linkami do wyświetlenia w serwisie oraz akceptacji przez klienta.
Pobieranie listy kanałów płatności
Metoda testGetPaywayList
umożliwia odpytanie o aktualną listę płatności.
All versions of bm-sdk with dependencies
guzzlehttp/guzzle Version 6.3.*|7.3.*|7.4.*
jms/serializer Version ^1.14|^2.0|^3.0