目录

局部更新会员卡模板

功能介绍

更新modelId对应的会员卡模板的某些字段。

场景描述

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

使用约束

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

接口原型

承载协议

HTTPS PATCH

接口方向

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

接口URL

{url}/hmspass/v1/loyalty/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

待更新的卡券模板

请求示例

PATCH /hmspass/v1/loyalty/model/loyaltyModelTest 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": {
    "commonFields": [
      {
        "key": "logo",
        "value": "https://www.huawei.com/new_image_url.png"
      }
    ]
  }
}

响应参数

错误码为200时:

参数

参数类型

描述

详见HwWalletObject参数描述

HwWalletObject

已更新的卡券模板

响应示例

HTTP/1.1 200 OK
Content-Type: application/json
{
  "passVersion": "2.0",
  "passTypeIdentifier": "hwpass.com.huawei.wallet.loyalty.test",
  "passStyleIdentifier": "loyaltyModelTest",
  "organizationName": "Huawei",
  "fields": {
    "countryCode": "CN",
    "locationList": [
      {
        "longitude": "114.0679603815",
        "latitude": "22.6592051284"
      }
    ],
    "commonFields": [
      {
        "key": "logo",
        "value": "https://www.huawei.com/new_image_url.png",
        "label": "Logo"
      },
      {
        "key": "backgroundImage",
        "value": "https://www.huawei.com/XXX.png",
        "label": "Background"
      },
      {
        "key": "name",
        "value": "XXX Diamond Loyalty Card",
        "label": "Card Name",
        "localizedValue": "cardName"
      },
      {
        "key": "merchantName",
        "value": "XXX Super Market",,
        "label": "Company Name"
        "localizedValue": "merchantNameI18N"
      }
    ],
    "appendFields": [
      {
        "key": "backgroundColor",
        "value": "#483d8b",
        "label": "Background Color"
      },
      {
        "key": "hotline",
        "value": "8006011450",
        "label": "Hotline"
      },
      {
        "key": "website",
        "value": "https://www.huawei.com",
        "label": "Website"
      },
      {
        "key": "level",
        "value": "Diamond",
        "label": "Membership Tier"
      }
    ],
    "messageList": [
      {
        "key": "message[0]",
        "value": "Best wishes.",
        "label": "Message"
      }
    ],
    "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"
      }
    ],
    "localized": [
      {
        "key": "cardName",
        "language": "zh-cn",
        "value": "XXX 钻石会员卡"
      },
      {
        "key": "cardName",
        "language": "en",
        "value": "XXX Diamond Loyalty Card"
      },
      {
        "key": "merchantNameI18N",
        "language": "zh-cn",
        "value": "XXX 超市"
      },
      {
        "key": "merchantNameI18N",
        "language": "en",
        "value": "XXX Super Market"
      }
    ]
  }
}

错误码

详见错误码。

调用示例

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 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 model.
    return response.getBody();
}