Пример кода серверной части сервиса Huawei Wallet демонстрирует, как вызывать REST-интерфейсы сервера Huawei Wallet. Сервер Huawei Wallet предоставляет несколько REST-интерфейсов, поддерживающих шесть типов карт (членская карта, дисконтная карта, подарочная карта, авиабилет, проездной билет и билет на мероприятие). Вы можете использовать эти интерфейсы для добавления, запроса и обновления карт.Перед использованием этого примера кода вам следует создать учетную запись разработчика на сайте Huawei Developer Alliance и создать приложение на AppGallery Connect. Это приложение указывает на то, что вы хотите использовать сервис Huawei Wallet, но это не обязательно должно быть реальное приложение на смартфоне. Подробнее читайте в разделах Регистрация аккаунта и Создание приложения.## Требования к среде Пример кода требует среды выполнения Maven и Oracle Java версии 1.8.0.211 или выше.
Для запроса сервиса Huawei Wallet следуйте инструкциям в разделе Активация сервиса.
Обратите внимание, что во время запроса сервиса Huawei Wallet вам потребуется создать уникальный номер услуги, который будет значением passTypeIdentifier
и будет использоваться при настройке примера кода.
Вы также создадите пару ключей RSA (общий и приватный), которые должны быть надежно хранены. Приватный ключ используется для подписи JWE (подробнее в разделе Создание JWE), а публичный ключ используется для проверки подписи на стороне сервера Huawei Wallet.
После настройки номера услуги для одного типа карты вы сможете запустить соответствующий пример кода. Для тестирования других типов карт вам потребуется запросить номер услуги для каждого типа карты отдельно.
Перед запуском примера кода в файле src/test/resources/release.config.properties
следует настроить следующие параметры: "gw.appid"
, "gw.appid.secret"
, "gw.tokenUrl"
, "walletServerBaseUrl"
, "servicePrivateKey"
и "walletWebsiteBaseUrl"
.### Установка gw.appid
и gw.appid.secret
:
Параметры gw.appid
и gw.appid.secret
представляют собой "APP ID" и "Secret Key" приложения соответственно. Для получения этих данных войдите в AppGallery Connect, выберите раздел "Мои приложения" и найдите APP ID и Secret Key вашего приложения.### Установка gw.tokenUrl
:
Установите параметр gw.tokenUrl
как https://oauth-login.cloud.huawei.com/oauth2/v3/token — адрес для получения токена аутентификации REST API.
walletServerBaseUrl
:Параметр walletServerBaseUrl
представляет собой общую часть запроса REST API и имеет формат 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
:Значение параметра servicePrivateKey
должно совпадать с RSA приватным ключом, сгенерированным при запросе услуг Huawei Wallet. Этот параметр используется для подписи JWE.
walletWebsiteBaseUrl
:Параметр walletWebsiteBaseUrl
представляет собой URL-адрес сервера H5 Huawei Wallet и имеет формат https://{walletkit_website_url}/walletkit/consumer/pass/save. Вместо {walletkit_website_url}
необходимо указать свой сайт, согласно вашей учетной записи и стране/региону проживания, как показано ниже:| Страна/Регион | walletkit_website_url |
|----------------------|------------------------------------|
| Китай | walletpass-drcn.cloud.huawei.com |
| Азия | walletpass-dra.cloud.huawei.com |
| Евropa | walletpass-dre.cloud.huawei.com |
| Латинская Америка | walletpass-dra.cloud.huawei.com |
| Россия | walletpass-drru.cloud.huawei.com |
Все шаблоны и экземпляры чеков имеют тип данных HwWalletObject. Подробнее см. Определение HwWalletObject.
Примеры кода принимают входные данные из JSON-файлов, расположенных в папке src/test/resources/data
. Вы можете самостоятельно изменять эти JSON-файлы для создания нужных вам чеков.
Установите значение поля "passTypeIdentifier"
в JSON-файле таким образом, чтобы оно совпадало с вашим сервисным номером, указанным на странице AppGallery Connect.
После установки всех необходимых параметров скомпилируйте примеры кода в Maven проект. Установка всех зависимостей может занять несколько минут, в зависимости от ваших конфигураций и скорости интернета.## Примеры методов
Сервер Huawei Wallet предоставляет REST API для создания шаблонов чеков. Например, вы можете использовать createLoyaltyModel
для добавления шаблона чека лояльности в базу данных сервера, подробнее см. Создание шаблона чека лояльности. Добавление других типов чеков аналогично. Для вызова любых связанных методов требуется наличие созданного шаблона чека.#### 2. Получение информации о шаблоне чека
Сервер Huawei Wallet предоставляет REST API для получения информации о шаблоне чека по его ID. Например, вы можете использовать getLoyaltyModel
для получения информации о шаблоне чека лояльности, подробнее см. Получение информации о шаблоне чека лояльности. Получение информации о других типах шаблонов чеков аналогично.
Если вы создали несколько шаблонов одного типа карты (например, шаблоны золотой карты и алмазной карты), вы можете использовать соответствующие интерфейсы для получения списка этих шаблонов. Например, с помощью вызова getLoyaltyModelList
можно получить список шаблонов карт лояльности, подробнее см. получение списка шаблонов карт лояльности. Методы получения списков шаблонов других типов карт и купонов аналогичны.
Сервер кошелька Huawei предоставляет REST-интерфейсы для полного обновления шаблонов карт по их ID. Например, можно использовать метод fullUpdateLoyaltyModel
для полного обновления шаблона карты лояльности. Подробнее см. полное обновление шаблона карты лояльности. Методы полного обновления других типов шаблонов карт аналогичны.#### 5. Частичное обновление шаблона карты
Кошелёк Huawei предоставляет REST-интерфейсы для частичного обновления шаблонов карт по их ID. Например, можно использовать метод partialUpdateLoyaltyModel
для частичного обновления шаблона карты лояльности. Подробнее см. частичное обновление шаблона карты лояльности. Методы частичного обновления других типов шаблонов карт аналогичны.
Кошелёк Huawei предоставляет REST-интерфейсы для добавления сообщений в шаблоны карт. Например, можно использовать метод addMessageToLoyaltyModel
для добавления сообщений в шаблон карты лояльности. Подробнее см. добавление сообщений в шаблон карты лояльности. Добавление сообщений в другие типы шаблонов карт аналогично. В шаблоне карты messageList
представляет собой список сообщений, поддерживающий до десяти сообщений. При достижении максимального количества сообщений новые будут добавлены за счёт удаления самых ранних.### Примеры работы с экземплярами карт
Сервер кошелька Huawei предоставляет REST-интерфейсы для создания новых экземпляров карт. Например, можно использовать метод createLoyaltyInstance
для добавления нового экземпляра карты лояльности в базу данных сервера. Подробнее см. создание нового экземпляра карты лояльности. Методы создания новых экземпляров других типов карт аналогичны. Перед созданием экземпляра необходимо создать его шаблон.#### 2. Получение информации об экземпляре карты
Сервер кошелька Huawei предоставляет REST-интерфейсы для получения информации об экземплярах карт по их ID. Например, можно использовать метод getLoyaltyInstance
для получения информации об экземпляре карты лояльности. Подробнее см. [получение информации об экземпляре карты лояльности].
Методы получения информации об экземплярах других типов карт аналогичны.
Сервер кошелька Huawei предоставляет REST-интерфейсы для полного обновления экземпляров карт по их ID. Например, можно использовать метод fullUpdateLoyaltyInstance
для полного обновления экземпляра карты лояльности. Подробнее см. полное обновление экземпляра карты лояльности.
Методы полного обновления других типов экземпляров карт аналогичны.
Сервер кошелька Huawei предоставляет REST-интерфейсы для локального обновления экземпляров карт с использованием ID экземпляра. Например, можно использовать метод partialUpdateLoyaltyInstance
для локального обновления экземпляра членской карты. Подробнее см. локальное обновление экземпляра членской карты.
Методы локального обновления других типов экземпляров карт аналогичны.#### 5. Добавление сообщений в экземпляр карты
Сервер кошелька Huawei предоставляет REST-интерфейсы для добавления сообщений в экземпляр карт. Например, можно использовать метод addMessageToLoyaltyInstance
для добавления сообщений в экземпляр членской карты. Подробнее см. добавление сообщений в экземпляр членской карты. Методы добавления сообщений в другие типы экземпляров карт аналогичны. Свойство messageList
экземпляра карты поддерживает до десяти сообщений. При достижении этого количества новые сообщения заменят старые.
updateLinkedOffersToLoyaltyInstance
для добавления или удаления связанных экземпляров купонов от одного экземпляра членской карты. Подробнее см. соединение/отсоединение экземпляров купонов. Перед использованием данного интерфейса для соединения купонов убедитесь, что связываемый экземпляр купона существует на сервере кошелька, иначе клиент не сможет его отобразить. Купоны могут принадлежать другим приложениям.Для того чтобы связать ваучеры с определённым пользователем в Huawei Wallet H5 сервере, вам необходимо сгенерировать JWE строку и отправить её на сервер Huawei Wallet H5.Вы можете создать JWE двумя способами:
Первый метод: сгенерируйте JWE, содержащий полную информацию о примере ваучера, и отправьте его на сервер Huawei Wallet H5. В этом случае вам не потребуется вызывать интерфейс добавления примера ваучера.
Второй метод: используйте интерфейс добавления примера ваучера для добавления примера ваучера на сервер кошелька, затем сгенерируйте "тонкий" JWE, содержащий только ID примера ваучера, и отправьте его на сервер Huawei Wallet H5.Пример кода ниже предоставляет методы для генерации JWE и "тонкого" JWE для вашего удобства. Дополнительная информация доступна в разделах "Генерация JWE и отправка на сервер Huawei" и "Генерация 'тонкого' JWE и отправка на сервер Huawei" руководства по интеграции кнопки "Добавить в Huawei Wallet" на веб-страницу (Подробнее).
Если вы установили обратный адрес вызова или обратный адрес NFC при запросе услуг Huawei Wallet, вы будете получать уведомления от сервера Huawei Wallet. Эти запросы содержат подпись в заголовках запроса, которую вам следует проверять с помощью фиксированного публичного ключа, предоставленного Huawei. Вы можете использовать метод verifySignature
из примеров кода для выполнения этой задачи. Подробнее см. раздел общих определений обратных вызовов.## Техническая поддержка
Если вы ещё оцениваете возможности HMS Core, вы можете получить последние новости и общаться с другими разработчиками на сообществе Reddit.
Если у вас есть вопросы по использованию примеров кода HMS, попробуйте:
huawei-mobile-services
, где опытные специалисты Huawei помогут вам решить проблему.Если вы столкнулись с проблемой при работе с примерами кода, создайте issue в репозитории, а также приветствуем ваши предложения по улучшению через pull request.
Примеры кода для серверной части сервиса Huawei Wallet распространяются под лицензией Apache License, версия 2.0.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )