微信订阅消息
最近開發微信小程序,需要發送微信消息通知,遇到了不少坑,在此記錄
1? 一般我們的消息都是一次性訂閱。
什么是訂閱呢,就是微信要給用戶推消息,首先得征得用戶同意,即用戶訂閱微信消息。
那一次性訂閱呢,就是每次推送消息前都需要詢問用戶是否接收該消息。
相對應的呢,就是長期訂閱。就像訂報紙雜志,你可以訂一年的,那么之后一年里每天都會有人往你郵箱里送報紙雜志。
當然微信也支持長期訂閱,不過需要一定的資質,或者額外出錢購買模板。
那如果沒有資質,也不想支付這部分費用怎么辦呢。
目前給出的方式就是把決定權交由用戶。
在推送消息前,需要在微信端彈窗??API,當用戶勾選了訂閱面板中的“總是保持以上選擇,不再詢問”時,就相當于長期訂閱了。
2? 服務端消息發送
首先需要新建訂閱消息模板,可以走接口,也可以在小程序后臺
服務端消息發送接口
支持頁面跳轉,但默認會跳到正式版,因此測試環境(體驗版),需要做區分
模板內容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
模板內容雖然是 json 結構,但是由于 key 是變化的,也不太適合封裝成一個通用的
另外針對不同類別的 key,value 的校驗也不一樣
| thing.DATA | 事物 | 20個以內字符 | 可漢字、數字、字母或符號組合 |
| number.DATA | 數字 | 32位以內數字 | 只能數字,可帶小數 |
| letter.DATA | 字母 | 32位以內字母 | 只能字母 |
| symbol.DATA | 符號 | 5位以內符號 | 只能符號 |
| character_string.DATA | 字符串 | 32位以內數字、字母或符號 | 可數字、字母或符號組合 |
| time.DATA | 時間 | 24小時制時間格式(支持+年月日),支持填時間段,兩個時間點之間用“~”符號連接 | 例如:15:01,或:2019年10月1日 15:01 |
| date.DATA | 日期 | 年月日格式(支持+24小時制時間),支持填時間段,兩個時間點之間用“~”符號連接 | 例如:2019年10月1日,或:2019年10月1日 15:01 |
| amount.DATA | 金額 | 1個幣種符號+10位以內純數字,可帶小數,結尾可帶“元” | 可帶小數 |
| phone_number.DATA | 電話 | 17位以內,數字、符號 | 電話號碼,例:+86-0766-66888866 |
| car_number.DATA | 車牌 | 8位以內,第一位與最后一位可為漢字,其余為字母或數字 | 車牌號碼:粵A8Z888掛 |
| name.DATA | 姓名 | 10個以內純漢字或20個以內純字母或符號 | 中文名10個漢字內;純英文名20個字母內;中文和字母混合按中文名算,10個字內 |
| phrase.DATA | 漢字 | 5個以內漢字 | 5個以內純漢字,例如:配送中 |
總結
- 上一篇: 计算机考研数学一大纲,考研数学一大纲
- 下一篇: redis队列批量获取