3.1.1. Обзор экземпляров#

3.1.1.1. Об этом учебнике#

В этом руководстве рассматривается обработка платежей с помощью GNU Taler merchant Backend. Аудитория этого руководства - разработчики торговых предприятий (например, интернет-магазинов), которые работают над интеграцией GNU Taler с фронтендом, ориентированным на клиентов, и бэк-офисом, ориентированным на персонал.

В этой главе объясняются некоторые базовые понятия. Во второй главе вы узнаете, как выполнять основные платежи.

Эта версия учебника содержит примеры для Python3. В ней используется библиотека requests для HTTP-запросов. Версии для других языков/среды также доступны.

Если вы хотите посмотреть на несколько простых, работающих примеров, посмотрите эти:

3.1.1.2. Обзор архитектуры#

Программный стек Taler для торговца состоит из следующих основных компонентов:

  • Фронтенд, взаимодействующий с браузером покупателя. Фронтенд позволяет покупателю создать корзину и оформить заказ. После оплаты он запускает соответствующую бизнес-логику для выполнения заказа. Этот компонент не входит в комплект поставки Taler, а предполагается, что он существует у продавца. В этом руководстве описано, как разработать фронтенд Taler.

  • Платежный бэкенд, специфичный для Taler, который облегчает фронтенду обработку финансовых транзакций с помощью Taler. В этом уроке вы будете использовать публичный бэкенд из песочницы. Для производственного использования вы должны либо настроить свой собственный бэкенд, либо попросить другого человека сделать это за вас.

Следующее изображение иллюстрирует различные взаимодействия этих ключевых компонентов:

../../_images/arch-api.png

Бэкэнд обеспечивает поддержку криптографических протоколов, хранит специфическую для Taler финансовую информацию и взаимодействует с биржей GNU Taler через Интернет. Фронтенд получает доступ к бэкенду через RESTful API. В результате фронтенду никогда не приходится напрямую общаться с биржей, а также не приходится иметь дело с конфиденциальными данными. В частности, ключи подписи продавца и информация о банковском счете инкапсулируются в бэкенде Taler.

Некоторые функции бэкэнда («публичный интерфейс») открыты для браузера клиента напрямую. В HTTP API все приватные конечные точки (для бэк-офиса) имеют префикс /private/. В данном руководстве рассматриваются конечные точки /private/. Публичный интерфейс используется непосредственно кошельком и не имеет значения для продавца (кроме того, что API должен быть открыт).

3.1.1.3. Бэкэнд публичной песочницы и аутентификация#

Способ аутентификации фронтенда для бэкенда Taler зависит от конфигурации. См. Руководство оператора бэкенда Merchant.

Бэкенд публичной песочницы https://backend.demo.taler.net/instances/sandbox/ использует ключ API в заголовке Авторизация. Значение этого заголовка должно быть Bearer secret-token:sandbox для бэкенда публичной песочницы.

>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
...              headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>

Если возвращается код состояния HTTP, отличный от 200, значит, что-то пошло не так. Вам следует выяснить, в чем проблема, прежде чем продолжать работу над этим уроком.

Бэкэнд песочницы https://backend.demo.taler.net/instances/sandbox/ использует KUDOS в качестве воображаемой валюты. Монеты, деноминированные в KUDOS, могут быть выведены с сайта https://bank.demo.taler.net/.

3.1.1.4. Торговые экземпляры#

Один сервер Taler merchant backend может использоваться несколькими мерчантами, которые являются отдельными бизнес-структурами. Каждому из этих отдельных хозяйствующих субъектов присваивается merchant instance, который идентифицируется буквенно-цифровым instance id. Если идентификатор экземпляра не указан, предполагается идентификатор экземпляра admin.

На сайте https://backend.demo.taler.net/ настроены следующие экземпляры торговцев:

Примечание

Это вымышленные торговцы, используемые для наших демонстраций, не связанные с соответствующими проектами и не утвержденные ими официально.

Все конечные точки для экземпляров предлагают один и тот же API. Таким образом, используемый экземпляр просто указывается в базовом URL-адресе бэкенда продавца.

3.1.1.5. Видеоуроки#

На этой странице собрана вся документация к видеоуроку, знакомящему с API Taler merchant.

3.1.1.5.1. Видео#

3.1.1.5.2. Требования#

Требуется для этой серии уроков:

  • Бэкэнд для торговых предприятий Taler
    Для удобства мы рекомендуем вам использовать https://backend.demo.taler.net/instances/sandbox/.
  • Экземпляр кошелька Taler
    Инструкции по настройке доступны на сайте https://wallet.taler.net, хотя для данного урока они не требуются.
  • Знание программного обеспечения для управления REST API или соответствующие навыки программирования
    В этой серии видео мы будем использовать бесплатное программное обеспечение Insomnia, доступное для загрузки на сайте https://insomnia.rest.
    В качестве введения в этом видео будет показано, как экспортировать рабочий код из подготовленных запросов в Insomnia на Python (или любом другом поддерживаемом языке) и выполнять их, но в следующих уроках это больше не будет демонстрироваться.

3.1.1.5.3. Уведомление о демонстрационном бэкэнде#

Для этого урока настоятельно рекомендуется использовать демонстрационный онлайн-сервис Taler merchant https://backend.demo.taler.net/instances/sandbox/.

Ключ доступа: sandbox.

3.1.1.5.4. Информация о секретном маркере#

Секретный токен соответствует документу RFC 8959. Подробнее о нем можно узнать здесь: https://datatracker.ietf.org/doc/html/rfc8959. Помните, что это токен Bearer, и заголовок авторизации должен указывать его.

Ваш заголовок авторизации должен выглядеть следующим образом:
Авторизация: Bearer secret-token:<ключ доступа>.

3.1.1.5.5. Другие учебники#

Для просмотра дополнительных руководств вы можете просмотреть этот сайт или зайти на https://docs.taler.net, чтобы получить самую свежую документацию по сервисам Taler.