Демо-версия сервера 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 или выше.
Чтобы запросить услуги, следуйте инструкциям в разделе Активация услуг.
Обратите внимание, что вы должны установить "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.
После того как вы настроили все значения конфигураций, соберите Demo как Maven-проект. Установка всех зависимостей может занять несколько минут. Время зависит от ваших файлов конфигурации и сетевой среды.
Сервер HUAWEI Wallet предоставляет REST API для создания моделей прохода. См. Создание модели. Вы можете добавить модель лояльности в базу данных сервера, вызвав метод createLoyaltyModel
, и аналогично создать другие типы моделей. Сначала следует создать модель прохода перед вызовом любых других методов.#### 2. Поиск модели прохода
Сервер HUAWEI Wallet предоставляет REST API для поиска модели прохода по её уникальному идентификатору модели. См. Поиск модели. Вы можете найти модель лояльности, вызвав метод getLoyaltyModel
, и аналогично искать другие типы моделей.
Если ваше приложение создало несколько моделей одного типа пасса (например, модель золотой лояльной карты и модель бриллиантовой лояльной карты), вы можете использовать эти API для получения списка этих моделей. См. Получение моделей. Вы можете получить список моделей лояльности, вызвав метод getLoyaltyModelList
, а также аналогично получать списки других типов моделей.#### 4. Полное обновление модели пасса
Сервер кошелька HUAWEI предоставляет REST API для полного обновления модели пасса по её уникальному идентификатору. См. Обновление модели. Вы можете полностью обновить модель лояльности, вызвав метод fullUpdateLoyaltyModel
, а также аналогично обновлять другие типы моделей.
Сервер кошелька HUAWEI предоставляет REST API для частичного обновления модели пасса по её уникальному идентификатору. См. Частичное обновление модели. Вы можете частично обновить модель лояльности, вызвав метод partialUpdateLoyaltyModel
, а также аналогично обновлять другие типы моделей.
Атрибут messageList
является одним из атрибутов модели пасса и представляет собой список сообщений. Вы можете добавлять сообщения в модель лояльности, вызывая метод addMessageToLoyaltyModel
, а также аналогично добавлять сообщения в другие типы моделей. Количество сообщений в messageList
в модели пасса ограничено до 10. Одновременно нельзя добавить более 10 сообщений. Если размер списка уже равен 10 и вы продолжаете добавлять сообщения, старые сообщения будут автоматически удалены. См. Добавление сообщений в модель.### Примеры методов для экземпляров пассов
Сервер кошелька HUAWEI предоставляет REST API для добавления экземпляров пассов. См. Добавление экземпляра. Вы можете добавить экземпляр лояльности в базу данных сервера, вызвав метод createLoyaltyInstance
, а также аналогично создавать другие типы экземпляров. Перед созданием экземпляров следует сначала создать модель пасса.
Сервер кошелька HUAWEI предоставляет REST API для запроса экземпляра паспорта по его уникальному идентификатору. См. Запрос экземпляра. Вы можете запросить экземпляр лояльности, вызвав метод getLoyaltyInstance
, а также аналогично запрашивать другие типы экземпляров.
Сервер кошелька HUAWEI предоставляет REST API для полной замены экземпляра паспорта по его уникальному идентификатору. См. Обновление экземпляра. Вы можете полностью обновить экземпляр лояльности, вызвав метод fullUpdateLoyaltyInstance
, а также аналогично обновлять другие типы экземпляров.#### 4. Частичное обновление экземпляра паспорта
Сервер кошелька HUAWEI предоставляет REST API для частичного обновления экземпляра паспорта по его уникальному идентификатору. См. Частичное обновление экземпляра. Вы можете частично обновить экземпляр лояльности, вызвав метод partialUpdateLoyaltyInstance
, а также аналогично обновлять другие типы экземпляров.#### 5. Добавление сообщений в экземпляр паспорта
Атрибут "messageList"
может присутствовать в экземпляре паспорта. Вы можете добавлять сообщения в экземпляр лояльности, вызывая метод addMessageToLoyaltyInstance
, а также аналогично добавлять сообщения в другие типы экземпляров. В "messageList"
экземпляра паспорта может быть до 10 сообщений. Одновременно вы не можете добавить более 10 сообщений. Если размер списка уже составляет 10 сообщений и вы продолжаете добавлять новые сообщения, старейшие сообщения будут удалены. См. Добавление сообщений в экземпляр.#### 6. Привязка/отвязка экземпляров предложения к экземпляру лояльности
Этот API предоставляется только для экземпляров лояльности. См. Привязка/Отвязка предложения. Вы можете привязывать/отвязывать экземпляры предложений к экземпляру лояльности, вызывая метод updateLinkedOffersToLoyaltyInstance
. Убедитесь, что предложения, которые вы хотите добавить, уже существуют перед использованием этого API. В противном случае клиент не сможет отобразить предложение, которое отсутствует в базе данных сервера. Эти экземпляры предложений могут принадлежать другим приложениям или другим разработчикам.
Разработчики должны сгенерировать строки 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, попробуйте следующие варианты:
huawei-mobile-services
.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )