閒扯&回顧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 ... });
總結
今天先介紹到這裏,這篇內容略多,可是操做都是比較簡單的,有須要注意的地方也已經標出。最近有好多朋友發郵件問一些問題,以後我會針對咱們本身在開發終於到的問題和你們提出的問題專門總結一篇問題總結。你們若是有其餘的問題和建議,能夠發站內信共同討論。感謝你們。