1. 程式人生 > >【微信小程式】微信小程式掉進的坑之模板訊息

【微信小程式】微信小程式掉進的坑之模板訊息

一、關於formId

在小程式開發文件中我們可以瞭解到傳送模板訊息需要以下引數:
這裡寫圖片描述

在form_id引數中,我選擇了使用表單提交獲取formId的方法。
這裡寫圖片描述

程式碼如下:
這裡寫圖片描述
這裡寫圖片描述

當在微信開發者工具上執行時,會發現獲取到的formId的值是一串字串:
the formId is a mock one
意為:這個formId是模擬量。如果這時你直接利用這個formId在開發工具上請求傳送模板訊息的話,就會顯示以下錯誤:

這裡寫圖片描述
這是因為本身小程式的緣故,只能在真機上才能獲取到formId的值,是一串數字。所以開發者可以選擇直接在手機上開啟小程式的除錯工具,通過console.log輸出formId的值檢視。

二、關於模板內容

在前面獲取到formId後,我在開發工具上輸入了獲取到的值併成功傳送了一條模板訊息:
這裡寫圖片描述

但是奇怪的是,我輸入的模板內容卻沒有顯示出來。是因為我沒有嚴格的按照開發文件上的程式碼例子編寫我的程式碼,所以大家一定要嚴格按照下面格式寫模板內容:(由於我使用的模板需要四個關鍵字,所以用了四個keyword)

這裡寫圖片描述

data不能用value代替!
因為之前在網上看到的別人的教程,作者本人說可以實現,但我嘗試後是不行的,可能是那時候的bug現在修復了,效果如圖:
這裡寫圖片描述

在自己的微信平臺上可以檢視使用的模板ID和需要的關鍵字數。

三、在伺服器上傳送模板訊息

為了讓系統給使用者傳送模板訊息,我將傳送模板訊息的請求放到了伺服器上,一開始只是想做個測試,因為開發文件說data可以為空,所以我就設了空值,JSON格式資料如下:


這裡寫圖片描述

可是無論怎樣都會提示47001錯誤 即:解析JSON/XML內容錯誤;
一開始我以為是傳遞的格式有問題,沒有真正傳遞JSON格式到服務端,所以一直糾結於JSON格式,可是網上的人用httppost了JSON資料都是成功的(服務端用的是Java語言),所以我再仔細檢視文件,後想是不是data後面一定要有{},就嘗試一下,結果真的是因為這樣!!!當傳遞的是這樣的資料:

這裡寫圖片描述
(PS:前張圖中格式為:"data":" ";後張圖格式為:"data":{})
返回了:
這裡寫圖片描述

表示請求傳送成功,在手機上也收到了資訊。
所以解決的問題的方法就是:data後面一定要有{},無論是否需要顯示模板內容。


要注意formId只能使用一次!