注冊(cè)

微信小程序API模板消息,模板推送位置模板下發(fā)條件模板跳轉(zhuǎn)能力

2017-12-22
導(dǎo)讀:基于微信的通知渠道,我們?yōu)殚_(kāi)發(fā)者提供了可以高效觸達(dá)用戶(hù)的模板消息能力,以便實(shí)現(xiàn)服務(wù)的閉環(huán)并提供更佳的體驗(yàn)。 模板推送位置:服務(wù)通知 模板下發(fā)條件:用戶(hù)本人在微信體系...

基于微信的通知渠道,我們?yōu)殚_(kāi)發(fā)者提供了可以高效觸達(dá)用戶(hù)的模板消息能力,以便實(shí)現(xiàn)服務(wù)的閉環(huán)并提供更佳的體驗(yàn)。

模板推送位置:服務(wù)通知

模板下發(fā)條件:用戶(hù)本人在微信體系內(nèi)與頁(yè)面有交互行為后觸發(fā),詳見(jiàn)下發(fā)條件說(shuō)明

模板跳轉(zhuǎn)能力:點(diǎn)擊查看詳情僅能跳轉(zhuǎn)下發(fā)模板的該帳號(hào)的各個(gè)頁(yè)面

使用說(shuō)明


步驟一:獲取模板ID

有兩個(gè)方法可以獲取模版ID

  1. 通過(guò)模版消息管理接口獲取模版ID(詳見(jiàn)模版消息管理)
  2. 在微信公眾平臺(tái)手動(dòng)配置獲取模版ID

?登錄https://mp.weixin.qq.com獲取模板,如果沒(méi)有合適的模板,可以申請(qǐng)?zhí)砑有履0?,審核通過(guò)后可使用,詳見(jiàn)模板審核說(shuō)明

微信小程序API模板消息,模板推送位置模板下發(fā)條件模板跳轉(zhuǎn)能力

步驟二:頁(yè)面的<form/>組件,屬性report-submittrue時(shí),可以聲明為需發(fā)模板消息,此時(shí)點(diǎn)擊按鈕提交表單可以獲取formId,用于發(fā)送模板消息?;蛘弋?dāng)用戶(hù)完成支付行為,可以獲取prepay_id用于發(fā)送模板消息。

步驟三:調(diào)用接口下發(fā)模板消息(詳見(jiàn)發(fā)送模板消息

 

 

模版消息管理


1.獲取小程序模板庫(kù)標(biāo)題列表

 

接口地址

https://api.weixin.qq.com/cgi-bin/wxopen/template/library/list?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
access_token 接口調(diào)用憑證
offset offset和count用于分頁(yè),表示從offset開(kāi)始,拉取count條記錄,offset從0開(kāi)始,count最大為20。
count offset和count用于分頁(yè),表示從offset開(kāi)始,拉取count條記錄,offset從0開(kāi)始,count最大為20。

示例:

{
"offset":0,
"count":5
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

{
"errcode":0,
"errmsg":"ok",
"list":[
{"id":"AT0002","title":"購(gòu)買(mǎi)成功通知"},
{"id":"AT0003","title":"購(gòu)買(mǎi)失敗通知"},
{"id":"AT0004","title":"交易提醒"},
{"id":"AT0005","title":"付款成功通知"},
{"id":"AT0006","title":"付款失敗通知"}
],
"total_count":599
}

返回參數(shù)說(shuō)明:

參數(shù) 說(shuō)明
id 模板標(biāo)題id(獲取模板標(biāo)題下的關(guān)鍵詞庫(kù)時(shí)需要)
title 模板標(biāo)題內(nèi)容
total_count 模板庫(kù)標(biāo)題總數(shù)

2.獲取模板庫(kù)某個(gè)模板標(biāo)題下關(guān)鍵詞庫(kù)

接口地址

https://api.weixin.qq.com/cgi-bin/wxopen/template/library/get?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
access_token 接口調(diào)用憑證
id 模板標(biāo)題id,可通過(guò)接口獲取,也可登錄小程序后臺(tái)查看獲取

示例:

{
"id":"AT0002"
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

{
    "errcode": 0,
    "errmsg": "ok",
    "id": "AT0002",
    "title": "購(gòu)買(mǎi)成功通知",
    "keyword_list": [
        {
            "keyword_id": 3,
            "name": "購(gòu)買(mǎi)地點(diǎn)",
            "example": "TIT造艦廠"
        },
        {
            "keyword_id": 4,
            "name": "購(gòu)買(mǎi)時(shí)間",
            "example": "2016年6月6日"
        },
        {
            "keyword_id": 5,
            "name": "物品名稱(chēng)",
            "example": "咖啡"
        }
    ]
}

返回參數(shù)說(shuō)明:

參數(shù) 說(shuō)明
keyword_id 關(guān)鍵詞id,添加模板時(shí)需要
name 關(guān)鍵詞內(nèi)容
example 關(guān)鍵詞內(nèi)容對(duì)應(yīng)的示例

3.組合模板并添加至帳號(hào)下的個(gè)人模板庫(kù)

接口地址

https://api.weixin.qq.com/cgi-bin/wxopen/template/add?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
access_token 接口調(diào)用憑證
id 模板標(biāo)題id,可通過(guò)接口獲取,也可登錄小程序后臺(tái)查看獲取
keyword_id_list 開(kāi)發(fā)者自行組合好的模板關(guān)鍵詞列表,關(guān)鍵詞順序可以自由搭配(例如[3,5,4]或[4,5,3]),最多支持10個(gè)關(guān)鍵詞組合

示例:

{
"id":"AT0002", 
"keyword_id_list":[3,4,5] 
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

{
"errcode": 0,
"errmsg": "ok",
"template_id": "wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc"
}

返回參數(shù)說(shuō)明:

參數(shù) 說(shuō)明
template_id 添加至帳號(hào)下的模板id,發(fā)送小程序模板消息時(shí)所需

4.獲取帳號(hào)下已存在的模板列表

接口地址

https://api.weixin.qq.com/cgi-bin/wxopen/template/list?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
access_token 接口調(diào)用憑證
offset offset和count用于分頁(yè),表示從offset開(kāi)始,拉取count條記錄,offset從0開(kāi)始,count最大為20。最后一頁(yè)的list長(zhǎng)度可能小于請(qǐng)求的count
count offset和count用于分頁(yè),表示從offset開(kāi)始,拉取count條記錄,offset從0開(kāi)始,count最大為20。最后一頁(yè)的list長(zhǎng)度可能小于請(qǐng)求的count

示例:

{
"offset":0,
"count":1
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

{
"errcode": 0,
"errmsg": "ok",
"list": [
        {
            "template_id": "wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc",
            "title": "購(gòu)買(mǎi)成功通知",
            "content": "購(gòu)買(mǎi)地點(diǎn){{keyword1.DATA}}\n購(gòu)買(mǎi)時(shí)間{{keyword2.DATA}}\n物品名稱(chēng){{keyword3.DATA}}\n",
            "example": "購(gòu)買(mǎi)地點(diǎn):TIT造艦廠\n購(gòu)買(mǎi)時(shí)間:2016年6月6日\(chéng)n物品名稱(chēng):咖啡\n"
        }
    ]
}

返回參數(shù)說(shuō)明:

參數(shù) 說(shuō)明
list 帳號(hào)下的模板列表
template_id 添加至帳號(hào)下的模板id,發(fā)送小程序模板消息時(shí)所需
title 模板標(biāo)題
content 模板內(nèi)容
example 模板內(nèi)容示例

5.刪除帳號(hào)下的某個(gè)模板

接口地址

https://api.weixin.qq.com/cgi-bin/wxopen/template/del?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
access_token 接口調(diào)用憑證
template_id 要?jiǎng)h除的模板id

示例:

{
"template_id":"wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc"
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

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

 

發(fā)送模板消息


1. 獲取access_token

access_token是全局唯一接口調(diào)用憑據(jù),開(kāi)發(fā)者調(diào)用各接口時(shí)都需使用access_token,請(qǐng)妥善保存。access_token的存儲(chǔ)至少要保留512個(gè)字符空間。access_token的有效期目前為2個(gè)小時(shí),需定時(shí)刷新,重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。

公眾平臺(tái)的API調(diào)用所需的access_token的使用及生成方式說(shuō)明:

  1. 為了保密appsecrect,第三方需要一個(gè)access_token獲取和刷新的中控服務(wù)器。而其他業(yè)務(wù)邏輯服務(wù)器所使用的access_token均來(lái)自于該中控服務(wù)器,不應(yīng)該各自去刷新,否則會(huì)造成access_token覆蓋而影響業(yè)務(wù);
  2. 目前access_token的有效期通過(guò)返回的expire_in來(lái)傳達(dá),目前是7200秒之內(nèi)的值。中控服務(wù)器需要根據(jù)這個(gè)有效時(shí)間提前去刷新新access_token。在刷新過(guò)程中,中控服務(wù)器對(duì)外輸出的依然是老access_token,此時(shí)公眾平臺(tái)后臺(tái)會(huì)保證在刷新短時(shí)間內(nèi),新老access_token都可用,這保證了第三方業(yè)務(wù)的平滑過(guò)渡;
  3. access_token的有效時(shí)間可能會(huì)在未來(lái)有調(diào)整,所以中控服務(wù)器不僅需要內(nèi)部定時(shí)主動(dòng)刷新,還需要提供被動(dòng)刷新access_token的接口,這樣便于業(yè)務(wù)服務(wù)器在API調(diào)用獲知access_token已超時(shí)的情況下,可以觸發(fā)access_token的刷新流程。

開(kāi)發(fā)者可以使用AppID和AppSecret調(diào)用本接口來(lái)獲取access_token。AppID和AppSecret可登錄微信公眾平臺(tái)官網(wǎng)-設(shè)置-開(kāi)發(fā)設(shè)置中獲得(需要已經(jīng)綁定成為開(kāi)發(fā)者,且?guī)ぬ?hào)沒(méi)有異常狀態(tài))。AppSecret生成后請(qǐng)自行保存,因?yàn)樵诠娖脚_(tái)每次生成查看都會(huì)導(dǎo)致AppSecret被重置。注意調(diào)用所有微信接口時(shí)均需使用https協(xié)議。如果第三方不使用中控服務(wù)器,而是選擇各個(gè)業(yè)務(wù)邏輯點(diǎn)各自去刷新access_token,那么就可能會(huì)產(chǎn)生沖突,導(dǎo)致服務(wù)不穩(wěn)定。

接口地址:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

HTTP請(qǐng)求方式:

GET

參數(shù)說(shuō)明 :

參數(shù) 必填 說(shuō)明
grant_type 獲取access_token填寫(xiě)client_credential
appid 第三方用戶(hù)唯一憑證
secret 第三方用戶(hù)唯一憑證密鑰,即appsecret

返回參數(shù)說(shuō)明:

正常情況下,微信會(huì)返回下述JSON數(shù)據(jù)包給開(kāi)發(fā)者:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
參數(shù) 說(shuō)明
access_token 獲取到的憑證
expires_in 憑證有效時(shí)間,單位:秒

錯(cuò)誤時(shí)微信會(huì)返回錯(cuò)誤碼等信息,JSON數(shù)據(jù)包示例如下(該示例為AppID無(wú)效錯(cuò)誤):

{"errcode":40013,"errmsg":"invalid appid"}

2. 發(fā)送模板消息

接口地址:(ACCESS_TOKEN需換成上文獲取到的access_token)

https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN

HTTP請(qǐng)求方式:

POST

POST參數(shù)說(shuō)明:

參數(shù) 必填 說(shuō)明
touser 接收者(用戶(hù))的openid
template_id 所需下發(fā)的模板消息的id
page 點(diǎn)擊模板查看詳情跳轉(zhuǎn)頁(yè)面,不填則模板無(wú)跳轉(zhuǎn)
form_id 表單提交場(chǎng)景下,為submit事件帶上的formId;支付場(chǎng)景下,為本次支付的prepay_id
value 模板內(nèi)容,不填則下發(fā)空模板
color 模板內(nèi)容字體的顏色,不填默認(rèn)黑色
emphasis_keyword 模板需要放大的關(guān)鍵詞,不填則默認(rèn)無(wú)放大

示例:

{
  "touser": "OPENID",  
  "template_id": "TEMPLATE_ID", 
  "page": "index",          
  "form_id": "FORMID",         
  "data": {
      "keyword1": {
          "value": "339208499", 
          "color": "#173177"
      }, 
      "keyword2": {
          "value": "2015年01月05日 12:30", 
          "color": "#173177"
      }, 
      "keyword3": {
          "value": "粵海喜來(lái)登酒店", 
          "color": "#173177"
      } , 
      "keyword4": {
          "value": "廣州市天河區(qū)天河路208號(hào)", 
          "color": "#173177"
      } 
  },
  "emphasis_keyword": "keyword1.DATA" 
}

返回碼說(shuō)明:

在調(diào)用模板消息接口后,會(huì)返回JSON數(shù)據(jù)包。

正常時(shí)的返回JSON數(shù)據(jù)包示例:

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

錯(cuò)誤時(shí)會(huì)返回錯(cuò)誤碼信息,說(shuō)明如下:

 

返回碼 說(shuō)明
40037 template_id不正確
41028 form_id不正確,或者過(guò)期
41029 form_id已被使用
41030 page不正確
45009 接口調(diào)用超過(guò)限額(目前默認(rèn)每個(gè)帳號(hào)日調(diào)用限額為100萬(wàn))

 

使用效果:

微信小程序API模板消息,模板推送位置模板下發(fā)條件模板跳轉(zhuǎn)能力

下發(fā)條件說(shuō)明


  1. 支付

    當(dāng)用戶(hù)在小程序內(nèi)完成過(guò)支付行為,可允許開(kāi)發(fā)者向用戶(hù)在7天內(nèi)推送有限條數(shù)的模板消息(1次支付可下發(fā)3條,多次支付下發(fā)條數(shù)獨(dú)立,互相不影響)

  2. 提交表單

    當(dāng)用戶(hù)在小程序內(nèi)發(fā)生過(guò)提交表單行為且該表單聲明為要發(fā)模板消息的,開(kāi)發(fā)者需要向用戶(hù)提供服務(wù)時(shí),可允許開(kāi)發(fā)者向用戶(hù)在7天內(nèi)推送有限條數(shù)的模板消息(1次提交表單可下發(fā)1條,多次提交下發(fā)條數(shù)獨(dú)立,相互不影響)

 

審核說(shuō)明


1.標(biāo)題

1.1標(biāo)題不能存在相同

1.2標(biāo)題意思不能存在過(guò)度相似

1.3標(biāo)題必須以“提醒”或“通知”結(jié)尾

1.4標(biāo)題不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容

1.5標(biāo)題必須能體現(xiàn)具體服務(wù)場(chǎng)景

1.6標(biāo)題不能涉及營(yíng)銷(xiāo)相關(guān)內(nèi)容,包括不限于:

消費(fèi)優(yōu)惠類(lèi)、購(gòu)物返利類(lèi)、商品更新類(lèi)、優(yōu)惠券類(lèi)、代金券類(lèi)、紅包類(lèi)、會(huì)員卡類(lèi)、積分類(lèi)、活動(dòng)類(lèi)等營(yíng)銷(xiāo)傾向通知

2.關(guān)鍵詞

2.1同一標(biāo)題下,關(guān)鍵詞不能存在相同

2.2同一標(biāo)題下,關(guān)鍵詞不能存在過(guò)度相似

2.3關(guān)鍵詞不能帶特殊符號(hào)、個(gè)性化字詞等沒(méi)有行業(yè)通用性的內(nèi)容

2.4關(guān)鍵詞內(nèi)容示例必須與關(guān)鍵詞對(duì)應(yīng)匹配

2.5關(guān)鍵詞不能太過(guò)寬泛,需要具有限制性,例如:“內(nèi)容”這個(gè)就太寬泛,不能審核通過(guò)

違規(guī)說(shuō)明


除不能違反運(yùn)營(yíng)規(guī)范外,還不能違反以下規(guī)則,包括但不限于:

  1. 不允許惡意誘導(dǎo)用戶(hù)進(jìn)行觸發(fā)操作,以達(dá)到可向用戶(hù)下發(fā)模板目的
  2. 不允許惡意騷擾,下發(fā)對(duì)用戶(hù)造成騷擾的模板
  3. 不允許惡意營(yíng)銷(xiāo),下發(fā)營(yíng)銷(xiāo)目的模板

處罰說(shuō)明


根據(jù)違規(guī)情況給予相應(yīng)梯度的處罰,一般處罰規(guī)則如下:

第一次違規(guī),刪除違規(guī)模板以示警告,

第二次違規(guī),封禁接口7天,

第三次違規(guī),封禁接口30天,

第四次違規(guī),永久封禁接口

處罰結(jié)果及原因以站內(nèi)信形式告知

 

 

Bug & Tip

  1. tip: 微信6.5.2及以上版本支持模板功能。低于該版本將無(wú)法收到模板消息。

 

更多微信小程序開(kāi)發(fā)教程,可以關(guān)注hi小程序。
重磅推薦:小程序開(kāi)店目錄

第一部分:小商店是什么

第二部分:如何開(kāi)通一個(gè)小商店

第三部分:如何登錄小商店

第四部分:開(kāi)店任務(wù)常見(jiàn)問(wèn)題

第五部分:小商店可以賣(mài)什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結(jié)算

第十部分:小程序客服

第十一部分:電商創(chuàng)業(yè)

第十二部分:小程序游戲開(kāi)發(fā)