You need to create an app in AppGallery Connect and apply for services corresponding to the passes.
Protocol |
HTTPS POST |
|---|---|
Direction |
Developer server -> Huawei server |
URL |
{url}/hmspass/v1/eventticket/model 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 |
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 added. |
POST /hmspass/v1/eventticket/model HTTP/1.1
Content-Type: application/json;charset=utf-8
Authorization: Bearer ***
Host: wallet-passentrust-drcn.cloud.huawei.com.cn
Accept: application/json;charset=utf-8
{
"passVersion": "1.0",
"passTypeIdentifier": "hwpass.com.huawei.wallet.eventticket.test",
"passStyleIdentifier": "eventTicketModelTest",
"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 Party Ticket"
},
{
"key": "merchantName",
"value": "Huawei",
"localizedValue": "merchantNameI18N"
},
{
"key": "address",
"value": "XXX location"
},
{
"key": "ticketType",
"value": "Adult ticket"
}
],
"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 party!"
}
],
"timeList": [
{
"key": "startTime",
"value": "2020-01-22T09:20:00.083Z"
},
{
"key": "endTime",
"value": "2020-01-22T12:20: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. |
Added pass model. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"passVersion": "1.0",
"passTypeIdentifier": "hwpass.com.huawei.wallet.eventticket.test",
"passStyleIdentifier": "eventTicketModelTest",
"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 Party Ticket"
}, {
"key": "merchantName",
"value": "Huawei",
"localizedValue": "merchantNameI18N"
},
{
"key": "address",
"value": "XXX location"
},
{
"key": "ticketType",
"value": "Adult ticket"
}
],
"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 party!"
}
],
"timeList": [
{
"key": "startTime",
"value": "2020-01-22T09:20:00.083Z"
},
{
"key": "endTime",
"value": "2020-01-22T12:20:00.083Z"
}
],
"localized": [
{
"key": "merchantNameI18N",
"language": "zh-cn",
"value": "Huawei"
},
{
"key": "merchantNameI18N",
"language": "en",
"value": "Huawei"
}
]
}
}
public HwWalletObject postHwWalletObjectToWalletServer(String url, HwWalletObject hwWalletObject) {
// Construct the HTTP header.
HttpHeaders header = constructHttpHeaders();
// Construct the HTTP body.
String body = CommonUtil.toJson(hwWalletObject);
JSONObject jsonObj = JSONObject.parseObject(body);
System.out.println("Request JSON : " + jsonObj);
// Construct the HTTP URL.
String baseUrl = ConfigHelper.instants().getValue("walletServerBaseUrl");
String walletServerUrl = baseUrl + url;
// Send the HTTP request and obtain the response.
HttpEntity<JSONObject> entity = new HttpEntity<>(jsonObj, header);
ResponseEntity<HwWalletObject> exchange =
REST_TEMPLATE.exchange(walletServerUrl, HttpMethod.POST, entity, HwWalletObject.class);
// Return the pushed wallet model.
return exchange.getBody();
}