3.1.1. Przegląd koncepcji#
3.1.1.1. Informacje o tym samouczku#
Ten samouczek dotyczy przetwarzania płatności przy użyciu zaplecza sprzedawcy GNU Taler. Odbiorcami tego samouczka są deweloperzy sprzedawców (takich jak sklepy internetowe), którzy pracują nad integracją GNU Taler z Frontendem skierowanym do klienta i Backoffice skierowanym do pracowników.
W tym rozdziale wyjaśniono kilka podstawowych pojęć. W drugim rozdziale dowiesz się, jak dokonywać podstawowych płatności.
Ta wersja samouczka zawiera przykłady dla Python3. Używa biblioteki requests dla żądań HTTP. Dostępne są również wersje dla innych języków/środowisk.
Jeśli chcesz przyjrzeć się prostym, działającym przykładom, sprawdź te:
Sprzedawca esejów <https://git.taler.net/taler-merchant-demos.git/tree/talermerchantdemos/blog>`__, który sprzedaje pojedyncze rozdziały książki.
Strona darowizn <https://git.taler.net/taler-merchant-demos.git/tree/talermerchantdemos/donations>`__, która akceptuje darowizny na projekty oprogramowania i wystawia pokwitowania darowizn.
Wtyczka WooCommerce, która jest kompleksową integracją ze sklepem internetowym, w tym procesem biznesowym zwrotu pieniędzy.
3.1.1.2. Przegląd architektury#
Stos oprogramowania Taler dla sprzedawcy składa się z następujących głównych komponentów:
Frontend, który wchodzi w interakcję z przeglądarką klienta. Frontend umożliwia klientowi zbudowanie koszyka i złożenie zamówienia. Po dokonaniu płatności uruchamia odpowiednią logikę biznesową, aby zrealizować zamówienie. Ten komponent nie jest dołączony do Taler, ale zakłada się, że istnieje u sprzedawcy. Ten samouczek opisuje, jak stworzyć frontend Taler.
Backend płatności specyficzny dla Taler, który ułatwia frontendowi przetwarzanie transakcji finansowych za pomocą Taler. W tym samouczku zostanie użyty publiczny backend sandbox. Do użytku produkcyjnego musisz albo skonfigurować własny backend, albo poprosić inną osobę, aby zrobiła to za Ciebie.
Poniższy obraz ilustruje różne interakcje tych kluczowych komponentów:
Backend zapewnia obsługę protokołów kryptograficznych, przechowuje informacje finansowe specyficzne dla Talera i komunikuje się z giełdą GNU Taler przez Internet. Frontend uzyskuje dostęp do backendu za pośrednictwem interfejsu API RESTful. W rezultacie frontend nigdy nie musi bezpośrednio komunikować się z giełdą, a także nie ma do czynienia z wrażliwymi danymi. W szczególności klucze podpisywania sprzedawcy i informacje o koncie bankowym są zamknięte w backendzie Taler.
Niektóre funkcje zaplecza („interfejs publiczny”) są dostępne bezpośrednio w przeglądarce klienta. W HTTP API wszystkie prywatne punkty końcowe (dla Backoffice) są poprzedzone prefiksem /private/. Ten samouczek skupia się na punktach końcowych /private/. Interfejs publiczny jest bezpośrednio używany przez portfel i nie ma znaczenia dla sprzedawcy (poza tym, że API musi być ujawnione).
3.1.1.3. Publiczny backend piaskownicy i uwierzytelnianie#
Sposób uwierzytelniania frontendu do backendu Taler zależy od konfiguracji. Zobacz Merchant Backend Operator Manual.
Publiczny backend sandbox https://backend.demo.taler.net/instances/sandbox/ używa klucza API w nagłówku Authorization. Wartość tego nagłówka musi wynosić Bearer secret-token:sandbox dla publicznego backendu sandbox.
>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
... headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>
Jeśli zwracany jest kod stanu HTTP inny niż 200, coś poszło nie tak. Powinieneś dowiedzieć się, co jest problemem przed kontynuowaniem tego samouczka.
Backend piaskownicy https://backend.demo.taler.net/instances/sandbox/ używa KUDOS jako wyimaginowanej waluty. Monety denominowane w KUDOS mogą być wypłacane z https://bank.demo.taler.net/.
3.1.1.4. Wystąpienia sprzedawcy#
Pojedynczy serwer backendowy sprzedawcy Taler może być używany przez wielu sprzedawców, którzy są oddzielnymi podmiotami biznesowymi. Każdy z tych oddzielnych podmiotów biznesowych ma przypisaną instancję handlowca, która jest identyfikowana przez alfanumeryczny identyfikator instancji. Jeśli instancja zostanie pominięta, zakładany jest identyfikator instancji admin.
Następujące instancje handlowe są skonfigurowane na stronie https://backend.demo.taler.net/:
GNUnet(projekt GNUnet), dostępny pod adresem https://backend.demo.taler.net/instances/gnunet/.FSF (Fundacja Wolnego Oprogramowania), dostępna pod adresem https://backend.demo.taler.net/instances/fsf/.
Tor(The Tor Project), dostępny pod adresem https://backend.demo.taler.net/instances/tor/.admin(Kudos Inc.), dostępny pod adresem https://backend.demo.taler.net/andbox(do testowania), dostępny pod adresem https://backend.demo.taler.net/instances/sandbox/.
Informacja
Są to fikcyjni sprzedawcy wykorzystywani przez naszych demonstratorów i nie są powiązani ani oficjalnie zatwierdzeni przez odpowiednie projekty.
Wszystkie punkty końcowe dla instancji oferują ten sam interfejs API. Tak więc, która instancja ma być używana, jest po prostu zawarta w podstawowym adresie URL zaplecza sprzedawcy.
3.1.1.5. Samouczki wideo#
Ta strona zawiera całą dokumentację do samouczka wideo wprowadzającego API merchanta Taler.
3.1.1.5.1. Wideo#
3.1.1.5.2. Wymagania#
Wymagane dla tej serii samouczków:
- Zaplecze handlowe TalerDla wygody zalecamy korzystanie z witryny https://backend.demo.taler.net/instances/sandbox/.
- Instancja portfela TalerInstrukcje konfiguracji są dostępne na stronie https://wallet.taler.net, ale nie są wymagane w tym samouczku.
- Oprogramowanie do zarządzania REST API lub odpowiednie umiejętności programistyczneW tej serii wideo będziemy korzystać z bezpłatnego oprogramowania Insomnia, dostępnego do pobrania na stronie https://insomnia.rest.Jako wprowadzenie, ten film pokaże, jak wyeksportować działający kod z przygotowanych zapytań w Insomnia w Pythonie (lub dowolnym obsługiwanym języku) i wykonać je, ale nie zostanie to ponownie zademonstrowane w następnych samouczkach.
3.1.1.5.3. Powiadomienie o wersji demonstracyjnej backendu#
W tym samouczku zdecydowanie zaleca się korzystanie z usługi demonstracyjnej online dla sprzedawców Taler https://backend.demo.taler.net/instances/sandbox/.
Klucz dostępu to: sandbox.
3.1.1.5.4. Informacje o tajnym tokenie#
Tajny token jest zgodny z dokumentem RFC 8959. Więcej informacji na ten temat można znaleźć tutaj: https://datatracker.ietf.org/doc/html/rfc8959. Należy pamiętać, że jest to token Bearer i że nagłówek autoryzacji musi go określać.
Nagłówek autoryzacji powinien wyglądać następująco:Autoryzacja: Bearer secret-token:<klucz dostępu>
3.1.1.5.5. Więcej samouczków#
Aby wyświetlić dodatkowe samouczki, możesz przejrzeć tę stronę lub udać się na https://docs.taler.net, aby uzyskać najnowszą dokumentację dotyczącą usług Taler.