开发者可以调用该API,更新instanceId对应的优惠券个人化实例的某些字段。除了passTypeIdentifier、organizationPassId和serialNumber(instanceId),其余字段均可更新。可以将passStyleIdentifier(modelId)修改为属于同一个passTypeIdentifier的另一个优惠券模板的ID。
承载协议 | HTTPS PATCH |
|---|---|
接口方向 | 开发者服务器->华为钱包服务器 |
接口URL | {url}/hmspass/v1/offer/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参数描述 | 是 | 待更新的卡券实例 |
PATCH /hmspass/v1/offer/instance/50001 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
{
"fields": {
"status": [
{
"state": "completed"
}
]
}
} HTTP/1.1 200 OK
Content-Type: application/json
{
"organizationPassId": "5623489234",
"passTypeIdentifier": "hwpass.com.huawei.wallet.offer.test",
"passStyleIdentifier": "offerModelTest",
"serialNumber": "50001",
"fields": {
"status": {
"state": "completed",
"effectTime": "2020-01-01T00:00:00.111Z",
"expireTime": "2020-01-07T00:00:00.111Z"
},
"barCode": {
"text": "562348969211212",
"type": "codabar",
"value": "562348969211212",
"encoding": "UTF-8"
}
}
} public HwWalletObject partialUpdateWalletInstance(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();
}