插件版本號(hào):1.4.13(更新時(shí)間 2021/06/23)
【推薦】如希望每次默認(rèn)使用最新版本,可在app.json 文件配置"version": "1.4.13";
如需指定版本,可點(diǎn)擊查看更新記錄選擇版本
在小程序配置app.json 文件中加入如下配置:
{
"plugins": {
"sendCoupon": {
"version": "1.4.13",
"provider": "wxf3f436ba9bd4be7b"
}
}
}
1)在小程序頁(yè)面配置文件中加入如下配置,引入send-coupon組件:
{
"usingComponents": {
"send-coupon": "plugin://sendCoupon/send-coupon"
}
}
2)在小程序頁(yè)面的WXML模板中加入如下代碼,并填入相關(guān)字段,字段說明參見小程序發(fā)券插件字段說明表
//page.wxml
<send-coupon
bind:sendcoupon="getcoupon"
bind:userconfirm="redirectuser"
send_coupon_params="{{send_coupon_params}}"
sign="{{sign}}"
send_coupon_merchant="{{send_coupon_merchant}}"
suggest_immediate_use="{{suggest_immediate_use}}"
>
<!-- 內(nèi)部為自定義代碼,按鈕點(diǎn)擊部分的代碼寫在這里 -->
<!-- [[以下為示例代碼 -->
<view class="text">領(lǐng)券</view>
<!-- 以上為示例代碼 ]] -->
</send-coupon>
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
商家發(fā)券事件(自定義事件) | bind:sendcoupon / bindsendcoupon 【原接口為bindcustomevent,建議更新原接口名稱】 |
string | 否 | 插件在用戶點(diǎn)擊后成功獲取到優(yōu)惠券信息觸發(fā)的事件函數(shù)名稱,使用方法可參考《自定義組件文檔》的自定義組件觸發(fā)事件 注意:查詢到優(yōu)惠券信息不代表用戶一定能夠看到優(yōu)惠券彈窗或者發(fā)券成功,如果參數(shù)send_coupon_result中沒有券發(fā)送成功(券狀態(tài)碼不為SUCCESS),用戶會(huì)被告知領(lǐng)券失敗 |
用戶確認(rèn)領(lǐng)券事件(自定義事件) | bind:userconfirm / binduserconfirm | string | 否 | 用戶點(diǎn)擊彈窗中的確認(rèn)收券按鈕后觸發(fā)的事件函數(shù)名稱,可用作跳轉(zhuǎn)到優(yōu)惠券的使用界面 |
提示立即使用 | suggest_immediate_use
|
boolean | 否 | 提示優(yōu)惠券是否要立即使用,如果為true,彈窗中的確認(rèn)按鈕內(nèi)的文字為“立即使用”,如果為false,則顯示為“我知道了”,參數(shù)默認(rèn)值為false 注意:此參數(shù)對(duì)用戶是否立即使用沒有約束力,需要商家在用戶確認(rèn)領(lǐng)券事件內(nèi)自行約束。如果此參數(shù)設(shè)為true,請(qǐng)?jiān)赽induserconfirm事件中引導(dǎo)用戶使用優(yōu)惠券 |
+發(fā)券參數(shù) | send_coupon_params | array | 是 | 發(fā)券參數(shù),一次最多10張 示例值: 發(fā)一張券JSON: "send_coupon_params":[ { "stock_id": "98065001", "out_request_no": "89560002019101000121" } ] 發(fā)多張券JSON: "send_coupon_params":[ { "stock_id": "98065001", "out_request_no": "89560002019101000121" }, { "stock_id": "98065001", "out_request_no": "89560002019101000122" } ] |
簽名 | sign | string[1,64] |
是 | 簽名計(jì)算值 簽名方式:HMAC-SHA256。 簽名規(guī)則:詳見《V2簽名規(guī)則》 參與簽名字段說明 注意:為了安全,簽名必須在后臺(tái)服務(wù)器計(jì)算,禁止在小程序中計(jì)算,簽名key為微信支付apiv2的signkey 示例值:9A0A8659F005D6984697E2CA0A9CF3B79A0A8659F005D6984697E2CA0A9CF3B7 |
發(fā)券商戶號(hào) | send_coupon_merchant | string[8,15] | 是 | 發(fā)券商戶號(hào) 示例值:10016226 |
注意:
1、當(dāng)存在發(fā)放一張或多張券的情況下,參數(shù)名使用下標(biāo)表示,下標(biāo)從0開始:
發(fā)放一張券示例值:out_request_no0=abc123&send_coupon_merchant=10016226&stock_id0=1234567&key=xxxxx
發(fā)放多張券示例值:out_request_no0=abc123&out_request_no1=123abc&send_coupon_merchant=10016226&stock_id0=1234567&stock_id1=2345678&key=xxxxx
2、當(dāng) 批次是發(fā)放時(shí)指定code的類型的情況下:
發(fā)放一張券示例值:coupon_code0=asdsada&out_request_no0=abc123&send_coupon_merchant=10016226&stock_id0=1234567&key=xxxxx
發(fā)放多張券示例值:coupon_code0=asdsada&coupon_code1=asdsada&out_request_no0=abc123&out_request_no1=123abc&send_coupon_merchant=10016226&stock_id0=1234567&stock_id1=2345678&key=xxxxx
3、如果遇到簽名失敗,請(qǐng)按照下面幾項(xiàng)進(jìn)行檢查
1)簽名方式一定要用 HMAC-SHA256
2)key需要使用apiv2的signkey,設(shè)置路徑:【微信商戶平臺(tái)(www.tg885.com)-->賬戶中心-->賬戶設(shè)置-->API安全-->設(shè)置API密鑰】
3)確認(rèn)key的正確性,例如是否是本商戶號(hào)下的key
4)簽名源串請(qǐng)按照示例參數(shù)格式進(jìn)行拼接,參數(shù)順序按照字典序排列
5)參數(shù)名嚴(yán)格區(qū)分大小寫
6)更多規(guī)則詳見《V2簽名規(guī)則》
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
發(fā)券商戶號(hào) | send_coupon_merchant | string[8,15] | 是 | 發(fā)券商戶號(hào) 示例值:10016226 |
批次號(hào) | stock_id{n} | string[1,20] | 是 | 微信支付券批次id,{n}為下標(biāo),從0開始,例如stock_id0 示例值:123 |
發(fā)券憑證 | out_request_no{n} | string[1,64] | 是 | 發(fā)券憑證,{n}為下標(biāo),從0開始,例如out_request_no0。 可包含英文字母,數(shù)字,|,_,*,-等內(nèi)容,不允許出現(xiàn)其他不合法符號(hào),需在單個(gè)批次單個(gè)用戶下確保唯一性 示例值:1234567 |
券code | coupon_code{n} | string[1,128] | 條件選填 | 券code,如果批次是發(fā)放時(shí)指定code的類型,則發(fā)券時(shí)必填coupon_code {n}為下標(biāo),從0開始,例如stock_id0 示例值:asdsada |
自定義領(lǐng)取時(shí)間 | customize_send_time | string[1,32] | 否 | 商家券在商戶業(yè)務(wù)系統(tǒng)里的實(shí)際領(lǐng)取時(shí)間,僅針對(duì)有設(shè)置相對(duì)領(lǐng)取時(shí)間的批次生效(即批次有設(shè)置“生效后N天內(nèi)有效”或“領(lǐng)取后N天開始生效”時(shí)間字段)。傳入后,將使用傳入的時(shí)間點(diǎn),做為商家券領(lǐng)取時(shí)間來計(jì)算有效期,而非用戶在微信支付系統(tǒng)中點(diǎn)擊領(lǐng)取的時(shí)間 。 遵循rfc3339標(biāo)準(zhǔn)格式,格式為yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出現(xiàn)在字符串中,表示time元素的開頭,HH:mm:ss表示時(shí)分秒,TIMEZONE表示時(shí)區(qū)(+08:00表示東八區(qū)時(shí)間,領(lǐng)先UTC 8小時(shí),即北京時(shí)間)。例如:2015-05-20T13:29:35.+08:00表示,北京時(shí)間2015年5月20日 13點(diǎn)29分35秒。 目前只支持商家券、支付券暫不支持 示例值:2015-05-20T13:29:35+08:00 |
制券商戶號(hào) | create_coupon_merchant{n} | string[8,15] | 否 | 創(chuàng)建支付券的商戶號(hào);
{n}為下標(biāo),從0開始,例如create_coupon_merchant0。
如果是支付券,則是必填項(xiàng);
商家券無需填寫 示例值:10016226 |
javascript
//page.js
Page({
// 此函數(shù)名稱可以自定義,跟bindcustomevent綁定的保持一致
getcoupon: function(params) {
// 插件返回信息在params.detail
console.log('getcoupon', params)
}
})
如果事件綁定正確,在用戶點(diǎn)擊領(lǐng)券后,會(huì)觸發(fā)領(lǐng)券事件,得到返回之后會(huì)調(diào)用getcoupon函數(shù)。
從回調(diào)函數(shù)參數(shù)detail中,獲取參數(shù)。
參數(shù)名 | 變量 | 類型[長(zhǎng)度限制] | 必填 | 描述 |
---|---|---|---|---|
外層錯(cuò)誤碼 | errcode | string[1,32] |
是 | 返回整體錯(cuò)誤碼 |
錯(cuò)誤信息 | msg | string[1,128] |
是 | 返回整體錯(cuò)誤信息 |
+發(fā)券結(jié)果 | send_coupon_result | object | 是 | 發(fā)券結(jié)果,包含需要發(fā)放的每張券的結(jié)果信息,是否成功或失敗原因 |
javascript
//獲取代碼示例
Page({
data: {
// ...
},
onLoad: function() {
// ...
},
getcoupon: function(params) {
console.log('getcoupon', params)
console.log('detail', params.detail)
}
})
Detail中errcode返回錯(cuò)誤碼
錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|
OK | 調(diào)用成功 | 接口調(diào)用成功,具體發(fā)券結(jié)果(是否發(fā)券成功)需查看發(fā)券結(jié)果(send_coupon_result)中的參數(shù) |
PARAM_ERROR | 參數(shù)錯(cuò)誤 | 參數(shù)錯(cuò)誤,請(qǐng)開發(fā)者查看msg中具體的錯(cuò)誤信息并進(jìn)行修復(fù)處理 |
USER_NOT_EXISTS | 登錄態(tài)獲取失效 | 引導(dǎo)用戶重試 |
USER_GET_FAILED | 登錄態(tài)獲取失敗 | 報(bào)錯(cuò),提示用戶稍后操作 |
SIGN_ERROR | 簽名錯(cuò)誤 | 請(qǐng)開發(fā)者檢查簽名正確性 |
SYSTEMERROR | 發(fā)券超時(shí) | 提示報(bào)錯(cuò),提示用戶稍后操作 |
FREQUENCY_LIMITED | 發(fā)券頻率過高 | 提示報(bào)錯(cuò),引導(dǎo)用戶稍后操作。例如“活動(dòng)太過火爆,請(qǐng)稍后再領(lǐng)取” |
發(fā)券結(jié)果(send_coupon_result)中的錯(cuò)誤碼
錯(cuò)誤碼 | 描述 | 解決方案 |
---|---|---|
SUCCESS | 該張券發(fā)券成功 | 提示用戶領(lǐng)取成功/改變前端領(lǐng)券按鈕狀態(tài) |
FAILED | 該張券發(fā)券失敗,查看message中的具體錯(cuò)誤信息 | 提示用戶領(lǐng)券失敗,請(qǐng)開發(fā)者查看message中具體的錯(cuò)誤信息并進(jìn)行修復(fù)處理 |
NOTENOUGH | 總預(yù)算用完 | 提示用戶領(lǐng)券失敗,請(qǐng)?jiān)黾优晤A(yù)算 |
DAYLIMIT | 用戶達(dá)到單天限領(lǐng) | 提示用戶領(lǐng)券失敗,如需繼續(xù)發(fā)放,可調(diào)整該批次單天發(fā)放上限 |
NATURELIMIT | 用戶自然人限領(lǐng) | 提示用戶領(lǐng)券失敗,可提示用戶檢查其所有微信號(hào)領(lǐng)券情況,并請(qǐng)商戶留意刷單風(fēng)險(xiǎn) |
MAXQUOTA | 用戶領(lǐng)取張數(shù)達(dá)到上限 | 提示用戶領(lǐng)券失敗,該用戶領(lǐng)取數(shù)量已達(dá)上限 |
DUPREQUEST | 已通過該發(fā)券憑證給用戶發(fā)券 | 提示用戶領(lǐng)取成功/改變前端領(lǐng)券按鈕狀態(tài) |
NOTRUNNING | 批次狀態(tài)非運(yùn)營(yíng)中 | 提示用戶領(lǐng)券失敗,并檢查批次狀態(tài)
|
EXPIRED | 該批次已過期 | 請(qǐng)更換在有效期內(nèi)的批次,再進(jìn)行發(fā)放 |
NOTMONEY | 賬戶余額不足 | 請(qǐng)聯(lián)系制券商戶進(jìn)行充值 |
USERLIMIT | 用戶已超限領(lǐng)額度 | 提示用戶已超限領(lǐng)額度 |
FREQUENCYLIMIT | 超過頻率限制 | 可稍后重試 |