This API is used to update the entire pass model based on modelId. All parameters except passTypeIdentifier and passStyleIdentifier (namely, modelId) can be updated. After you modify a pass model, all passes using this model and claimed by users will be updated accordingly. For details about the update scenarios, please refer to Synchronous and Asynchronous Update.
You need to create an app in AppGallery Connect and apply for services corresponding to the passes. In addition, only a model that has been added to the Huawei server can be updated.
Protocol |
HTTPS PUT |
|---|---|
Direction |
Developer server -> Huawei server |
URL |
{url}/hmspass/v2/{cardType}/model/{modelId} Set the {url} variable based on the region where the server is located. For details, please refer to Wallet Server Addresses. |
Data Format |
Request: Content-Type: application/json Response: Content-Type: application/json |
Parameter |
Mandatory/Optional |
Type |
Description |
|---|---|---|---|
cardType |
Mandatory |
String |
Pass type. Set this parameter as required. For supported pass types, please refer to Other Passes Supported. |
modelId |
Mandatory |
String |
Unique identifier of a pass model. It must be unique across all models sharing the same appId. The value contains only letters, digits, dots (.), hyphens (-), and underscores (_). |
Request Header
Parameter |
Mandatory/Optional |
Type |
Description |
|---|---|---|---|
Authorization |
Mandatory |
String |
Authorization code. For details about how to obtain the value, please refer to the Client Credentials mode in OAuth 2.0-based Authentication. In this mode, client_id and client_secret are respectively the App ID and App key of the app that you created in AppGallery Connect. Concatenate the value of access_token to the end of Bearer, with a space in between, to generate the value of Authorization. |
Content-Type |
Mandatory |
String |
The value is always application/json;charset=utf-8. |
Accept |
Mandatory |
String |
The value is always application/json;charset=utf-8. |
Request Body
Parameter |
Mandatory/Optional |
Type |
Description |
|---|---|---|---|
For details, please refer to the HwWalletObject Parameters. |
Mandatory |
Pass model to be updated. |
PUT /hmspass/v1/key_parkcard/model/class_parkcard_Test HTTP/1.1
Content-Type: application/json;charset=utf-8
Authorization: Bearer ***
Accept: application/json;charset=utf-8
Host: wallet-passentrust-drcn.cloud.huawei.com.cn
{
"passVersion": "2.0",
"passTypeIdentifier": "hwpass.type.parkcard.test",
"passStyleIdentifier": "class_parkcard_Test",
"organizationName": "Huawei",
"fields": {
"countryCode": "CN",
"locationList": [
{
"longitude": "114.0679603815",
"latitude": "22.6592051284"
}
],
"commonFields": [
{
"key": "logo",
"value": "https://www.huawei.com/XXX.png"
},
{
"key": "name",
"value": "XXX All-in-one Card"
},
{
"key": "merchantName",
"value": "Huawei",
"localizedValue": "merchantNameI18N"
},
{
"key": "address",
"value": "YYY location"
}
],
"appendFields": [
{
"key": "backgroundColor",
"value": "#FF1C2635"
}
],
"imageList": [
{
"key": "mainImage[0]",
"value": "https://www.huawei.com/XXX0.png"
},
{
"key": "mainImage[1]",
"value": "https://www.huawei.com/XXX1.png"
},
{
"key": "mainImage[2]",
"value": "https://www.huawei.com/XXX2.png"
}
],
"messageList": [
{
"key": "message[0]",
"value": "Welcome to the park!"
}
],
"timeList": [
{
"key": "startTime",
"value": "2020-01-22T18:00:00.083Z"
},
{
"key": "endTime",
"value": "2020-01-22T22:00:00.083Z"
}
],
"localized": [
{
"key": "merchantNameI18N",
"language": "zh-cn",
"value": "Huawei"
},
{
"key": "merchantNameI18N",
"language": "en",
"value": "Huawei"
}
]
}
}
When the result code is 200:
Parameter |
Type |
Description |
|---|---|---|
For details, please refer to the HwWalletObject Parameters. |
Updated pass model. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"passVersion": "2.0",
"passTypeIdentifier": "hwpass.type.parkcard.test",
"passStyleIdentifier": "class_parkcard_Test",
"organizationName": "Huawei",
"fields": {
"countryCode": "CN",
"locationList": [
{
"longitude": "114.0679603815",
"latitude": "22.6592051284"
}
],
"commonFields": [
{
"key": "logo",
"value": "https://www.huawei.com/XXX.png"
},
{
"key": "name",
"value": "XXX All-in-one Card"
},
{
"key": "merchantName",
"value": "Huawei",
"localizedValue": "merchantNameI18N"
},
{
"key": "address",
"value": "YYY location"
}
],
"appendFields": [
{
"key": "backgroundColor",
"value": "#FF1C2635"
}
],
"imageList": [
{
"key": "mainImage[0]",
"value": "https://www.huawei.com/XXX0.png"
},
{
"key": "mainImage[1]",
"value": "https://www.huawei.com/XXX1.png"
},
{
"key": "mainImage[2]",
"value": "https://www.huawei.com/XXX2.png"
}
],
"messageList": [
{
"key": "message[0]",
"value": "Welcome to the park!"
}
],
"timeList": [
{
"key": "startTime",
"value": "2020-01-22T18:00:00.083Z"
},
{
"key": "endTime",
"value": "2020-01-22T22:00:00.083Z"
}
],
"localized": [
{
"key": "merchantNameI18N",
"language": "zh-cn",
"value": "Huawei"
},
{
"key": "merchantNameI18N",
"language": "en",
"value": "Huawei"
}
]
}
}
public HwWalletObject fullUpdateWalletModel(String url, String modelId, String body) {
// Construct the HTTP header.
HttpHeaders header = constructHttpHeaders();
// Construct the HTTP URL.
String baseUrl = ConfigHelper.instants().getValue("walletServerBaseUrl");
String walletServerUrl = baseUrl + url + modelId;
// Construct the HTTP body.
JSONObject jsonObj = JSONObject.parseObject(body);
// Send the HTTP request and obtain the response.
HttpEntity<JSONObject> entity = new HttpEntity<>(jsonObj, header);
ResponseEntity<HwWalletObject> response =
REST_TEMPLATE.exchange(walletServerUrl, HttpMethod.PUT, entity, HwWalletObject.class);
// Return the updated wallet model.
return response.getBody();
}