闲扯&回顾javascript
因为过年回来事情比较多,因此断了一段时间。今天赶忙接着。以前咱们介绍完了卡券从建立到发放的基本流程,今天咱们将介绍卡券和Code的相关操做。本文主要介绍NodeJS语言下wechat-card模块的操做方式,另外对重要的地方进行特别说明,以便其余语言开发者参考。html
卡券ID列表java
这个接口能够查询到公众号下的全部卡券ID,须要注意下,这里获取的是卡券ID,而不是卡券信息,使用方法和查询门店列表相似,也是经过 offset 和 count 两个参数来获取列表,接口以下:git
https://api.weixin.qq.com/card/batchget?access_token=TOKEN
经过wechat-card 进行操做的方法以下:github
wxCard.card.getCardIdList(0, 10, function(err, ids) { // do something ... });
这里的两个参数不作过多说明,能够参照查询门店列表接口处的介绍。api
卡券查询缓存
这个接口时用来经过 卡券ID 查询卡券的详细信息的接口,能够和上面获取卡券ID列表的接口搭配来获取全部卡券的信息。接口以下:安全
https://api.weixin.qq.com/card/get?access_token=TOKEN
经过 wechat-card 获取卡券信息方式以下:服务器
// 下列卡券id仅用于demo,在实际中不存在 var cardId = "p1Pj9jr90_SQRaVqYI239Ka1erkI"; wxCard.card.getCardDetail(cardId, function(err, card) { // do something ... });
接口返回的数据能够参见文档,其实就是添加卡券时候的卡券信息而已。微信
修改卡券
这个接口用于修改卡券信息,固然并非全部的信息,只是一部分可有可无的信息而已,不少关键信息都是不容许修改的。接口以下:
https://api.weixin.qq.com/card/update?access_token=TOKEN
在 wechat-card 修改卡券的方法以下:
// 下面的cardid仅用于demo,实际中不存在 var card = { card_id: "p1Pj9jr90_SQRaVqYI239Ka1erkI", base_info: { // .. some of base info }, special_info: { // ... } }; wxCard.card.modifyCard(card, function(err) { // do something ... });
须要注意的问题有:
1. 在修改时候须要传递一个参数对象,包含要修改的卡券的card_id, base_info,和special_info, 固然这里base_info和special_info能够修改的字段是很是少的,具体哪些字段能够修改,你们能够参照微信官方的文档。并且,在卡券修改后,已经发放的卡券也会随之而改变,并且修改某些字段后,已经审核经过的卡券会从新进入待审核状态,审核失败的卡券则不会从新审核,具体哪些字段能够出发从新审核,请你们参照官方文档。
2. 微信接口中全部的查询接口都有缓存,因此有必定的概率会形成一种状况,在修改卡券成功后马上进行查询,有可能缓存没有更新,而致使查询到的数据没有变化,这里有待微信进行优化了。
3. 在修改卡券有效期的时候,须要注意的一点是:修改的时间范围不能小于原有的时间范围,好比当前卡券有效期为2015-03-12,那么修改的日期必须为2015-3-12之后。
删除卡券
这个接口能够经过卡券ID删除已经建立的卡券, 接口为:
https://api.weixin.qq.com/card/delete?access_token=TOKEN
使用 wechat-card 删除卡券的方法以下:
// 下面的cardid仅用于demo,实际中不存在 var cardId = "p1Pj9jr90_SQRaVqYI239Ka1erkI"; wxCard.card.deleteCard(cardId, function(err) { // do something .. });
这里须要注意的问题有:删除卡券之后,已经被领取的Code仍是有效的,能够经过核销Code的方式进行核销。
Code查询
查询Code接口能够经过code查询对应的信息,包括code对应的卡券card id,领取code用户的openid,以及卡券的有效期。这里比较奇怪的是没有code的状态,这里期待微信之后能够支持。
接口为:
https://api.weixin.qq.com/card/code/get?access_token=TOKEN
在 wechat-card 中查询code的方法以下:
// 下面的code仅用于demo,实际中不存在 var code = "882077290937"; wxCard.code.getCodeDetail(code, function(err, details) { // details: 为Object类型 包含用户openid,卡券id和卡券有效时间 });
Code修改
这个接口用于修改已经领取的Code值。
这个接口使用的状况有:当卡券为自定义SN时,而且容许转赠卡券时,当卡券赠送给朋友之后,为了保证Code安全性,须要修改该Code的值,推荐在转赠之后收到事件推送(事件推送为微信向自定义服务器推送数据,在以后咱们会进行详细介绍)时进行修改。
接口为:
https://api.weixin.qq.com/card/code/update?access_token=TOKEN
在 wechat-card 中修改Code的方法为:传递参数为原始Code,对应的卡券ID, 和新的Code
// 下面的卡券id和code仅用于demo,实际中不存在 var code = "882077290937"; var cardId = "p1Pj9jr90_SQRaVqYI239Ka1erkI"; var newcode = "883920048827"; wxCard.code.modifyCode(code, cardId, newcode, function(err) { // do something ... });
设置Code失效
这个接口能够经过Code将已经领取的卡券设置为失效。接口为:
https://api.weixin.qq.com/card/code/unavailable?access_token=TOKEN
在 wechat-card 中设置Code失效的方法为:
// 下面的code仅用于demo,实际中不存在 var code = "882077290937"; wxCard.code.setCodeExpire(code, function(err) { // do something ... });
修改卡券库存
这个接口是用来补充卡券的库存值或者减小库存值,卡券库存即在建立卡券时 base_info.sku.quantity 字段。这个字段没法再修改卡券中进行修改,须要单独的接口进行修改,接口为:
https://api.weixin.qq.com/card/modifystock?access_token=TOKEN
在 wechat-card 中修改卡券库存的方法为:调用方法的第二个参数为要改变的库存值,好比增长10个,为+10, 好比减小20个,为-20。
// 下面的cardid仅用于demo,实际中不存在 var cardId = "p1Pj9jr90_SQRaVqYI239Ka1erkI"; // 减小10库存 wxCard.card.modifyCardStock(cardId, -10, function(err) { // do something ... }); // 增长10库存 wxCard.card.modifyCardStock(cardId, 10, function(err) { // do something ... });
总结
今天先介绍到这里,这篇内容略多,可是操做都是比较简单的,有须要注意的地方也已经标出。最近有好多朋友发邮件问一些问题,以后我会针对咱们本身在开发终于到的问题和你们提出的问题专门总结一篇问题总结。你们若是有其余的问题和建议,能够发站内信共同讨论。感谢你们。