更新日誌
#版本號 | 更新內容 | 更新時間 |
---|
#V1.1 | 1.新增卡券貨架創建接口,支援開發者呼叫接口創建卡券貨架進行卡券投 #2. 新增導入code接口,支援自訂code開發者透過導入code透過群發、客服等管道派發卡券 # | 2015-8-12 |
#V1.2 | 新增掃描二維碼批量領取接口,用戶掃描二維碼可以同時領取多張卡券 | 2015-8-31
|
1 建立二維碼介面
#開發者可呼叫該介面產生一張卡券二維碼供用戶掃碼後添加卡券到卡包。 ############自訂Code碼的卡券呼叫介面時,POST資料中需指定code,非自訂code不需指定,指定openid同理。指定後的二維碼只能被使用者掃描領取一次。 ######
取得二維碼ticket後,開發者可用#透過ticket換取二維碼介面。
介面呼叫請求說明
#
HTTP请求方式: POST
URL:https://api.weixin.qq.com/card/qrcode/create?access_token=TOKEN
參數說明
參數 | 是否必須 | ##說明 |
---|
| POST資料 | 是 |
JSON資料 | access_token | 是 |
#呼叫介面憑證############# ##
POST資料
#開發者可以設定掃描二維碼領取單張卡券,此時POST資料為:
{
"action_name": "QR_CARD",
"expire_seconds": 1800,
"action_info": {
"card": {
"card_id": "pFS7Fjg8kV1IdDz01r4SQwMkuCKc",
"code": "198374613512",
"openid": "oFS7Fjl0WsZ9AMZqrI80nbIq8xrA",
"is_unique_code": false ,
"outer_str":"12b"
}
}
}
當開發者設定掃描二維碼領取多張卡券,此時POST資料為:
{
"action_name": "QR_MULTIPLE_CARD",
"action_info": {
"multiple_card": {
"card_list": [
{
"card_id": "p1Pj9jgj3BcomSgtuW8B1wl-wo88",
"code":"2392583481",
"outer_str":"12b"
},
{
"card_id": "p1Pj9jgj3BcomSgtuW8B1wl-wo98",
"code":"2392583482",
"outer_str":"12b"
}
]
}
}
}
####### ###參數說明#########
參數名稱 | 必填 | ##類型 | #範例值 | 描述 |
---|
code | 是 | string(20) | #110201201245 | 卡券Code碼,use_custom_code欄位為true的卡券必須填寫,非自訂code和匯入code模式的卡券不必填寫。 |
card_id | | #string(32) | pFS7Fjg8kV1IdD z01r4SQwMkuCKc | 卡券ID。 |
openid | | #string(32) | oXch-jkrxp42VQu8ld weCwDt97qo | 指定領取者的openid,只有該使用者能領取。 bind_openid欄位為true的卡券必須填寫,非指定openid不必填寫。 |
expire_seconds | | unsigned int | #60 | 指定二維碼的有效時間,範圍是60 ~ 1800秒。不填預設為365天有效 |
is_unique_code | 否 | | bool | false | 指定下發二維碼,產生的二維碼隨機分配一個code,領取後不可再掃描。填寫true或false。預設false,注意填寫該欄位時,卡券須通過審核且庫存不為0。
| outer_id | | #int | 12######領取場景值,用於領取頻道的資料統計,預設值為0,欄位類型為整數,長度限制為60位元數字。用戶領取卡券後觸發的事件推送中會帶上此自訂場景值。 |
outer_str | | | | ## string(128) 13b |
####outer_id欄位升級版本,字串類型,使用者第一次領卡時,會透過領取事件推送給商家;############對於會員卡的二維碼,用戶每次掃碼打開會員卡後點擊任何url,會將該值拼入url中,方便開發者定位掃碼來源###################
############################################################
############################################################
###################################
#
{
"errcode": 0,
"errmsg": "ok",
"ticket": "gQHB8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0JIV3lhX3psZmlvSDZmWGVMMTZvAAIEsNnKVQMEIAMAAA==",//获取ticket后需调用换取二维码接口获取二维码图片,详情见字段说明。
"expire_seconds": 1800,
"url": "http://weixin.qq.com/q/BHWya_zlfioH6fXeL16o ",
"show_qrcode_url": " https://mp.weixin.qq.com/cgi-bin/showqrcode? ticket=gQH98DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0czVzRlSWpsamlyM2plWTNKVktvAAIE6SfgVQMEgDPhAQ%3D%3D"
}
### 參數說明######
參數名稱 | 描述 |
---|
errcode | 錯誤碼 |
#errmsg | 錯誤訊息 |
ticket | 所取得的二維碼ticket,憑藉此ticket呼叫透過ticket換取二維碼介面可以在有效時間內換取二維碼。 |
url | 二維碼圖片解析後的位址,開發者可依該位址自行產生所需的二維碼圖片 |
show_qrcode_url | #二維碼顯示位址,點擊後跳到二維碼頁面 |
注意事項:
1.自訂code的卡券,產生的二維碼每次只能領取一次,若開發者想要使用自己的字串碼系統並且想要用微信的二維碼投放,必須先將
自訂code導入
####### ;###############2.領取多張的二維碼一次最多填入5個card_id,否則報錯。 #####################2 HTML5線上發券(JS-SDK介面)###############微信JS -SDK 僅支援在微信內建瀏覽器中使用,其他瀏覽器呼叫無效。 ######
微信提供addCard介面供商家前端網頁呼叫,用於將一張或多張卡券加入用戶卡包。詳情請見批次新增卡券介面。
#3 透過卡券貨架上播放卡片
卡券貨架簡介
#卡券貨架支援開發者透過呼叫介面產生卡券領取H5頁面,並獲取頁面鏈接,進行卡券投放動作。 目前卡券貨架僅支援非自訂code的卡券,自訂code的卡券需先呼叫匯入code介面##將code匯入才能正常使用。 #
3.1 建立貨架介面
介面說明
開發者需呼叫該接口創建貨架鏈接,用於卡券投放。建立貨架時需填寫投放路徑的場景欄位。
介面呼叫請求說明
#
HTTP请求方式: POST
URL:https://api.weixin.qq.com/card/landingpage/create?access_token=$TOKEN
請求參數說明
#
參數 | 是否必須 | ##說明 |
---|
| access_token | 是 |
#呼叫介面憑證 | | |
################### ########buffer############是#############檔案的資料流############ ###
POST資料
{
"banner":"http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7h icFN",
"page_title": "惠城优惠大派送",
"can_share": true,
"scene": "SCENE_NEAR_BY",
"card_list": [
{
"card_id": "pXch-jnOlGtbuWwIO2NDftZeynRE",
"thumb_url": "www.qq.com/a.jpg"
},
{
"card_id": "pXch-jnAN-ZBoRbiwgqBZ1RV60fI",
"thumb_url": "www.qq.com/b.jpg"
}
]
}
#########參數說明#########
欄位 | 說明 | #是否必填 |
---|
#banner | 頁面的banner圖片鏈接,須調用,建議尺寸為640*300。 | 是 |
title | 頁面的title。 | 是 |
#can_share | 頁面是否可以分享,填入true/false | 是 |
#scene | ##投放頁面的場景值; SCENE_NEAR_BY 附近SCENE_MENU 自訂選單SCENE_QRCODE 二維碼SCENE_ARTICLE 公眾號文章SCENE_H5 h5頁面SCENE_IVR 自動回覆SCENE_CARD_CUSTOM_CELL#卡 | 是 |
card_list | 卡券列表,每個item有兩個欄位 | 是 |
#card_id | 所要在頁面中投放的card_id | 是 |
#thumb_url | ##縮圖url | 是 |
############################################################
傳回資料說明
#{
"errcode":0,
"errmsg":"ok",
"url":"www.test.url",
"page_id":1
}
#########欄位說明###### ###欄位 | 說明 |
---|
errcode | 錯誤碼,0為正常。 |
errmsg | 錯誤訊息。 |
url | # 貨架連結。 |
page_id | #貨架ID。貨架的唯一標誌。 |
#
4 群發卡券
請開發者特別注意,目前群發卡券介面僅支援投放非自訂Code碼的卡券。自訂code碼的商家若想使用此功能需呼叫匯入code介面將自訂code先匯入微信伺服器。
4.1 匯入自訂code(只對自訂code商家)
介面簡介#########此模組只針對自訂code商戶,非自訂code開發者請自動忽略。 開發者可以將自訂code提前匯入至微信伺服器,以獲得和非自訂code商家相同的投放能力,如分組群發、客服訊息下發卡券等。
匯入code後的卡券在投放時等同於非自訂code卡券
新建立卡券
如果開發者打算新建立一張支援導入code模式的卡券,不同於以往的建立方式,建議開發者採用以下流程建立預存code模式卡券,否則會報錯。
步驟一:建立預存模式卡券,將庫存quantity初始值設為0,並填入get_custom_code_mode字段;
步驟二:待卡券通過審核後,呼叫導入code接口並核查code;
步驟三:呼叫修改庫存接口,須令卡券庫存小於或等於導入code的數目。 (為了避免混亂建議設定為相等)
#
#非新建立卡券
如果開發者已經有一張卡券,想把它改為預存code模式,建議開發者按照以下流程對卡券進行更新。
步驟一:呼叫導入code介面導入一定量的自訂code並核查code;
步驟二:呼叫更改卡券資訊介面填入get_custom_code_mode欄位;
步驟三:呼叫修改庫存介面將卡券庫存quantity設定為與匯入code數目相等的數字。
#4.1.1 填入/更新匯入code必要欄位
介面說明
#自訂code的卡券僅支援API創建,創建時務必在base_info中加入以下欄位(詳情請參閱介面文件CreateCard建立卡券介面),並加入以下兩個指定欄位後,才可呼叫code導入介面進行code導入
欄位 | 範例 | 說明 |
#base_info | | |
get_custom_code_mode | GET_CUSTOM_CODE_MODE_DEPOSIT | #填入該欄位後,自訂code卡券方可進行匯入code並投放的動作。 |
use_custom_code | #true | #將卡券設為自定義code |
建立卡券時JSON範例{
"card": {
"card_type": "GROUPON",
"groupon": {
"base_info": {
··········
"use_custom_code":true,
"get_custom_code_mode":"GET_CUSTOM_CODE_MODE_DEPOSIT",
},
"advanced_info": {
··········
},
"deal_detail": "示例"
}
}
}
更新卡券時JSON範例 {
"card_id":"ph_gmt7cUVrlRk8swPwx7aDyF-pg",
"groupon": {
"base_info": {
·········
"get_custom_code_mode":"GET_CUSTOM_CODE_MODE_DEPOSIT",
·········
}
}
}
注意事項:
# 建立/更新填入get_custom_code_mode時,必須檢查庫存數與已經匯入code數目的關係,當導入code的數目小於庫存數時,會報錯。
4.1.2 匯入code介面在自訂code卡券
成功建立並且通過審核後,必須將自訂code依照與發券方的約定數量呼叫導入code介面導入微信後台。
介面說明##########開發者可呼叫此介面將自訂code匯入微信卡券後台,由微信側代理程式儲存並下發code。
附註: 1)單次呼叫介面傳入code的數量上限為100個。
2)每一個 code 均不能為空白字串。
3)匯入結束後系統會自動判斷提供者設定庫存與實際匯入code的量是否一致。
4)導入失敗支援重複導入,提示成功為止。
介面呼叫請求說明
#HTTP请求方式: POST
URL:http://api.weixin.qq.com/card/code/deposit?access_token=ACCESS_TOKEN
請求參數說明
參數 | 是否必須 | ##說明 |
---|
| access_token | 是 |
#呼叫介面憑證 | | |
################### ########buffer############是#############檔案的資料流############ ###
POST資料
{
"card_id": "pDF3iY0_dVjb_Pua96MMewA96qvA",
"code": [
"11111",
"22222",
"33333",
"44444",
"55555"
]
}
#########欄位說明##########欄位 | 說明 | #是否必填 |
---|
#card_id | 需要進行匯入code的卡券ID。 | 是 |
#code | 需要匯入微信卡券後台的自訂code,上限為100個。 | 是 |
傳回資料說明
{
"errcode":0,
"errmsg":"ok"
}
#########欄位說明##########欄位 | 說明 |
---|
errcode | 錯誤碼,0為正常;40109:code數量超過100個 |
##errmsg | #錯誤訊息. |
succ_code | #成功個數 |
##duplicate_code | 重複導入的code會自動被過濾。 |
fail_code | #失敗個數。 |
#
#4.1.3 查詢匯入code數目介面
介面說明
支援開發者呼叫該介面查詢code匯入微信後台成功的數目。
介面呼叫請求說明HTTP请求方式: POST
URL:http://api.weixin.qq.com/card/code/getdepositcount?access_token=ACCESS_TOKEN
請求參數說明###########呼叫介面憑證############################################################# #####
POST資料{
"card_id" : " pDF3iY0_dVjb_Pua96MMewA96qvA "
}
#欄位說明#########欄位 | 說明 | #是否必填 |
---|
#card_id | 進行匯入code的卡券ID。 | 是 |
傳回資料說明{
"errcode":0,
"errmsg":"ok",
"count":123
}
#欄位說明###########HTTP请求方式: POST
URL:http://api.weixin.qq.com/card/code/checkcode?access_token=ACCESS_TOKEN
##########欄位說明##########欄位 | 說明 |
---|
errcode | 錯誤碼,0為正常。 |
errmsg | 錯誤訊息。 |
count | 已經成功存入的code數目。 |
#
4.1.4 核查code介面
為了避免匯入錯誤,強烈建議開發者在查詢完code數目的時候核查code介面校驗code導入微信後台的情況。
介面說明
#支援開發者呼叫該介面查詢code匯入微信後台的情況。
介面呼叫請求說明##########{
"card_id": "pDF3iY0_dVjb_Pua96MMewA96qvA",
"code": [
"11111",
"22222",
"33333",
"44444",
"55555"
]
}
请求参数说明
#呼叫介面憑證############################################################# #####
POST資料{
"errcode":0,
"errmsg":"ok"
"exist_code":["11111","22222","33333"],
"not_exist_code":["44444","55555"]
}
#欄位說明#########欄位 | 說明 | #是否必填 |
---|
#card_id | 進行匯入code的卡券ID。 | 是 |
code | 已經微信卡券後台的自訂code,上限為100個。 | 是 |
傳回資料說明
HTTP请求方式: POST
URL:https://api.weixin.qq.com/card/mpnews/gethtml?access_token=TOKEN
#########欄位說明#########欄位 | 說明 |
---|
errcode | 錯誤碼,0為正常;40109:code數量超過100個 |
##errmsg | #錯誤訊息. |
exist_code | #已經成功存入的code。 |
not_exist_code | #沒有存入的code。 |
#
4.2 圖文訊息群發卡券支援開發者呼叫此介面取得卡券嵌入圖文訊息的標準格式程式碼,將回傳程式碼填入上傳圖文素材介面
#中content字段,即可取得嵌入卡券的圖文訊息素材。
特別注意:目前該介面僅支援填入非自訂code的卡券,自訂code的卡券需先進行code導入後呼叫。
介面呼叫請求說明{
"card_id":"p1Pj9jr90_SQRaVqYI239Ka1erkI"
}
參數說明##########參數 | 是否必須 | ##說明 |
---|
| POST資料 | 是 |
JSON資料 | access_token | 是 |
#呼叫介面憑證############# ##
POST資料######### {
"errcode":0,
"errmsg":"ok",
"content":"<iframeclass=\"res_iframecard_iframejs_editor_card\"data-src=\"http: \/\/mp.weixin.qq.com\/bizmall\/appmsgcard?action=show&biz=MjM5OTAwODk4MA%3D%3D&cardid=p1Pj9jnXTLf2nF7lccYScFUYqJ0&wechat_card_js=1#wechat_redirect\">"
}
參數名稱 | #必填 | 類型 | | ##類型 |
範例值描述 | | #card_id | | |
###否############string(32)############pFS7Fjg8kV1IdDz01r4SQwMkuCKc############卡券ID。 ################
傳回資料###### ####{
"action_name": "QR_CARD",
"action_info": {
"card": {
"card_id": "pFS7Fjg8kV1IdDz01r4SQwMkuCKc",
"code": "198374613512",
"openid": "oFS7Fjl0WsZ9AMZqrI80nbIq8xrA",
"expire_seconds": "1800",
"is_unique_code": false ,
"outer_str" : "12b"
}
}
}
參數名稱 | 描述 |
---|
##errcode | 錯誤碼 |
#errmsg | 錯誤訊息 |
content | 回傳一段html程式碼,可以直接嵌入圖文訊息的正文裡。即可以把這段程式碼嵌入上傳圖文訊息素材介面中的content欄位。 |
#
4.3 根據分組群發卡券訊息支援呼叫該介面向指定分組的用戶群發卡券訊息。詳情請見
根據分組進行群發介面
###目前該介面僅支援填入非自訂code的卡券,自訂code的卡券需先進行code導入後調用。 ######4.4 根據OpenID列表群發卡券訊息
支援根據OpenID群發原生卡券。訂閱號碼不可用,服務號認證後具備介面權限。詳情請見根據OpenID列表群發介面
目前介面僅支援填入非自訂code的卡券,自訂code的卡券需先進行code導入後調用。
4.5 客服訊息下發卡券
支援開發者呼叫該介面下發卡券。訂閱號碼不可用,服務號認證後可用。詳情請見客服介面-發送訊息
目前該介面僅支援填入非自訂code的卡券,自訂code的卡券需先進行code匯入後呼叫。
4.6 預覽介面
支援開發者呼叫該介面下發卡券。訂閱號碼不可用,服務號認證後可用。詳情請見預覽介面
#5 投放頻道資料統計
# #為方便開發者統計各管道的卡券投放數據,新增欄位outer_str(原outer_id)。將不同設值的outer_str(原outer_id)填入card_ext的json結構中,當使用者領取卡券時會將對應設值的outer_id帶入 領取事件##中,推至開發者伺服器。
範例: 在二維碼投放方式中設定outer_str為12b
#<xml> <ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<FriendUserName><![CDATA[FriendUser]]></FriendUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[user_get_card]]></Event>
<CardId><![CDATA[cardid]]></CardId>
<IsGiveByFriend>1</IsGiveByFriend>
<UserCardCode><![CDATA[12312312]]></UserCardCode>
<OuterStr>12b</OuterStr>
</xml>
領取事件XML檔
HTTP请求方式: POST
URL:https://api.weixin.qq.com/card/testwhitelist/set?access_token=TOKEN
6 設定測試白名單
介面說明
由於卡券有審核要求,為方便公眾號調試,可以設定一些測試帳號,這些帳號可領取未通過審核的卡券,體驗整個流程。
開發者註意事項
#1.同時支援「openid」、「username」兩種字段設定白名單,總數上限為10個。
#2.設定測試白名單介面為全量設置,即測試名單發生變化時需調用該接口重新傳入所有測試人員的ID.
3.白名單用戶領取該卡券時將無視卡券失效狀態,請開發者註意。
介面呼叫請求說明
#{
"openid": [
"o1Pj9jmZvwSyyyyyyBa4aULW2mA",
"o1Pj9jmZvxxxxxxxxxULW2mA"
],
"username": [
"afdvvf",
"abcd"
]
}
參數說明
參數 | 是否必須 | ##說明 |
---|
| access_token | 是 |
#呼叫介面憑證 | | |
################### ########POST資料############是#############Json資料############ ##
POST資料
{
"errcode":0,
"errmsg":"ok"
}
###參數說明#######參數名稱 | 必填 | ##類型 | #範例值 | 描述 |
---|
#openid | #否 | string(20) | o1Pj9jmZvwSyyyyyyBa4aULW2mA | ###測試的openid清單。 |
username | | ##string(32) | eddy | 測試的微訊號清單。 |
#
####回傳說明######rrreee參數名稱 | 描述 |
---|
##errcode | 錯誤碼,0為正常。 |
errmsg | #錯誤訊息。 |