文档管理中心
API参考钱包服务REST开发者调用接口卡券创建、查询、修改接口登机牌接口局部更新登机牌模板

局部更新登机牌模板

功能介绍

更新modelId对应的登机牌模板的某些字段。

场景描述

开发者可以调用该API,更新modelId对应的登机牌模板的某些字段。除了passTypeIdentifier和passStyleIdentifier(modelId),其余字段均可更新。卡券模板被更新后,与之关联的已被华为钱包用户领取的卡券都会被相应地更新,不同的更新场景请查看同步/异步更新规则。

使用约束

需在华为AGC网站上创建应用并申请卡券对应的服务。只能更新已添加到华为服务器的卡券模板。

接口原型

承载协议

HTTPS PATCH

接口方向

开发者服务器->华为钱包服务器

接口URL

{url}/hmspass/v1/flight/model/{modelId}

{url}变量需要开发者根据服务器所属区域自行选择,请参见钱包服务器地址。

数据格式

请求消息:Content-Type: application/json

响应消息:Content-Type: application/json

路径参数

展开

参数

是否必选

参数类型

描述

modelId

是

String

卡券模板的唯一标识符。这个ID在同一个appId下唯一。这个ID只能包含字母、数字和(.)、(-)、(_)。

请求参数

Request Header:

展开

参数

是否必选

参数类型

描述

Authorization

是

String

鉴权码。获取方式详见基于OAuth 2.0开放鉴权,请使用“客户端模式”。“client_id”和“client_secret”即为开发者在华为AGC网站上创建应用后获取的“App ID”和“App key”。将获取到的“access_token”的值拼接在字符串“Bearer”之后,以空格符相隔,组成“Authorization”参数的值。

Content-Type

是

String

固定值:“application/json;charset=utf-8”。

Accept

是

String

固定值:“application/json;charset=utf-8”。

Request Body:

展开

参数

是否必选

参数类型

描述

详见HwWalletObject参数描述

是

HwWalletObject

待更新的卡券模板

请求示例

收起
自动换行
深色代码主题
复制
  1. PATCH /hmspass/v1/flight/model/flightModelTest HTTP/1.1
  2. Content-Type: application/json;charset=utf-8
  3. Authorization: Bearer ***
  4. Accept: application/json;charset=utf-8
  5. Host: wallet-passentrust-drcn.cloud.huawei.com.cn
  6. {
  7. "fields": {
  8. "commonFields": [
  9. {
  10. "key": "logo",
  11. "value": "https://www.huawei.com/new_image_url.png"
  12. }
  13. ]
  14. }
  15. }

响应参数

错误码为200时:

展开

参数

参数类型

描述

详见HwWalletObject参数描述

HwWalletObject

已更新的卡券模板

响应示例

收起
自动换行
深色代码主题
复制
  1. HTTP/1.1 200 OK
  2. Content-Type: application/json
  3. {
  4. "passVersion": "2.0",
  5. "passTypeIdentifier": "hwpass.com.huawei.wallet.flight.test",
  6. "passStyleIdentifier": "flightModelTest",
  7. "organizationName": "XXX Airline",
  8. "fields": {
  9. "countryCode": "CN",
  10. "locationList": [
  11. {
  12. "longitude": "114.0679603815",
  13. "latitude": "22.6592051284"
  14. }
  15. ],
  16. "commonFields": [
  17. {
  18. "key": "logo",
  19. "value": "https://www.huawei.com/new_image_url.png"
  20. },
  21. {
  22. "key": "merchantName",
  23. "value": "XXX Airline",
  24. "localizedValue": "merchantNameI18N"
  25. },
  26. {
  27. "key": "flightNumber",
  28. "value": "MU2887"
  29. },
  30. {
  31. "key": "departureTerminal",
  32. "value": "T3"
  33. },
  34. {
  35. "key": "boardingGate",
  36. "value": "108"
  37. },
  38. {
  39. "key": "departureCity",
  40. "value": "Nanjing"
  41. },
  42. {
  43. "key": "arrivalTerminal",
  44. "value": "T3"
  45. },
  46. {
  47. "key": "arrivalCity",
  48. "value": "Shenzhen"
  49. }
  50. ],
  51. "appendFields": [
  52. {
  53. "key": "backgroundColor",
  54. "value": "#FF1C2635"
  55. }
  56. ],
  57. "imageList": [
  58. {
  59. "key": "mainImage[0]",
  60. "value": "https://www.huawei.com/XXX0.png"
  61. },
  62. {
  63. "key": "mainImage[1]",
  64. "value": "https://www.huawei.com/XXX1.png"
  65. },
  66. {
  67. "key": "mainImage[2]",
  68. "value": "https://www.huawei.com/XXX2.png"
  69. }
  70. ],
  71. "messageList": [
  72. {
  73. "key": "message[0]",
  74. "value": "Enjoy the journey!"
  75. }
  76. ],
  77. "timeList": [
  78. {
  79. "key": "departureTime",
  80. "value": "2020-05-09T12:30:00.010Z"
  81. },
  82. {
  83. "key": "scheduledDepartureTime",
  84. "value": "2020-05-09T10:30:00.010Z"
  85. },
  86. {
  87. "key": "boardingTime",
  88. "value": "2020-05-09T12:00:00.010Z"
  89. },
  90. {
  91. "key": "arrivalTime",
  92. "value": "2020-05-09T14:30:00.010Z"
  93. },
  94. {
  95. "key": "scheduledArrivalTime",
  96. "value": "2020-05-09T12:30:00.010Z"
  97. }
  98. ],
  99. "localized": [
  100. {
  101. "key": "merchantNameI18N",
  102. "language": "zh-cn",
  103. "value": "XXX 航空公司"
  104. },
  105. {
  106. "key": "merchantNameI18N",
  107. "language": "en",
  108. "value": "XXX Airline"
  109. }
  110. ]
  111. }
  112. }

错误码

详见错误码。

调用示例

收起
自动换行
深色代码主题
复制
  1. public HwWalletObject partialUpdateWalletModel(String url, String modelId, String body) {
  2. // Construct the http header.
  3. HttpHeaders header = constructHttpHeaders();
  4. // Construct the http URL.
  5. String baseUrl = ConfigHelper.instants().getValue("walletServerBaseUrl");
  6. String walletServerUrl = baseUrl + url + modelId;
  7. // Construct the http body.
  8. JSONObject jsonObj = JSONObject.parseObject(body);
  9. // Send the http request and get response.
  10. HttpEntity<JSONObject> entity = new HttpEntity<>(jsonObj, header);
  11. ResponseEntity<HwWalletObject> response =
  12. REST_TEMPLATE.exchange(walletServerUrl, HttpMethod.PATCH, entity, HwWalletObject.class);
  13. // Return the updated wallet model.
  14. return response.getBody();
  15. }