开发者可以调用该API,全量更新instanceId对应的活动门票个人化实例。除了passTypeIdentifier、organizationPassId和serialNumber(instanceId),其余字段均可更新。可以将passStyleIdentifier(modelId)修改为属于同一个passTypeIdentifier的另一个活动门票模板的ID。
承载协议 | HTTPS PUT |
|---|---|
接口方向 | 开发者服务器->华为钱包服务器 |
接口URL | {url}/hmspass/v1/eventticket/instance/{instanceId} {url}变量需要开发者根据服务器所属区域自行选择,请参见钱包服务器地址。 |
数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
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参数描述 | 是 | 待更新的卡券实例 |
PUT /hmspass/v1/eventticket/instance/10001 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
{
"organizationPassId": "5623489234",
"passTypeIdentifier": "hwpass.com.huawei.wallet.eventticket.test",
"passStyleIdentifier": "eventTicketModelTest",
"serialNumber": "10001",
"fields": {
"status": {
"state": "active",
"effectTime": "2019-11-13T00:00:00.111Z",
"expireTime": "2020-11-20T00:00:00.111Z"
},
"barCode": {
"text": "562348969211212",
"type": "codabar",
"value": "562348969211212",
"encoding": "UTF-8"
},
"commonFields": [
{
"key": "ticketNumber",
"value": "12345678"
}
],
"appendFields": [
{
"key": "gate",
"value": "Gate 2",
"label": "Gate"
},
{
"key": "section",
"value": "Section 3",
"label": "Section"
},
{
"key": "row",
"value": "Row 20",
"label": "Row"
},
{
"key": "seat",
"value": "Seat 10",
"label": "Seat"
},
{
"key": "userName",
"value": "Joe Wiley"
}
]
}
} HTTP/1.1 200 OK
Content-Type: application/json
{
"organizationPassId": "5623489234",
"passTypeIdentifier": "hwpass.com.huawei.wallet.eventticket.test",
"passStyleIdentifier": "eventTicketModelTest",
"serialNumber": "10001",
"fields": {
"status": {
"state": "active",
"effectTime": "2019-11-13T00:00:00.111Z",
"expireTime": "2020-11-20T00:00:00.111Z"
},
"barCode": {
"text": "562348969211212",
"type": "codabar",
"value": "562348969211212",
"encoding": "UTF-8"
},
"commonFields": [
{
"key": "ticketNumber",
"value": "12345678"
}
],
"appendFields": [
{
"key": "gate",
"value": "Gate 2",
"label": "Gate"
},
{
"key": "section",
"value": "Section 3",
"label": "Section"
},
{
"key": "row",
"value": "Row 20",
"label": "Row"
},
{
"key": "seat",
"value": "Seat 10",
"label": "Seat"
},
{
"key": "userName",
"value": "Joe Wiley"
}
]
}
} public HwWalletObject fullUpdateWalletInstance(String url, String instanceId, HwWalletObject body) {
// Construct the http header.
HttpHeaders header = constructHttpHeaders();
// Construct the http URL.
String baseUrl = ConfigHelper.instants().getValue("walletServerBaseUrl");
String walletServerUrl = baseUrl + url + instanceId;
// Construct the http body.
String hwLoyaltyInstance = CommonUtil.toJson(body);
JSONObject jsonObj = JSONObject.parseObject(hwLoyaltyInstance);
// Send the http request and get response.
HttpEntity<JSONObject> entity = new HttpEntity<>(jsonObj, header);
ResponseEntity<HwWalletObject> response =
REST_TEMPLATE.exchange(walletServerUrl, HttpMethod.PUT, entity, HwWalletObject.class);
// Return the updated wallet instance.
return response.getBody();
}