微信搖一搖紅包介紹說明

2019-03-14 12:00 更新

目錄

搖一搖紅包說明

功能說明

搖一搖周邊紅包接口是為線下商戶提供的發(fā)紅包功能。用戶可以在商家門店等線下場所通過搖一搖周邊領(lǐng)取商家發(fā)放的紅包,在線上轉(zhuǎn)發(fā)分享無效。

開發(fā)者可通過接口開發(fā)搖一搖紅包功能,特點包括:

  1. 可選擇使用模板加載頁或自定義Html5頁面調(diào)起微信原生紅包頁面(詳見創(chuàng)建紅包活動中use_template字段,1為使用模板,2為使用自定義Html5頁面)
  2. 原生紅包頁面拆紅包,無需通過公眾號消息下發(fā)
  3. 提供關(guān)注公眾號能力,用戶可自行選擇是否關(guān)注(裂變紅包分享時無效)
  4. 完成頁面可配置跳轉(zhuǎn)鏈接,可跳轉(zhuǎn)商戶的其他自定義Html5頁面
  5. 同一個用戶在單個紅包活動中只能領(lǐng)取1次紅包


用戶側(cè)交互流程

流程圖1
 流程圖2

紅包組件接口調(diào)用流程

  1. 申請紅包接口權(quán)限:登錄搖一搖周邊商戶后臺https://zb.weixin.qq.com ,進入開發(fā)者支持,申請開通搖一搖紅包組件接口;
  2. 紅包預下單:調(diào)用微信支付的api進行紅包預下單,告知需要發(fā)放的紅包金額,人數(shù),生成紅包ticket;
  3. 創(chuàng)建活動并錄入紅包信息:調(diào)用搖周邊平臺的api錄入創(chuàng)建紅包活動并錄入信息,傳入預下單時生成的紅包ticket;
  4. 調(diào)用jsapi抽紅包:在搖出的頁面中通過調(diào)用jsapi抽紅包,抽中紅包的用戶可以拆紅包;
  5. 調(diào)用以上接口時,紅包提供商戶和紅包發(fā)放商戶公眾號要求一致。
 說明:
  紅包提供商戶:紅包預下單接口傳入的參數(shù)wxappid所代表的商戶
  紅包發(fā)放商戶:調(diào)用紅包接口創(chuàng)建紅包活動、錄入紅包信息、發(fā)放紅包的商戶公眾號

紅包預下單接口

接口說明

設置單個紅包的金額,類型等,生成紅包信息。預下單完成后,需要在72小時內(nèi)調(diào)用jsapi完成抽紅包的操作。(紅包過期失效后,資金會退回到商戶財付通帳號。)

接口調(diào)用說明

服務器端調(diào)用
http請求方式: POST
https://api.mch.weixin.qq.com/mmpaymkttransfers/hbpreorder
POST數(shù)據(jù)格式:XML
需要商戶證書

請求參數(shù)說明

參數(shù)字段是否必須示例值類型說明
隨機字符串nonce_str5K8264ILTKCH16CQ2502SI8Z

NMTM67VS

String(32)隨機字符串,不長于32位
簽名signC380BEC2BFD727A4B68451335

19F3AD6

String(32)生成簽名方式查看簽名算法
商戶訂單號mch_billno10000098201411111234567890String(28)商戶訂單號(每個訂單號必須唯一)組成: mch_id+yyyymmdd+10位一天內(nèi)不能重復的數(shù)字。接口根據(jù)商戶訂單號支持重入, 如出現(xiàn)超時可再調(diào)用。
商戶號mch_id10000098String(32)紅包提供者的商戶號(微信支付分配的商戶號)
公眾賬號appidwxappidwx8888888888888888String(32)紅包提供者公眾號的appid,對應頭像展示在紅包頁面
商戶名稱send_name天虹百貨String(32)紅包提供者名稱,展示在紅包頁面
紅包類型hb_typeNORMALString(16)NORMAL-普通紅包;GROUP-裂變紅包(可分享紅包給好友,無關(guān)注公眾號能力)。
總金額total_amount1000int總付款金額,單位分
紅包發(fā)放總?cè)藬?shù)total_num1int紅包發(fā)放總?cè)藬?shù),即總共有多少人可以領(lǐng)到該組紅包(包括分享者)。普通紅包填1,裂變紅包必須大于1。
紅包金額設置方式amt_typeALL_RANDString(32)紅包金額設置方式,只對裂變紅包生效。ALL_RAND—全部隨機
紅包祝福語wishing感謝您參加猜燈謎活動,祝您元宵節(jié)快樂String(16)紅包祝福語,展示在紅包頁面
活動名稱act_name猜燈謎搶紅包活動String(32)活動名稱,在不支持原生紅包的微信版本中展示在紅包消息
備注remark猜越多得越多,快來搶!String(32)備注信息,在不支持原生紅包的微信版本中展示在紅包消息
授權(quán)商戶號auth_mchid1000052601String(32)用于發(fā)紅包時微信支付識別搖周邊紅包,所有開發(fā)者統(tǒng)一填寫搖周邊平臺的商戶號:1000052601
授權(quán)商戶APPIDauth_appidwxbf42bd79c4391863String(32)用于發(fā)紅包時微信支付識別搖周邊紅包,所有開發(fā)者統(tǒng)一填寫搖周邊平臺的appid:wxbf42bd79c4391863
風控設置risk_cntlNORMALString(32)用于管控接口風險。具體值如下:NORMAL—正常情況;IGN_FREQ_LMT—忽略防刷限制,強制發(fā)放;IGN_DAY_LMT—忽略單用戶日限額限制,強制發(fā)放;IGN_FREQ_DAY_LMT—忽略防刷和單用戶日限額限制,強制發(fā)放;如無特殊要求,請設為NORMAL。若忽略某項風險控制,可能造成資金損失,請謹慎使用。

請求示例

<xml>     
<sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>     
<mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>     
<mch_id><![CDATA[10000097]]></mch_id>     
<wxappid><![CDATA[wxcbda96de0b165486]]></wxappid>     
<send_name><![CDATA[send_name]]></send_name>     
<hb_type><![CDATA[NORMAL]]></hb_type>     
<auth_mchid><![CDATA[10000098]]></auth_mchid>     
<auth_appid><![CDATA[wx7777777]]></auth_appid>     
<total_amount><![CDATA[200]]></total_amount>     
<amt_type><![CDATA[ALL_RAND]]></amt_type>     
<total_num><![CDATA[3]]></total_num>     
<wishing><![CDATA[恭喜發(fā)財 ]]></wishing>     
<act_name><![CDATA[ 新年紅包 ]]></act_name>     
<remark><![CDATA[新年紅包 ]]></remark>     
<risk_cntl><![CDATA[NORMAL]]></risk_cntl>     
<nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str>
</xml>
 

返回數(shù)據(jù)說明

返回格式為xml

參數(shù)字段是否必須示例值類型說明
返回狀態(tài)碼return_codeSUCCESSString(16)SUCCESS/FAIL;此字段是通信標識,非交易標識,交易是否成功需要查看result_code來判斷
返回信息return_msg簽名失敗String(128)返回信息,如非空,為錯誤原因 簽名失敗 參數(shù)格式校驗錯誤

以下字段在return_code為SUCCESS的時候有返回

參數(shù)字段是否必須示例值類型說明
簽名signC380BEC2BFD727A4B6845133519F3AD6String(32)生成簽名方式查看 簽名算法
業(yè)務結(jié)果result_codeSUCCESSString(16)SUCCESS/FAIL
錯誤代碼err_codeSUCCESSString(32)錯誤碼信息
錯誤代碼描述err_code_des系統(tǒng)錯誤String(128)結(jié)果信息描述

以下字段在return_code 和result_code都為SUCCESS的時候有返回

參數(shù)字段是否必須示例值類型說明
商戶訂單號mch_billno10000098201411111234567890String(28)商戶訂單號(每個訂單號必須唯一)組成: mch_id+yyyymmdd+10位一天內(nèi)不能重復的數(shù)字。
商戶號mch_id10000098String(32)微信支付分配的商戶號
公眾賬號appidwxappidwx8888888888888888String(32)商戶appid
總金額total_amount1000int總付款金額,單位分
ticketsp_ticket2J6MtR+SlbZ8Ga4EDi64X5

vC4Xv01ofX4uWOqqTc9kGJYhkq5st5ucrXKxkjnC/UuvLeuhdIfiYgi4hJuJ95qjt9mwxqSBEmjGbZlL+sqM9upoWsEjup28KPvaVrdao/Hg6WqyqUL5E2zPHfM1sb1w==

Stringsp_ticket,一個普通紅包對應一個ticket
紅包訂單號detail_id0000000666201504290000042120 紅包內(nèi)部訂單號
發(fā)送時間 20150429203444 紅包發(fā)放時間

成功示例

<xml> 	
<return_code><![CDATA[SUCCESS]]></return_code> 	
<return_msg><![CDATA[發(fā)放成功.]]></return_msg> 
<result_code><![CDATA[SUCCESS]]></result_code> 
<err_code><![CDATA[0]]></err_code> 	
<err_code_des><![CDATA[發(fā)放成功.]]></err_code_des> 	
<mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno> 
<mch_id>10010404</mch_id> 	
<wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid> 	
<sp_ticket><![CDATA[0cca98c8c8e814883]]></sp_ticket> 
<total_amount>3</total_amount> 	
<detail_id><![CDATA[001001040420141117000004888]]></detail_id> 
<send_time><![CDATA[20150101080000]]></send_time> 
</xml>  

失敗示例

<xml>     
<return_code><![CDATA[FAIL]]></return_code> 	
<return_msg><![CDATA[系統(tǒng)繁忙,請稍后再試.]]></return_msg> 	
<result_code><![CDATA[FAIL]]></result_code> 	
<err_code><![CDATA[268458547]]></err_code> 	
<err_code_des><![CDATA[系統(tǒng)繁忙,請稍后再試.]]></err_code_des> 	
<mch_billno><![CDATA[0010010404201411170000046542]]></mch_billno> 	        
<mch_id>10010404</mch_id> 	
<wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid> 	 
<total_amount>3</total_amount> 
</xml>

錯誤碼

錯誤代碼描述解決方案
CA_ERROR請求未攜帶證書,或請求攜帶的證書出錯到商戶平臺下載證書,請求帶上證書后重試。
SIGN_ERROR商戶簽名錯誤按文檔要求重新生成簽名后再重試。
NO_AUTH沒有權(quán)限請聯(lián)系微信支付開通api權(quán)限。
FREQ_LIMIT受頻率限制請對請求做頻率控制
XML_ERROR請求的xml格式錯誤,或者post的數(shù)據(jù)為空檢查請求串,確認無誤后重試
PARAM_ERROR參數(shù)錯誤請查看err_code_des,修改設置錯誤的參數(shù)
OPENID_ERROROpenid錯誤根據(jù)用戶在商家公眾賬號上的openid,獲取用戶在紅包公眾賬號上的openid 錯誤。請核對商戶自身公眾號appid和用戶在此公眾號下的openid。
NOTENOUGH余額不足商戶賬號余額不足,請登錄微信支付商戶平臺充值
FATAL_ERROR重復請求時,參數(shù)與原單不一致使用相同商戶單號進行重復請求時,參數(shù)與第一次請求時不一致,請檢查并修改參數(shù)后再重試。
TIME _LIMITED企業(yè)紅包的發(fā)送時間受限請北京時間0:00-8:00時間之外觸發(fā)紅包贈送
SECOND_OVER_LIMITED企業(yè)紅包的按分鐘發(fā)放受限每分鐘發(fā)送紅包數(shù)量不得超過1800個;(可聯(lián)系微信支付wxhongbao@tencent.com調(diào)高額度)
DAY_ OVER_LIMITED企業(yè)紅包的按天日發(fā)放受限單個商戶日發(fā)送紅包數(shù)量不大于10000個;(可聯(lián)系微信支付wxhongbao@tencent.com調(diào)高額度)
MONEY_LIMIT紅包金額發(fā)放限制每個紅包金額必須大于1元,小于1000元(可聯(lián)系微信支付wxhongbao@tencent.com調(diào)高額度至4999元)
SEND_FAILED紅包發(fā)放失敗,請更換單號再重試。原商戶單號已經(jīng)失敗,如果還要對同一個用戶發(fā)放紅包, 需要更換新的商戶單號再試。
SYSTEMERROR系統(tǒng)繁忙,請再試。可用同一商戶單號再次調(diào)用,只會發(fā)放一個紅包。

簽名算法

第一步,設所有發(fā)送或者接收到的數(shù)據(jù)為集合M,將集合M內(nèi)非空參數(shù)值的參數(shù)按照參數(shù)名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

 特別注意以下重要規(guī)則:
 參數(shù)名ASCII碼從小到大排序(字典序);
 如果參數(shù)的值為空不參與簽名;
 參數(shù)名區(qū)分大小寫;
 驗證調(diào)用返回或微信主動通知簽名時,傳送的sign參數(shù)不參與簽名,將生成的簽名與該sign值作校驗。

第二步,在stringA最后拼接上key=商戶支付密鑰得到stringSignTemp字符串,并對stringSignTemp進行MD5運算,再將得到的字符串所有字符轉(zhuǎn)換為大寫,得到sign值signValue。

 舉例:
 假設傳送的參數(shù)如下:
 appid: wxd930ea5d5a258f4f
 mch_id: 10000100
 device_info: 1000
 Body: test
 nonce_str: ibuaiVcKdpRxkhJA
 第一步:對參數(shù)按照key=value的格式,并按照參數(shù)名ASCII字典序排序如下:stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
 第二步:拼接支付密鑰:
 stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"
 sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A9CF3B7"
 最終得到最終發(fā)送的數(shù)據(jù):
<xml> 	
<appid>wxd930ea5d5a258f4f</appid> 	
<mch_id>10000100</mch_id> 	
<device_info>1000</device_info> 	
<body>test</body> 	
<nonce_str>ibuaiVcKdpRxkhJA</nonce_str> 	
<sign>9A0A8659F005D6984697E2CA0A9CF3B7</sign> 	
</xml>

生成隨機數(shù)算法

微信支付API接口協(xié)議中包含固定nonce_str,主要保證簽名不可預測。我們推薦生成隨機數(shù)算法如下:

 調(diào)用隨機數(shù)生成函數(shù),將得到的值轉(zhuǎn)換為字符串。	

商戶證書

1. 獲取商戶證書

微信支付接口中,涉及資金回滾的接口會使用到商戶證書,包括退款、撤銷接口。商家在申請微信支付成功后,收到的相應郵件通知中,附件會包含接口需要用到的證書文件,有四個證書文件,分別說明如下。

證書文件說明:

證書附件描述使用場景備注
pkcs12格式(apiclient_cert.p12)包含了私鑰信息的證書文件,為p12(pfx)格式,由微信支付簽發(fā)給您用來標識和界定您的身份撤銷、退款申請API中調(diào)用windows上可以直接雙擊導入系統(tǒng),導入過程中會提示輸入證書密碼,證書密碼默認為您的商戶ID(如:10010000)
證書pem格式(apiclient_cert.pem)從apiclient_cert.p12中導出證書部分的文件,為pem格式,請妥善保管不要泄漏和被他人復制PHP等不能直接使用p12文件,而需要使用pem,為了方便您使用,已為您直接提供您也可以使用openssl命令來自己導出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem
證書密鑰pem格式(apiclient_key.pem)從apiclient_cert.p12中導出密鑰部分的文件,為pem格式PHP等不能直接使用p12文件,而需要使用pem,為了方便您使用,已為您直接提供您也可以使用openssl命令來自己導出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem
CA證書(rootca.pem)微信支付api服務器上也部署了證明微信支付身份的服務器證書,您在使用api進行調(diào)用時也需要驗證所調(diào)用服務器及域名的真實性該文件為簽署微信支付證書的權(quán)威機構(gòu)的根證書,可以用來驗證微信支付服務器證書的真實性部分工具已經(jīng)內(nèi)置了若干權(quán)威機構(gòu)的根證書,無需引用該證書也可以正常進行驗證,這里提供給您在未內(nèi)置所必須根證書的環(huán)境中載入使用

2. 使用商戶證書

apiclient_cert.p12是商戶證書文件,除PHP外的開發(fā)均使用此證書文件。
商戶如果使用.NET環(huán)境開發(fā),請確認Framework版本大于2.0,必須在操作系統(tǒng)上雙擊安裝證書apiclient_cert.p12后才能被正常調(diào)用。
商戶證書調(diào)用或安裝都需要使用到密碼,該密碼的值為微信商戶號(mchid)
PHP開發(fā)環(huán)境請使用商戶證書文件apiclient_cert.pem和apiclient_key.pem ,rootca.pem是CA證書。

3. 商戶證書安全

證書文件放在非web服務器虛擬目錄的文件夾下,防止被他人下載。商戶服務器要做好病毒和木馬防護工作,不被非法侵入者竊取證書文件。

創(chuàng)建紅包活動

接口說明

創(chuàng)建紅包活動,設置紅包活動有效期,紅包活動開關(guān)等基本信息,返回活動id

接口調(diào)用說明

服務器端調(diào)用
http請求方式: POST
URL: https://api.weixin.qq.com/shakearound/lottery/addlotteryinfo?access_token=ACCESSTOKEN&use_template=1&logo_url=LOGO_URL

請求參數(shù)說明

參數(shù)類型說明
access_tokenstringaccesstoken,以參數(shù)的形式拼裝在url后
use_templateint是否使用模板,1:使用,2:不使用,以參數(shù)的形式拼裝在url后。(模版即交互流程圖中的紅包加載頁,使用模板用戶不需要點擊可自動打開紅包;不使用模版需自行開發(fā)HTML5頁面,并在頁面調(diào)用紅包jsapi)
logo_urlstring使用模板頁面的logo_url,不使用模板時可不加。展示在搖一搖界面的消息圖標。圖片尺寸為120x120。

POST BODY:JSON格式的結(jié)構(gòu)體

參數(shù)類型說明
titlestring抽獎活動名稱(選擇使用模板時,也作為搖一搖消息主標題),最長6個漢字,12個英文字母。
descstring抽獎活動描述(選擇使用模板時,也作為搖一搖消息副標題),最長7個漢字,14個英文字母。
onoffint抽獎開關(guān)。0關(guān)閉,1開啟,默認為1
begin_timelong抽獎活動開始時間,unix時間戳,單位秒
expire_timelong抽獎活動結(jié)束時間,unix時間戳,單位秒,紅包活動有效期最長為91天
sponsor_appidstring紅包提供商戶公眾號的appid,需與預下單中的公眾賬號appid(wxappid)一致
totallong紅包總數(shù),紅包總數(shù)是錄入紅包ticket總數(shù)的上限,因此紅包總數(shù)應該大于等于預下單時紅包ticket總數(shù)。
jump_urlstring紅包關(guān)注界面后可以跳轉(zhuǎn)到第三方自定義的頁面
keystring開發(fā)者自定義的key,用來生成活動抽獎接口的簽名參數(shù),長度32位。使用方式見sign生成規(guī)則

請求示例

Content-Type: application/json Post Body:
{                                                            
 "title": "title",                           
 "desc": "desc",                             
 "onoff": 1,                                 
 "begin_time": 1428854400,                            
 "expire_time": 1428940800,                           
 "sponsor_appid": "wxxxxxxxxxxxxxx",
 "total": 10,
 "jump_url": JUMP_URL,     
 "key": "keyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"                            
}
 

返回數(shù)據(jù)說明

參數(shù)類型說明
errcodeint錯誤碼。0為成功,其他為失敗。詳細請參考錯誤碼表
errmsgstring錯誤信息
lottery_idstring生成的紅包活動id
page_idint生成的模板頁面ID

示例

{     
 "errcode":0,     
 "errmsg":"",     
 "lottery_id":"xxxxxxllllll", 
 "page_id":1, 
}

錄入紅包信息

接口說明

在調(diào)用"創(chuàng)建紅包活動"接口之后,調(diào)用此接口錄入紅包信息。注意,此接口每次調(diào)用,都會向某個活動新增一批紅包信息,如果紅包數(shù)少于100個,請通過一次調(diào)用添加所有紅包信息。如果紅包數(shù)大于100,可以多次調(diào)用接口添加。請注意確保多次錄入的紅包ticket總的數(shù)目不大于創(chuàng)建該紅包活動時設置的total值。

接口調(diào)用說明

服務器端調(diào)用
http請求方式: POST
URL:https://api.weixin.qq.com/shakearound/lottery/setprizebucket?access_token=ACCESSTOKEN

請求參數(shù)說明

參數(shù)類型說明
access_tokenstringaccesstoken,以參數(shù)的形式拼裝在url后

POST BODY:JSON格式的結(jié)構(gòu)體

參數(shù)類型說明
lottery_idstring紅包抽獎id,來自addlotteryinfo返回的lottery_id
mchidstring紅包提供者的商戶號,,需與預下單中的商戶號mch_id一致
sponsor_appidstring紅包提供商戶公眾號的appid,需與預下單中的公眾賬號appid(wxappid)一致
prize_info_listjson數(shù)組紅包ticket列表,如果紅包數(shù)較多,可以一次傳入多個紅包,批量調(diào)用該接口設置紅包信息。每次請求傳入的紅包個數(shù)上限為100
ticketstring預下單時返回的紅包ticket,單個活動紅包ticket數(shù)量上限為100000個,可添加多次。

請求示例

Content-Type: application/json Post Body:
{     
"lottery_id": "xxxxxxllllll",     
"mchid": "10000098",     
"sponsor_appid": "wx8888888888888888",   
"prize_info_list": [         
     {            
   "ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g=="
     },
     {
   "ticket": "v1|fOhNUTap1oepSm5ap0hx1gmATM\/QX\/xn3sZWL7K+5Z10sbV5\/mZ4SwxwxbK2SPV32eLRvjd4ww1G3H5a+ypqRrySi+4oo97y63KoEQbRCPjbkyQBY8AYVyvD40V2b9slTQCm2igGY98mPe+VxZiayQ=="
     }
   ]
}

返回數(shù)據(jù)說明

參數(shù)類型說明
errcodeint錯誤碼。0為成功,其他為失敗。詳細請參考錯誤碼表
errmsgstring錯誤信息
repeat_ticket_listarray重復使用的ticket列表,如為空,將不返回
expire_ticket_listarray過期的ticket列表,如為空,將不返回
invalid_amount_ticket_listarray金額不在大于1元,小于1000元的ticket列表,如為空,將不返回
success_numint成功錄入的紅包數(shù)量
wrong_authmchid_ticket_listarray原因:生成紅包的時候,授權(quán)商戶號auth_mchid和auth_appid沒有寫搖周邊的商戶號
invalid_ticket_listarrayticket解析失敗,可能有錯別字符或不完整

示例

{	     
"errcode":0,     
"errmsg":"",     
"repeat_ticket_list":[         
     {            
"ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g=="                       
     },
     {
"ticket":"v1|ZiPs2l0zzXCsdfwe45dxCdHiukOdz/V/zQ/89xcnC5XnT+e47/q1FJjwCO4frSjzOxAEzJ7k2CtAg1pmcShvkChBWzc45dDGC32Dcxx4DGxczjDCGsdjowe9iHuaEn0WAO+GswFOlDYWg1ngvrRYnCY3g=="         	}    		
     } 
  ], 	
"success_num":100 
}

設置紅包活動抽獎開關(guān)

接口說明

開發(fā)者實時控制紅包活動抽獎的開啟和關(guān)閉。注意活動抽獎開關(guān)只在紅包活動有效期之內(nèi)才能生效,如果不能確定紅包活動有效期,請盡量將紅包活動有效期的范圍設置大。

接口調(diào)用說明

服務器端調(diào)用
http請求方式: Get
URL:https://api.weixin.qq.com/shakearound/lottery/setlotteryswitch?access_token=ACCESSTOKEN&lottery_id=LOTTERYID&onoff=1

請求參數(shù)說明

參數(shù)類型說明
access_tokenstringaccesstoken,以參數(shù)的形式拼裝在url后
lottery_idstring紅包抽獎id,來自addlotteryinfo返回的lottery_id
onoffint活動抽獎開關(guān),0:關(guān)閉,1:開啟

返回數(shù)據(jù)說明

參數(shù)類型說明
errcodeint錯誤碼。0為成功,其他為失敗。詳細請參考錯誤碼表
errmsgstring錯誤信息

示例

{     	
"errcode":0,    		
"errmsg":"" 	
}

紅包JSAPI

接口說明

在第三方頁面中,通過調(diào)用JSAPI來觸發(fā)用戶抽紅包的操作,如果抽到紅包,會呼出微信的原生紅包頁面。用戶只有通過搖周邊的入口才能抽中紅包。每個用戶在一個活動抽獎id下最多只能中一個紅包。創(chuàng)建紅包活動時,選擇使用模板頁面的開發(fā)者不需要調(diào)用該接口

引入BeaconShakehbJsBridge'

<scripttype="text/javascript"src="http://zb.weixin.qq.com/app/shakehb/BeaconShakehbJsBridge.js">
</script>

API詳細說明

抽紅包JS API調(diào)用與微信的JS API調(diào)用格式一致,如下:

函數(shù):invoke
用途:主動調(diào)用指定API
通用形式:BeaconShakehbJsBridge.invoke("API名稱", {調(diào)用參數(shù)});
API 名稱:jumpHongbao
參數(shù):openid、lottery_id、noncestr、sign
回調(diào)函數(shù):無

調(diào)用參數(shù)說明

參數(shù)說明
openid用戶openid。必填
lottery_id紅包抽獎id,必填,來自addlotteryinfo返回的lottery_id
noncestr隨機字符串,不長于32位。必填
sign簽名,詳見下面的簽名生成規(guī)則

Sign生成規(guī)則

1.除sign字段外,所有參數(shù)按照字段名的ASCII碼從小到大排序后(字典序),使用URL鍵值對的格式(即Param1=value1&Param2=value2…)拼接而成簽名原始串,空值不參與簽名組串。
2.簽名原始串中,字段名和字段值都采用原始值,不進行URL轉(zhuǎn)義。 
3.簽名原始串末尾補上key參數(shù)(通過“創(chuàng)建紅包活動”接口設置的key),如 Param1=value1&Param2=value2…&key=keyvalue 
4.得到的字符串進行MD5,并轉(zhuǎn)換為大寫。即                  sign=ToUpperCase(MD5(Param1=value1&Param2=value2…&key=keyvalue))
5.出于安全考慮,開發(fā)者必須在服務器端實現(xiàn)生成簽名的邏輯。

請求示例

BeaconShakehbJsBridge.ready(function(){
//跳轉(zhuǎn)到抽紅包頁面
     BeaconShakehbJsBridge.invoke('jumpHongbao',{
     lottery_id:'LOTTERY_ID ',
     noncestr:'378507853820041854759013507217',
     openid:'OPENID',
     sign:'SIGN'
});
});

用戶側(cè)錯誤碼說明

提示文案錯誤碼錯誤信息解決方案
出錯了5搖周邊ticket過期檢查是不是從微信搖一搖進入
出錯了11002搖一搖ticket不存在檢查是不是從微信搖一搖進入
出錯了11003無效的搖一搖ticket檢查是不是從微信搖一搖進入
出錯了11004獲取商戶appid失敗檢查是不是從微信搖一搖進入
出錯了11005搖周邊頻率檢查失敗檢查是不是從微信搖一搖進入
出錯了11009系統(tǒng)異常請重試
出錯了11010隨機字符串長度過長對自定義頁面時調(diào)jsapi參數(shù)校驗出錯,請檢查
出錯了11011LotteryID解析失敗對自定義頁面時調(diào)jsapi參數(shù)校驗出錯,請檢查
出錯了11012簽名校驗失敗對自定義頁面時調(diào)jsapi參數(shù)校驗出錯,請檢查
出錯了11013openid無效對自定義頁面時調(diào)jsapi參數(shù)校驗出錯,請檢查
出錯了11014pass_ticket無效檢查是不是從微信搖一搖進入
出錯了12013綁定用戶和紅包失敗抽到紅包ticket后,微信支付返回的錯誤
出錯了12014微信支付查詢紅包ticket失敗抽到紅包ticket后,微信支付返回的錯誤
出錯了12015抽獎操作頻率過高請重試
出錯了12019page_id無效使用模版時校驗出錯

紅包綁定用戶事件通知

接口說明

用戶進入紅包頁面時,后臺會將一個紅包ticket和用戶openid綁定,微信會把這個事件推送到開發(fā)者填寫的URL(登錄公眾平臺進入開發(fā)者中心設置)。推送內(nèi)容包含用戶openid,紅包活動id,紅包ticket、金額以及紅包綁定時間。

注:紅包綁定用戶不等同于用戶領(lǐng)取紅包。用戶進入紅包頁面后,有可能不拆紅包,但該紅包ticket已被綁定,不能再被其他用戶綁定,過期后會退回商戶財付通賬戶。

推送XML數(shù)據(jù)包示例

<xml> 	
<ToUserName><![CDATA[toUser]]></ToUserName> 	
<FromUserName><![CDATA[fromUser]]></FromUserName> 
<CreateTime>1442824314</CreateTime> 
<MsgType><![CDATA[event]]></MsgType> 	
<Event><![CDATA[ShakearoundLotteryBind]]></Event> 	
<LotteryId><![CDATA[lotteryid]]></LotteryId> 	
<Ticket><![CDATA[ticket]]></Ticket> 	
<Money>88</Money> 	
<BindTime>1442824313</BindTime> 
</xml>  


調(diào)用參數(shù)說明

字段說明
ToUserName開發(fā)者微信號。
FromUserName紅包綁定用戶(一個OpenID)。
CreateTime消息創(chuàng)建時間 (整型)。
MsgType消息類型,event
Event事件類型,ShakearoundLotteryBind
LotteryId紅包活動id
ticket紅包ticket
money紅包金額
BindTime紅包綁定時間

紅包查詢接口

接口說明

查詢紅包活動信息。

接口調(diào)用說明

服務器端調(diào)用
http請求方式: Get
URL:https://api.weixin.qq.com/shakearound/lottery/querylottery?access_token=ACCESSTOKEN&lottery_id=LOTTERYID


請求參數(shù)說明

參數(shù)類型說明
access_tokenstringaccesstoken,以參數(shù)的形式拼裝在url后
lottery_idstring紅包抽獎id,來自addlotteryinfo返回的lottery_id

返回數(shù)據(jù)說明

參數(shù)類型說明
errcodeint錯誤碼。0為成功,其他為失敗。詳細請參考錯誤碼表
errmsgstring錯誤信息
titlestring抽獎活動名稱(選擇使用模板時,也作為搖一搖消息主標題),最長6個漢字,12個英文字母。
descstring抽獎活動描述(選擇使用模板時,也作為搖一搖消息副標題),最長7個漢字,14個英文字母。
onoffint抽獎開關(guān)。0關(guān)閉,1開啟,默認為1
begin_timelong抽獎活動開始時間,unix時間戳,單位秒
expire_timelong抽獎活動結(jié)束時間,unix時間戳,單位秒,紅包活動有效期最長為91天
sponsor_appidstring紅包提供商戶公眾號的appid
appidstring創(chuàng)建活動的開發(fā)者appid
prize_countlong已錄入的紅包總數(shù)
prize_count_limitlong創(chuàng)建活動時預設的錄入紅包ticket數(shù)量上限
jump_urlstring紅包關(guān)注界面后可以跳轉(zhuǎn)到第三方自定義的頁面
expired_prizeslong過期紅包ticket數(shù)量
drawed_prizeslong已發(fā)放的紅包ticket數(shù)量
available_prizeslong可用的紅包ticket數(shù)量
expired_valuelong已過期的紅包金額總和
drawed_valuelong已發(fā)放的紅包金額總和
available_valuelong可用的紅包金額總和
 注意:調(diào)用SetPrizeBucket錄入紅包次數(shù)超過3000次的,或紅包總數(shù)超過1萬個的活動,目前暫不支持expired_prizes, drawed_prizes, available_prizes, expired_value, drawed_value, available_value這6個字段的查詢。需要查詢時,可以通過郵箱zhoubian@tencent.com聯(lián)系我們,也可加入開發(fā)者QQ交流群390582489。

示例

{     	
"errcode":0,    		
"errmsg":""
result:{
    lottery_id:” 9sQqUrmdFaY6v9z8TartOA”,
    title:”活動標題”,
    desc:”活動描述”,
    onoff:”1”,
    begin_time:” 1446360417”,
    expire_time:” 1446400000”,
    sponsor_appid:” wxf5b5e87a6a0fde94”,
    appid:”wx4428b5f51c53a582”,
    prize_count_limit:1000,
    prize_count: 810,
    jump_url:”http://www.qq.com/”,
    expired_prizes: 100,
    drawed_prizes:200,
    available_prizes:510,
    expired_value: 10000,
    drawed_value:20000,
    available_value: 51000
    }  
}


	
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號