1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hms-core-hms-wallet-severdemo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Демо-версия сервера HUAWEI Wallet Kit

Содержание

Введение

Демо-версия сервера HUAWEI Wallet Kit представляет собой образец кода, показывающий, как использовать интерфейсы HUAWEI-Wallet-Server. Интерфейсы HUAWEI-Wallet-Server включают REST API для шести типов pass (карты лояльности, предложений, карт подарков, билетов на борт самолётов, билетов общественного транспорта и билетов на мероприятия). Вы можете использовать эти REST API для выполнения операций, таких как добавление, запрос или обновление pass.Перед использованием этого демонстрационного примера вам потребуется учетная запись разработчика HUAWEI и создание приложения для реализации услуги кошелька HUAWEI. Это "приложение" не обязательно должно быть программой, которая будет фактически установлена на мобильные устройства. Это означает использование услуги кошелька HUAWEI. Поэтому создайте приложение на сайте HUAWEI AppGallery Connect (AGC), даже если вы не планируете разрабатывать мобильные приложения. Если вы ещё этого не сделали, обратитесь к разделам Регистрация HUAWEI ID и Создание приложения.## Поддерживаемые окружения Для запуска демонстрационного проекта требуются Maven и Oracle Java версии 1.8.0.211 или выше.

Запрос услуг Wallet Kit

Чтобы запросить услуги, следуйте инструкциям в разделе Активация услуг.

Обратите внимание, что вы должны установить "ID сервиса" в вашем приложении. Здесь "ID сервиса" является "passTypeIdentifier", который вы используете в коде демонстрационного проекта. Вы установите "passTypeIdentifier" позже. Вы сгенерируете пару ключей RSA в ходе этого процесса. Сохраните их правильно, а затем используйте приватный ключ для подписи JWE (см. Создание JWE). Сервер кошелька будет использовать открытый ключ, который вы загрузили, для проверки подписей.

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

Установка значений конфигурации

Перед запуском проекта Demo вам потребуется установить следующие значения конфигурации в файле "src/test/resources/release.config.properties": "gw.appid", "gw.appid.secret", "gw.tokenUrl", "walletServerBaseUrl", "servicePrivateKey" и "walletWebsiteBaseUrl".### Установка gw.appid и gw.appid.secret:

Чтобы внедрить Wallet Kit в приложение, gw.appid и gw.appid.secret являются "ID приложения" и "секретом приложения" соответственно. Перейдите на сайт AGC, войдите в свой аккаунт, нажмите "Мои приложения" и выберите приложение, которое вы хотите оперировать. Затем вы сможете найти его ID приложения и секрет приложения.### Установка gw.tokenUrl Установите gw.tokenUrl = https://oauth-login.cloud.huawei.com/oauth2/v3/token. Это адрес для получения токена аутентификации REST API.

Установка walletServerBaseUrl

walletServerBaseUrl является базовым URL-адресом HTTP-запросов REST API. Его формат: walletServerBaseUrl = https://{walletkit_server_url}/hmspass. Установите {walletkit_server_url} одним из значений в таблице ниже в зависимости от местоположения вашего аккаунта.

Местоположение walletkit_server_url
Китайская материка wallet-passentrust-drcn.cloud.huawei.com.cn
Азия wallet-passentrust-dra.cloud.huawei.asia
Европа wallet-passentrust-dre.cloud.huawei.eu
Латинская Америка wallet-passentrust-dra.cloud.huawei.lat
Россия wallet-passentrust-drru.cloud.huawei.ru

Установка servicePrivateKey

Вы сгенерировали пару приватного ключа RSA и открытого ключа во время запроса на использование Wallet Kit. Здесь установите приватный ключ, который вы будете использовать для подписи JWE.

Установка walletWebsiteBaseUrl

walletWebsiteBaseUrl — это адрес сервера HUAWEI-Wallet-H5. Его формат следующий: walletWebsiteBaseUrl = https://{walletkit_website_url}/walletkit/consumer/pass/save. Значение {walletkit_website_url} следует установить с помощью одного из значений в таблице ниже в зависимости от местоположения вашего аккаунта.| местоположение | walletkit_website_url | |---------------------|--------------------------------------| | Китайская континентальная часть | walletpass-drcn.cloud.huawei.com | | Азия | walletpass-dra.cloud.huawei.com | | Европа | walletpass-dre.cloud.huawei.com | | Латинская Америка | walletpass-dra.cloud.huawei.com | | Россия | walletpass-drru.cloud.huawei.com |

Описание моделей прохода и экземпляров прохода

Модель прохода представляет собой стиль экземпляров прохода. Экземпляры, принадлежащие к одной модели, имеют общие параметры. Например, модель билета включает информацию о времени отправления и прибытия, а экземпляр билета содержит имя пассажира, его место, порядок посадки и т.д. Каждый экземпляр прохода относится к конкретной модели. Поэтому сначала следует создать модель перед созданием экземпляров и выполнением других операций.Все модели прохода и экземпляры имеют одинаковый формат данных, который является HwWalletObject. Подробнее см. Определение HwWalletObject.

Параметры входных данных моделей и экземпляров передаются через JSON-файлы в проекте Demo. Вы можете генерировать свои собственные данные путём изменения JSON-файлов в папке src/test/resources/data.

Не забудьте установить правильное значение "passTypeIdentifier" в этих входных JSON-файлах, которое должно совпадать с вашим "Service ID" на сайте AGC.

Сборка демо как Maven-проекта

После того как вы настроили все значения конфигураций, соберите Demo как Maven-проект. Установка всех зависимостей может занять несколько минут. Время зависит от ваших файлов конфигурации и сетевой среды.

Примеры методов

Примеры методов для моделей прохода

1. Регистрация модели прохода

Сервер HUAWEI Wallet предоставляет REST API для создания моделей прохода. См. Создание модели. Вы можете добавить модель лояльности в базу данных сервера, вызвав метод createLoyaltyModel, и аналогично создать другие типы моделей. Сначала следует создать модель прохода перед вызовом любых других методов.#### 2. Поиск модели прохода Сервер HUAWEI Wallet предоставляет REST API для поиска модели прохода по её уникальному идентификатору модели. См. Поиск модели. Вы можете найти модель лояльности, вызвав метод getLoyaltyModel, и аналогично искать другие типы моделей.

3. Получение списка моделей пассов

Если ваше приложение создало несколько моделей одного типа пасса (например, модель золотой лояльной карты и модель бриллиантовой лояльной карты), вы можете использовать эти API для получения списка этих моделей. См. Получение моделей. Вы можете получить список моделей лояльности, вызвав метод getLoyaltyModelList, а также аналогично получать списки других типов моделей.#### 4. Полное обновление модели пасса Сервер кошелька HUAWEI предоставляет REST API для полного обновления модели пасса по её уникальному идентификатору. См. Обновление модели. Вы можете полностью обновить модель лояльности, вызвав метод fullUpdateLoyaltyModel, а также аналогично обновлять другие типы моделей.

5. Частичное обновление модели пасса

Сервер кошелька HUAWEI предоставляет REST API для частичного обновления модели пасса по её уникальному идентификатору. См. Частичное обновление модели. Вы можете частично обновить модель лояльности, вызвав метод partialUpdateLoyaltyModel, а также аналогично обновлять другие типы моделей.

6. Добавление сообщений в модель пасса

Атрибут messageList является одним из атрибутов модели пасса и представляет собой список сообщений. Вы можете добавлять сообщения в модель лояльности, вызывая метод addMessageToLoyaltyModel, а также аналогично добавлять сообщения в другие типы моделей. Количество сообщений в messageList в модели пасса ограничено до 10. Одновременно нельзя добавить более 10 сообщений. Если размер списка уже равен 10 и вы продолжаете добавлять сообщения, старые сообщения будут автоматически удалены. См. Добавление сообщений в модель.### Примеры методов для экземпляров пассов

1. Добавление экземпляра пасса

Сервер кошелька HUAWEI предоставляет REST API для добавления экземпляров пассов. См. Добавление экземпляра. Вы можете добавить экземпляр лояльности в базу данных сервера, вызвав метод createLoyaltyInstance, а также аналогично создавать другие типы экземпляров. Перед созданием экземпляров следует сначала создать модель пасса.

2. Запрос экземпляра паспорта

Сервер кошелька HUAWEI предоставляет REST API для запроса экземпляра паспорта по его уникальному идентификатору. См. Запрос экземпляра. Вы можете запросить экземпляр лояльности, вызвав метод getLoyaltyInstance, а также аналогично запрашивать другие типы экземпляров.

3. Обновление всего экземпляра паспорта

Сервер кошелька HUAWEI предоставляет REST API для полной замены экземпляра паспорта по его уникальному идентификатору. См. Обновление экземпляра. Вы можете полностью обновить экземпляр лояльности, вызвав метод fullUpdateLoyaltyInstance, а также аналогично обновлять другие типы экземпляров.#### 4. Частичное обновление экземпляра паспорта Сервер кошелька HUAWEI предоставляет REST API для частичного обновления экземпляра паспорта по его уникальному идентификатору. См. Частичное обновление экземпляра. Вы можете частично обновить экземпляр лояльности, вызвав метод partialUpdateLoyaltyInstance, а также аналогично обновлять другие типы экземпляров.#### 5. Добавление сообщений в экземпляр паспорта Атрибут "messageList" может присутствовать в экземпляре паспорта. Вы можете добавлять сообщения в экземпляр лояльности, вызывая метод addMessageToLoyaltyInstance, а также аналогично добавлять сообщения в другие типы экземпляров. В "messageList" экземпляра паспорта может быть до 10 сообщений. Одновременно вы не можете добавить более 10 сообщений. Если размер списка уже составляет 10 сообщений и вы продолжаете добавлять новые сообщения, старейшие сообщения будут удалены. См. Добавление сообщений в экземпляр.#### 6. Привязка/отвязка экземпляров предложения к экземпляру лояльности Этот API предоставляется только для экземпляров лояльности. См. Привязка/Отвязка предложения. Вы можете привязывать/отвязывать экземпляры предложений к экземпляру лояльности, вызывая метод updateLinkedOffersToLoyaltyInstance. Убедитесь, что предложения, которые вы хотите добавить, уже существуют перед использованием этого API. В противном случае клиент не сможет отобразить предложение, которое отсутствует в базе данных сервера. Эти экземпляры предложений могут принадлежать другим приложениям или другим разработчикам.

Генерация JWE

Разработчики должны сгенерировать строки JSON Web Encryption (JWE) и отправить их на сервер HUAWEI-Wallet-H5) для привязки паса к пользователю HUAWEI Wallet. Существует два способа генерации JWE. Первый способ: вы можете сгенерировать строку JWE со всей информацией о конкретной версии паса и отправить её на сервер HUAWEI-Wallet-H5. В этом случае вам не потребуется вызывать методы добавления экземпляра паса. Второй способ: вы можете сначала добавить экземпляр паса на сервер кошелька, а затем сгенерировать тонкую JWE (содержащую только информацию об идентификаторе экземпляра) и отправить её на сервер HUAWEI-Wallet-H5 для привязки экземпляра паса к пользователю.Пример включает примерные методы для генерации JWE и тонкого JWE. Пожалуйста, обратитесь к примеру и реализуйте код в вашей системе. Также обратитесь к разделам "Генерация JWE и отправка его на сервер Huawei" и ["Генерация тонкого JWE и отправка её на сервер Huawei"] для получения более подробной информации.### Проверка подписи Если вы предоставили URL-адрес обратного вызова или URL-адрес обратного вызова NFC при запросе услуги Wallet Kit, вы будете получать запросы уведомлений обратного вызова от сервера HUAWEI Wallet. Вам следует проверять подпись в заголовке запроса с помощью фиксированного открытого ключа подписи компании HUAWEI. Пример тестового случая "verifySignature" демонстрирует проверку подписи. Для получения более подробной информации обратитесь к API обратного вызова.

Вопросы или проблемы

Если вы хотите больше узнать о HMS Core, форум r/HMSCore на Reddit предназначен для вас, чтобы следить за последними новостями о HMS Core и обмениваться мнениями с другими разработчиками.Если у вас возникли вопросы о том, как использовать образцы HMS, попробуйте следующие варианты:

  • Stack Overflow — лучшее место для любых вопросов программирования. Убедитесь, что вы помечаете свой вопрос тегом huawei-mobile-services.
  • Форум разработчиков Huawei HMS Core Module отлично подходит для общих вопросов или для получения рекомендаций и мнений. Если вы столкнулись с ошибкой в наших примерах, пожалуйста, отправьте сообщение в репозиторий. Еще лучше, если вы сможете отправить запрос на слияние с исправлением.## Лицензия Пример сервера HUAWEI Wallet Kit лицензирован под Apache License, версия 2.0.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Java
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hms-core-hms-wallet-severdemo.git
git@api.gitlife.ru:oschina-mirror/hms-core-hms-wallet-severdemo.git
oschina-mirror
hms-core-hms-wallet-severdemo
hms-core-hms-wallet-severdemo
Java