微信小程序API 模板消息

模板推送位置:服務通知

模板下發條件:用戶本人在微信體系內與頁面有交互行爲後觸發

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

使用說明

步驟一:獲取模板ID

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

  1. 通過模版消息管理接口獲取模版ID

  2. 在微信公衆平臺手動配置獲取模版ID

驟一登錄https://mp.weixin.qq.com獲取模板,如果沒有合適的模板,可以申請添加新模板,審覈通過後可使用。

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

步驟三:調用接口下發模板消息

模版消息管理


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

接口地址

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

HTTP請求方式:

POST

POST參數說明:

參數必填說明
access_token接口調用憑證
offsetoffset和count用於分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大爲20。
countoffset和count用於分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大爲20。

示例:

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

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

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

返回參數說明:

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

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

接口地址

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

HTTP請求方式:

POST

POST參數說明:

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

示例:

{
"id":"AT0002"
}

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

{
    "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": "咖啡"
        }
    ]
}

返回參數說明:

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

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

接口地址

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

HTTP請求方式:

POST

POST參數說明:

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

示例:

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

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

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

返回參數說明:

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

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

接口地址

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

HTTP請求方式:

POST

POST參數說明:

參數必填說明
access_token接口調用憑證
offsetoffset和count用於分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大爲20。最後一頁的list長度可能小於請求的count
countoffset和count用於分頁,表示從offset開始,拉取count條記錄,offset從0開始,count最大爲20。最後一頁的list長度可能小於請求的count

示例:

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

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

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

返回參數說明:

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

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

接口地址

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

HTTP請求方式:

POST

POST參數說明:

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

示例:

{
"template_id":"wDYzYZVxobJivW9oMpSCpuvACOfJXQIoKUm0PY397Tc"
}

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

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

發送模板消息


1. 獲取access_token

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

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

  1. 爲了保密appsecrect,第三方需要一個access_token獲取和刷新的中控服務器。而其他業務邏輯服務器所使用的access_token均來自於該中控服務器,不應該各自去刷新,否則會造成access_token覆蓋而影響業務;

  2. 目前access_token的有效期通過返回的expire_in來傳達,目前是7200秒之內的值。中控服務器需要根據這個有效時間提前去刷新新access_token。在刷新過程中,中控服務器對外輸出的依然是老access_token,此時公衆平臺後臺會保證在刷新短時間內,新老access_token都可用,這保證了第三方業務的平滑過渡;

  3. access_token的有效時間可能會在未來有調整,所以中控服務器不僅需要內部定時主動刷新,還需要提供被動刷新access_token的接口,這樣便於業務服務器在API調用獲知access_token已超時的情況下,可以觸發access_token的刷新流程。

開發者可以使用AppID和AppSecret調用本接口來獲取access_token。AppID和AppSecret可登錄微信公衆平臺官網-設置-開發設置中獲得(需要已經綁定成爲開發者,且帳號沒有異常狀態)。AppSecret生成後請自行保存,因爲在公衆平臺每次生成查看都會導致AppSecret被重置。注意調用所有微信接口時均需使用https協議。如果第三方不使用中控服務器,而是選擇各個業務邏輯點各自去刷新access_token,那麼就可能會產生衝突,導致服務不穩定。

接口地址:

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

HTTP請求方式:

GET

參數說明 :

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

返回參數說明:

正常情況下,微信會返回下述JSON數據包給開發者:

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

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

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

2. 發送模板消息

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

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

HTTP請求方式:

POST

POST參數說明:

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

示例:

{
  "touser": "OPENID",
  "template_id": "TEMPLATE_ID",
  "page": "index",
  "form_id": "FORMID",
  "data": {
      "keyword1": {
          "value": "339208499",
          "color": "#173177"
      },
      "keyword2": {
          "value": "2020年06月10日 10:24",
          "color": "#173177"
      },
      "keyword3": {
          "value": "微信小程序搜索陌然 Tool QQ小程序搜索計算機編程開發",
          "color": "#173177"
      } ,
      "keyword4": {
          "value": "微信搜索陌然 Tool QQ搜索計算機編程開發",
          "color": "#173177"
      }
  },
  "emphasis_keyword": "keyword1.DATA" 
}

返回碼說明:

在調用模板消息接口後,會返回JSON數據包。

正常時的返回JSON數據包示例:

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

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

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

下發條件說明


  1. 支付

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

  2. 提交表單

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

審覈說明

1.標題

1.1標題不能存在相同

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

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

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

1.5標題必須能體現具體服務場景

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

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

2.關鍵詞

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

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

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

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

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

違規說明


除不能違反運營規範外,還不能違反以下規則,包括但不限於:

  1. 不允許惡意誘導用戶進行觸發操作,以達到可向用戶下發模板目的

  2. 不允許惡意騷擾,下發對用戶造成騷擾的模板

  3. 不允許惡意營銷,下發營銷目的模板

處罰說明


根據違規情況給予相應梯度的處罰,一般處罰規則如下:

第一次違規,刪除違規模板以示警告,

第二次違規,封禁接口7天,

第三次違規,封禁接口30天,

第四次違規,永久封禁接口

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

Bug & Tip

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章