PHPackages                             michalrokita/blue-media-sdk - 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. [API Development](/categories/api)
4. /
5. michalrokita/blue-media-sdk

ActiveLibrary[API Development](/categories/api)

michalrokita/blue-media-sdk
===========================

PHP library to work with Blue Media API

12.4k2PHPCI failing

Since Apr 23Pushed 6y agoCompare

[ Source](https://github.com/michalrokita/BlueMediaSDK)[ Packagist](https://packagist.org/packages/michalrokita/blue-media-sdk)[ RSS](/packages/michalrokita-blue-media-sdk/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

BlueMediaSDK (unofficial)
=========================

[](#bluemediasdk-unofficial)

[![Build Status](https://camo.githubusercontent.com/8c22a95bd8291c45af041931f576b188c5d7aa8fd10c84e448659afa7f66c116/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6d696368616c726f6b6974612f426c75654d6564696153444b2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d747261766973)](https://travis-ci.org/michalrokita/BlueMediaSDK)[![PHP Version](https://camo.githubusercontent.com/bf3f01740326be54c62c6fb47a50cafe24ab220c2af966479464a6aba152b836/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d696368616c726f6b6974612f626c75652d6d656469612d73646b2e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/michalrokita/BlueMediaSDK)

Przy ostatnim projekcie, klient poprosił mnie o zaimplementowanie płatności BlueMedia w naszej platformie opartej o PHP. Z uwagi na to, że powyższa firma oferuje tylko SDK na platformy mobilne stwierdziłem, że sam napiszę proste SDK, które będzie pokrywać dokumentację BlueMedia API.

FunkcjonalnośćDostępnaOdbiór notyfikacji ITN / IPN / ISTN✅Potwierdzenie otrzymania ITN / IPN / ISTN✅Utworzenie linku do sesji płatniczej bez koszyka✅Utworzenie sesji płatniczej z koszykiem❌Obsługa przekierowania z Blue Media✅Odpytanie BM o listę kanałów płatności✅Instalacja (Composer)
---------------------

[](#instalacja-composer)

```
  composer require michalrokita/blue-media-sdk:dev-master

```

Dokumentacja
------------

[](#dokumentacja)

### 1. Konfiguracja BMService

[](#1-konfiguracja-bmservice)

```
  $serviceUrl = 'https://valid-url.com';
  $serviceId = 'test';
  $sharedKey = 'test';

  $bmService = BMFactory::build($url, $serviceId, $sharedKey);
```

### 2. Odbiór notyfikacji ITN / IPN / ISTN

[](#2-odbiór-notyfikacji-itn--ipn--istn)

Notyfikacja ITN zawiera serviceID, parametry transakcji oraz hash. Metoda getNotification weryfikuje hash notyfikacji i jeżeli jest prawidłowy to zwraca **tylko** parametry transakcji, jako tablice. W celu prawidłowego przebiegu całej operacji, Blue Media oczekuje odpowiedzi z odpowiednim XMLem (patrz pkt 2.1).

```
  $notification = $bmService->receiver()->getNotification();
```

### 2.1 Potwierdzenie otrzymania notyfikacji ITN / IPN / ISTN

[](#21-potwierdzenie-otrzymania-notyfikacji-itn--ipn--istn)

Po tym jak już przeprowadzimy odpowiednie operacje w kodzie na podstawie danych z notyfikacji, musimy powiadomić Blue Media, że otrzymaliśmy wiadomość. W tym celu trzeba wywołać poniższy kod:

```
  $bmService->receiver()->confirmReceivingNotification();
```

Metoda ta sporządzi odpowiednio spreparowany kod XML biorąc pod uwagę wcześniej odebraną notyfikację, a nastepnie zwróci go z odpowiednim nagłówkiem komendą `echo`. Z tego też powodu nie należy ustalać nagłówka samemu.

### 3. Generowanie linku do sesji płatniczej bez koszyka

[](#3-generowanie-linku-do-sesji-płatniczej-bez-koszyka)

Na początku należy zainicjalizować nową instancje klasy Transaction, która przetrzymuje dane na temat zawieranej transakcji. Przy tworzeniu instancji wymagane są tylko parametry niezbędne do utworzenia sesji wg specyfikacji Blue Media. Opcjonalne parametry można dodać do instancji wykorzystując wbudowane setter-y.

Jakoże Blue Media przyjmuję kwotę jako float skonwertowany na stringa, to do konstruktora Transaction należy podać float-a. Nie będziemy wykonywać żadnych operacji na tej liczbie ani też nie potrzebujemy dokładności, dlatego możemy sobie pozwolić na float.

```
  $transaction = new Transaction('orderID', 100.00);
```

*Pamiętaj o przestrzeni nazw:* `michalrokita\BlueMediaSDK\Transactions`--&gt; `use michalrokita\BlueMediaSDK\Transactions\Transaction;`

Następnie, aby wygenerować link należy wywołać poniższy kod:

```
  $paymentLink = $bmService->payment()->generatePaymentLink($transaction);
```

### 4. Obsługa przekierowania użytkownika z Blue Media

[](#4-obsługa-przekierowania-użytkownika-z-blue-media)

W celu pobrania danych o zamówieniu i automatycznej weryfikacji hasha w tle wywołaj poniższy kod. W przypadku błędu autoryzacji hasha metoda zwróci wyjątek.

```
  $serviceId = $bmService->callback()->getServiceId();
  $orderId = $bmService->callback()->getOrderId();
  $amount = $bmService->callback()->getAmount();
```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e042b02b5e75280f4f19173f3a364f1d990e4326feeb089a76f8c73ae53e818?d=identicon)[michalrokita](/maintainers/michalrokita)

---

Top Contributors

[![michalrokita](https://avatars.githubusercontent.com/u/9018973?v=4)](https://github.com/michalrokita "michalrokita (57 commits)")

### Embed Badge

![Health badge](/badges/michalrokita-blue-media-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/michalrokita-blue-media-sdk/health.svg)](https://phpackages.com/packages/michalrokita-blue-media-sdk)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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