Biblioteka do obsługi API watermarkingu eLibri

Wprowadzenie

elibri jest systemem stworzonym dla wydawnictw, które mogą za jego pośrednictwem sprzedawać swoje ebooki na swoich stronach internetowych, jak i na stronach współpracująch firm. Pełna dokumentacja API znajduje si się pod adresem https://www.elibri.com.pl/doc/watermarking/

Instalacja

Proszę instalować bibliotekę ze źródeł: https://github.com/elibri/elibriWatermarkingPHP

Użycie biblioteki

Poprzez API zlecasz watermarking książki, podając jej identyfikator (ISBN lub record reference), formaty (po przecinku, na ogół 'epub,mobi', widoczny watermark, który jest umieszczony na końcu każdego rozdziału, oraz krótki tekst, który jest dołączany do tytułu książki.

Link do zwatermarkowanego pliku jest wysyłany razem z pingiem informującym o zakończeniu transakcji, więcej informacji: https://www.elibri.com.pl/doc/watermarking/ping

Następnie niezbędne jest podpisanie umów z wydawnictwami, których pliki mają być sprzedawane z pośrednictwem systemu eLibri.

API watermarkingu jest maksymalne proste, składa się z trzech podstawowych wywołań: watermark, deliver oraz retry. Metody te są oferowane przez klasę ElibriWatermarkingClient

watermark

Sugerujemy, żeby zlecenie watermarkingu książki odbyło się jak najwcześniej, żeby klient jak najkrócej czekał na dostarczenie pliku. Wysłanie zlecenia watermarkingu nie rejestruje transakcji w systemie, można więc je wysłać w momencie, kiedy klient opuszcza koszyk, i przechodzi do płacenia. Zwatermarkowany plik jest udostępniany sklepowi dopiero po wykonaniu metody deliver.

deliver

Deliver skutkuje zarejestrowaniem transakcji w systemie oraz dostarczeniem pliku. Sklep powinien na tym etapie mieć potwierdzenie dokonania płatności, ponieważ wydawnictwo obarczy go fakturą za dokonaną transakcję.

Oczywiście może się zdarzyć sytuacja, że sklep zleci watermarkowanie, a nie wywoła metody deliver, bo klient nie dokonał płatności. W takiej sytuacji transakcja zostaje anulowana, i żadna ze stron nie zostanie obciążona. Wywołanie deliver musi następić w ciągu siedmiu 7 dni od wywołania watermark.

Po zakończeniu znakowania pliku nasz serwer łączy się z przekazanym przez Państwa URL-em (metoda POST), przekazując w parametrze trans_id identyfikator transakcji, która została ukończona. W pingu zwrotnym umieszczany jest również link do pliku, który mogą Państwo udostępnić klientom.

retry

Sklep jest zobowiązany do przetrzymywania zwatermarkowanego pliku przynajmniej przez 7 dni. Po tym czasie maleje prawdopodobieństwo, że klient będzie chciał pobrać plik, poza tym przechowywanie wszystkich zakupionych plików może stać się kłopotliwe w dłuższej perspektywie. Retry służy do ponowienia transakcji (niezbędne jest tutaj podanie alfanumerycznego identyfikatora transakcji zwróconego przez metodę watermark). Plik zostanie zwaterkowany na nowo z parametrami podanymi podczas pierwszego wywołania watermark. Zwracany jest nowy identyfikator transakcji. Sklep w swoim systemie może nadpisać poprzedni identyfikator transakcji, albo przechowywać całą historię numerów transakcji. Jeśli retry jest wywoływany kolejny raz, to należy zawsze podać ostatni identytikator transakcji. Po każdym wywołaniu retry należy wywołać metodę deliver ze zwróconym trans_id.

Lista dostępnych produktów

Można również pobrać listę dostępnych plików dla założenego klienta (uzwględnia ona przypisanych wydawców, oraz daty premier) Uwzględnia on również książki, dla których są wgrane wszystkie pliki, ale nie nastąpiła jeszcze jej premiera (wtedy ustawione jest pole available_date) Służy do tego metoda ElibriWatermarkingClient::available_files

Przykłady

Przykład

W poniższym przykładzie zlecasz watermarkowanie jednej książki.

<?php
$book_rr = "2a0ec1239e285ec46b11";
//dostępy do API eLibri
$key = "061df0c87cd0472a5e4e5708fd788246";
$secret = "fbef4d3bbb30cbf502bbdb0f8ede3fc7";
require_once(dirname(__FILE__) . '/../elibriWatermarkingPHP.php');
print "1\n";
$client = new ElibriWatermarkingClient($key, $secret);
print "2\n";
//zleć watermarkowanie
$transid = $client->watermark($book_rr, "mobi,epub", "Książka dla Wojtka Kowalskiego", "Wojtek Kowalski", "178.42.78.98");
print "transid: $transid\n";
//potwierdzaj transakcję
print $client->deliver($transid);
//czekaj na callback od elibri na zdefiniowany adres, w callbacku znajdziesz linki do zwatermarkowanych plików
?>
ElibriAPI abstrahuje wykorzystanie API udostępniane przez eLibri.
Definition: elibriWatermarkingClient.php:104