微信卡券

优质
小牛编辑
129浏览
2023-12-01

微信卡券接口中使用的签名凭证api_ticket,与步骤三中config使用的签名凭证jsapi_ticket不同,开发者在调用微信卡券JS-SDK的过程中需依次完成两次不同的签名,并确保凭证的缓存。

获取api_ticket

api_ticket 是用于调用微信卡券JS API的临时票据,有效期为7200 秒,通过access_token 来获取。

开发者注意事项:

  1. 此用于卡券接口签名的api_ticket与步骤三中通过config接口注入权限验证配置使用的jsapi_ticket不同。
  2. 由于获取api_ticket 的api 调用次数非常有限,频繁刷新api_ticket 会导致api调用受限,影响自身业务,开发者需在自己的服务存储与更新api_ticket。

接口调用请求说明

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card

参数说明

参数是否必须说明
access_token接口调用凭证

返回数据

数据示例:

{
  "errcode":0,
  "errmsg":"ok",
  "ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKdvsdshFKA",
  "expires_in":7200
}
参数名描述
errcode错误码
errmsg错误信息
ticketapi_ticket,卡券接口中签名所需凭证
expires_in有效时间

拉取适用卡券列表并获取用户选择信息

wx.chooseCard({
  shopId: '', // 门店Id
  cardType: '', // 卡券类型
  cardId: '', // 卡券Id
  timestamp: 0, // 卡券签名时间戳
  nonceStr: '', // 卡券签名随机串
  signType: '', // 签名方式,默认'SHA1'
  cardSign: '', // 卡券签名
  success: function (res) {
    var cardList= res.cardList; // 用户选中的卡券列表信息
  }
});
参数名必填类型示例值描述
shopIdstring(24)1234门店ID。shopID用于筛选出拉起带有指定location_list(shopID)的卡券列表,非必填。
cardTypestring(24)GROUPON卡券类型,用于拉起指定卡券类型的卡券列表。当cardType为空时,默认拉起所有卡券的列表,非必填。
cardIdstring(32)p1Pj9jr90_SQRaVqYI239Ka1erk卡券ID,用于拉起指定cardId的卡券列表,当cardId为空时,默认拉起所有卡券的列表,非必填。
timestampstring(32)14300000000时间戳。
nonceStrstring(32)sduhi123随机字符串。
signTypestring(32)SHA1签名方式,目前仅支持SHA1
cardSignstring(64)abcsdijcous123签名。

cardSign 详见附录4。

开发者特别注意:签名错误会导致拉取卡券列表异常为空,请仔细检查参与签名的参数有效性。

特别提醒

拉取列表仅与用户本地卡券有关,拉起列表异常为空的情况通常有三种:签名错误、时间戳无效、筛选机制有误。请开发者依次排查定位原因。

批量添加卡券接口

wx.addCard({
  cardList: [{
    cardId: '',
    cardExt: ''
  }], // 需要添加的卡券列表
  success: function (res) {
    var cardList = res.cardList; // 添加的卡券列表信息
  }
});

cardExt 详见附录4,开发者若调用接口报签名错误、已领完等异常情况可以参照:卡券签名错误排查方法

查看微信卡包中的卡券接口

wx.openCard({
  cardList: [{
    cardId: '',
    code: ''
  }]// 需要打开的卡券列表
});