微信搖一搖紅包介紹說明

2019-03-14 12:00 更新

目錄

搖一搖紅包說明

功能說明

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

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

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


用戶側(cè)交互流程

流程圖1
 流程圖2

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

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

紅包預(yù)下單接口

接口說明

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

接口調(diào)用說明

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

請(qǐng)求參數(shù)說明

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

NMTM67VS

String(32)隨機(jī)字符串,不長(zhǎng)于32位
簽名signC380BEC2BFD727A4B68451335

19F3AD6

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

請(qǐng)求示例

<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ā)財(cái) ]]></wishing>     
<act_name><![CDATA[ 新年紅包 ]]></act_name>     
<remark><![CDATA[新年紅包 ]]></remark>     
<risk_cntl><![CDATA[NORMAL]]></risk_cntl>     
<nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str>
</xml>
 

返回?cái)?shù)據(jù)說明

返回格式為xml

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

以下字段在return_code為SUCCESS的時(shí)候有返回

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

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

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

vC4Xv01ofX4uWOqqTc9kGJYhkq5st5ucrXKxkjnC/UuvLeuhdIfiYgi4hJuJ95qjt9mwxqSBEmjGbZlL+sqM9upoWsEjup28KPvaVrdao/Hg6WqyqUL5E2zPHfM1sb1w==

Stringsp_ticket,一個(gè)普通紅包對(duì)應(yīng)一個(gè)ticket
紅包訂單號(hào)detail_id0000000666201504290000042120 紅包內(nèi)部訂單號(hào)
發(fā)送時(shí)間 20150429203444 紅包發(fā)放時(shí)間

成功示例

<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)繁忙,請(qǐng)稍后再試.]]></return_msg> 	
<result_code><![CDATA[FAIL]]></result_code> 	
<err_code><![CDATA[268458547]]></err_code> 	
<err_code_des><![CDATA[系統(tǒng)繁忙,請(qǐ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>

錯(cuò)誤碼

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

簽名算法

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

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

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

 舉例:
 假設(shè)傳送的參數(shù)如下:
 appid: wxd930ea5d5a258f4f
 mch_id: 10000100
 device_info: 1000
 Body: test
 nonce_str: ibuaiVcKdpRxkhJA
 第一步:對(duì)參數(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>

生成隨機(jī)數(shù)算法

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

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

商戶證書

1. 獲取商戶證書

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

證書文件說明:

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

2. 使用商戶證書

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

3. 商戶證書安全

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

創(chuàng)建紅包活動(dòng)

接口說明

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

接口調(diào)用說明

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

請(qǐng)求參數(shù)說明

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

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

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

請(qǐng)求示例

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"                            
}
 

返回?cái)?shù)據(jù)說明

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

示例

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

錄入紅包信息

接口說明

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

接口調(diào)用說明

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

請(qǐng)求參數(shù)說明

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

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

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

請(qǐng)求示例

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=="
     }
   ]
}

返回?cái)?shù)據(jù)說明

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

示例

{	     
"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 
}

設(shè)置紅包活動(dòng)抽獎(jiǎng)開關(guān)

接口說明

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

接口調(diào)用說明

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

請(qǐng)求參數(shù)說明

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

返回?cái)?shù)據(jù)說明

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

示例

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

紅包JSAPI

接口說明

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

引入BeaconShakehbJsBridge'

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

API詳細(xì)說明

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

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

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

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

Sign生成規(guī)則

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

請(qǐng)求示例

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

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

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

紅包綁定用戶事件通知

接口說明

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

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

推送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ā)者微信號(hào)。
FromUserName紅包綁定用戶(一個(gè)OpenID)。
CreateTime消息創(chuàng)建時(shí)間 (整型)。
MsgType消息類型,event
Event事件類型,ShakearoundLotteryBind
LotteryId紅包活動(dòng)id
ticket紅包ticket
money紅包金額
BindTime紅包綁定時(shí)間

紅包查詢接口

接口說明

查詢紅包活動(dòng)信息。

接口調(diào)用說明

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


請(qǐng)求參數(shù)說明

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

返回?cái)?shù)據(jù)說明

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

示例

{     	
"errcode":0,    		
"errmsg":""
result:{
    lottery_id:” 9sQqUrmdFaY6v9z8TartOA”,
    title:”活動(dòng)標(biāo)題”,
    desc:”活動(dòng)描述”,
    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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)