注冊

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

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

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

模板推送位置:服務通知

模板下發(fā)條件:用戶本人在微信體系內與頁面有交互行為后觸發(fā),詳見下發(fā)條件說明

模板跳轉能力:點擊查看詳情僅能跳轉下發(fā)模板的該帳號的各個頁面

使用說明


步驟一:獲取模板ID

有兩個方法可以獲取模版ID

  1. 通過模版消息管理接口獲取模版ID(詳見模版消息管理)
  2. 在微信公眾平臺手動配置獲取模版ID

?登錄https://mp.weixin.qq.com獲取模板,如果沒有合適的模板,可以申請?zhí)砑有履0?,審核通過后可使用,詳見模板審核說明

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

步驟二:頁面的<form/>組件,屬性report-submittrue時,可以聲明為需發(fā)模板消息,此時點擊按鈕提交表單可以獲取formId,用于發(fā)送模板消息。或者當用戶完成支付行為,可以獲取prepay_id用于發(fā)送模板消息。

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

 

 

模版消息管理


1.獲取小程序模板庫標題列表

 

接口地址

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

HTTP請求方式:

POST

POST參數(shù)說明:

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

示例:

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

返回碼說明:

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

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

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

返回參數(shù)說明:

參數(shù) 說明
id 模板標題id(獲取模板標題下的關鍵詞庫時需要)
title 模板標題內容
total_count 模板庫標題總數(shù)

2.獲取模板庫某個模板標題下關鍵詞庫

接口地址

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

HTTP請求方式:

POST

POST參數(shù)說明:

參數(shù) 必填 說明
access_token 接口調用憑證
id 模板標題id,可通過接口獲取,也可登錄小程序后臺查看獲取

示例:

{
"id":"AT0002"
}

返回碼說明:

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

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

{
    "errcode": 0,
    "errmsg": "ok",
    "id": "AT0002",
    "title": "購買成功通知",
    "keyword_list": [
        {
            "keyword_id": 3,
            "name": "購買地點",
            "example": "TIT造艦廠"
        },
        {
            "keyword_id": 4,
            "name": "購買時間",
            "example": "2016年6月6日"
        },
        {
            "keyword_id": 5,
            "name": "物品名稱",
            "example": "咖啡"
        }
    ]
}

返回參數(shù)說明:

參數(shù) 說明
keyword_id 關鍵詞id,添加模板時需要
name 關鍵詞內容
example 關鍵詞內容對應的示例

3.組合模板并添加至帳號下的個人模板庫

接口地址

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

HTTP請求方式:

POST

POST參數(shù)說明:

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

示例:

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

返回碼說明:

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

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

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

返回參數(shù)說明:

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

4.獲取帳號下已存在的模板列表

接口地址

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

HTTP請求方式:

POST

POST參數(shù)說明:

參數(shù) 必填 說明
access_token 接口調用憑證
offset offset和count用于分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大為20。最后一頁的list長度可能小于請求的count
count offset和count用于分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大為20。最后一頁的list長度可能小于請求的count

示例:

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

返回碼說明:

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

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

{
"errcode": 0,
"errmsg": "ok",
"list": [
        {
            "template_id": "wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc",
            "title": "購買成功通知",
            "content": "購買地點{{keyword1.DATA}}\n購買時間{{keyword2.DATA}}\n物品名稱{{keyword3.DATA}}\n",
            "example": "購買地點:TIT造艦廠\n購買時間:2016年6月6日\n物品名稱:咖啡\n"
        }
    ]
}

返回參數(shù)說明:

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

5.刪除帳號下的某個模板

接口地址

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

HTTP請求方式:

POST

POST參數(shù)說明:

參數(shù) 必填 說明
access_token 接口調用憑證
template_id 要刪除的模板id

示例:

{
"template_id":"wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc"
}

返回碼說明:

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

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

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

 

發(fā)送模板消息


1. 獲取access_token

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

公眾平臺的API調用所需的access_token的使用及生成方式說明:

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

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

接口地址:

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

HTTP請求方式:

GET

參數(shù)說明 :

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

返回參數(shù)說明:

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

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

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

{"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請求方式:

POST

POST參數(shù)說明:

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

示例:

{
  "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": "粵海喜來登酒店", 
          "color": "#173177"
      } , 
      "keyword4": {
          "value": "廣州市天河區(qū)天河路208號", 
          "color": "#173177"
      } 
  },
  "emphasis_keyword": "keyword1.DATA" 
}

返回碼說明:

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

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

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

錯誤時會返回錯誤碼信息,說明如下:

 

返回碼 說明
40037 template_id不正確
41028 form_id不正確,或者過期
41029 form_id已被使用
41030 page不正確
45009 接口調用超過限額(目前默認每個帳號日調用限額為100萬)

 

使用效果:

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

下發(fā)條件說明


  1. 支付

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

  2. 提交表單

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

 

審核說明


1.標題

1.1標題不能存在相同

1.2標題意思不能存在過度相似

1.3標題必須以“提醒”或“通知”結尾

1.4標題不能帶特殊符號、個性化字詞等沒有行業(yè)通用性的內容

1.5標題必須能體現(xiàn)具體服務場景

1.6標題不能涉及營銷相關內容,包括不限于:

消費優(yōu)惠類、購物返利類、商品更新類、優(yōu)惠券類、代金券類、紅包類、會員卡類、積分類、活動類等營銷傾向通知

2.關鍵詞

2.1同一標題下,關鍵詞不能存在相同

2.2同一標題下,關鍵詞不能存在過度相似

2.3關鍵詞不能帶特殊符號、個性化字詞等沒有行業(yè)通用性的內容

2.4關鍵詞內容示例必須與關鍵詞對應匹配

2.5關鍵詞不能太過寬泛,需要具有限制性,例如:“內容”這個就太寬泛,不能審核通過

違規(guī)說明


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

  1. 不允許惡意誘導用戶進行觸發(fā)操作,以達到可向用戶下發(fā)模板目的
  2. 不允許惡意騷擾,下發(fā)對用戶造成騷擾的模板
  3. 不允許惡意營銷,下發(fā)營銷目的模板

處罰說明


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

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

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

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

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

處罰結果及原因以站內信形式告知

 

 

Bug & Tip

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

 

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

第一部分:小商店是什么

第二部分:如何開通一個小商店

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

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

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

第七部分:小程序直播

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

第九部分:小程序怎么結算

第十部分:小程序客服

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

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