微信卡券
优质
小牛编辑
129浏览
2023-12-01
微信卡券接口中使用的签名凭证api_ticket,与步骤三中config使用的签名凭证jsapi_ticket不同,开发者在调用微信卡券JS-SDK的过程中需依次完成两次不同的签名,并确保凭证的缓存。
获取api_ticket
api_ticket 是用于调用微信卡券JS API的临时票据,有效期为7200 秒,通过access_token 来获取。
开发者注意事项:
- 此用于卡券接口签名的api_ticket与步骤三中通过config接口注入权限验证配置使用的jsapi_ticket不同。
- 由于获取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 | 错误信息 |
ticket | api_ticket,卡券接口中签名所需凭证 |
expires_in | 有效时间 |
拉取适用卡券列表并获取用户选择信息
wx.chooseCard({
shopId: '', // 门店Id
cardType: '', // 卡券类型
cardId: '', // 卡券Id
timestamp: 0, // 卡券签名时间戳
nonceStr: '', // 卡券签名随机串
signType: '', // 签名方式,默认'SHA1'
cardSign: '', // 卡券签名
success: function (res) {
var cardList= res.cardList; // 用户选中的卡券列表信息
}
});
参数名 | 必填 | 类型 | 示例值 | 描述 |
---|---|---|---|---|
shopId | 否 | string(24) | 1234 | 门店ID。shopID用于筛选出拉起带有指定location_list(shopID)的卡券列表,非必填。 |
cardType | 否 | string(24) | GROUPON | 卡券类型,用于拉起指定卡券类型的卡券列表。当cardType为空时,默认拉起所有卡券的列表,非必填。 |
cardId | 否 | string(32) | p1Pj9jr90_SQRaVqYI239Ka1erk | 卡券ID,用于拉起指定cardId的卡券列表,当cardId为空时,默认拉起所有卡券的列表,非必填。 |
timestamp | 是 | string(32) | 14300000000 | 时间戳。 |
nonceStr | 是 | string(32) | sduhi123 | 随机字符串。 |
signType | 是 | string(32) | SHA1 | 签名方式,目前仅支持SHA1 |
cardSign | 是 | string(64) | abcsdijcous123 | 签名。 |
cardSign
详见附录4。
开发者特别注意:签名错误会导致拉取卡券列表异常为空,请仔细检查参与签名的参数有效性。
特别提醒
拉取列表仅与用户本地卡券有关,拉起列表异常为空的情况通常有三种:签名错误、时间戳无效、筛选机制有误。请开发者依次排查定位原因。
批量添加卡券接口
wx.addCard({
cardList: [{
cardId: '',
cardExt: ''
}], // 需要添加的卡券列表
success: function (res) {
var cardList = res.cardList; // 添加的卡券列表信息
}
});
cardExt
详见附录4,开发者若调用接口报签名错误、已领完等异常情况可以参照:卡券签名错误排查方法
查看微信卡包中的卡券接口
wx.openCard({
cardList: [{
cardId: '',
code: ''
}]// 需要打开的卡券列表
});