|
基于微信的通知渠道,微信為開(kāi)發(fā)者提供了可以高效觸達(dá)用戶的模板消息能力,以便實(shí)現(xiàn)服務(wù)的閉環(huán)并提供更佳的體驗(yàn)。(微信6.5.2及以上版本支持模板功能。低于該版本將無(wú)法收到模板消息。) 模板推送位置:服務(wù)通知(點(diǎn)擊查看詳情還能跳轉(zhuǎn)到下發(fā)消息的小程序的指定頁(yè)面) 模板下發(fā)條件:用戶本人在微信體系內(nèi)與頁(yè)面有交互行為后觸發(fā) 微信小程序模板消息使用說(shuō)明(官方文檔):https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html 為了防止對(duì)模板消息的濫用,帶來(lái)不好的用戶體驗(yàn),小程序?qū)δ0逑⑼扑妥隽讼鄳?yīng)的限制。 下發(fā)條件說(shuō)明(觸發(fā)模板消息下發(fā)的兩個(gè)場(chǎng)景): 1. 支付 當(dāng)用戶在小程序內(nèi)完成過(guò)支付行為,可允許開(kāi)發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次支付可下發(fā)3條,多次支付下發(fā)條數(shù)獨(dú)立,互相不影響) 2. 提交表單 當(dāng)用戶在小程序內(nèi)發(fā)生過(guò)提交表單行為且該表單聲明為要發(fā)模板消息的,開(kāi)發(fā)者需要向用戶提供服務(wù)時(shí),可允許開(kāi)發(fā)者向用戶在7天內(nèi)推送有限條數(shù)的模板消息(1次提交表單可下發(fā)1條,多次提交下發(fā)條數(shù)獨(dú)立,相互不影響) 也就是說(shuō),用戶提交一次表單,會(huì)提供給開(kāi)發(fā)者一次推送權(quán)限,多次提交的情況下下發(fā)條數(shù)獨(dú)立。所以如果開(kāi)發(fā)者想要哎7天內(nèi)無(wú)限制的為用戶推送消息,需要做的就是-->從用戶那里獲取足夠多的推送權(quán)限(推送權(quán)限就是form表單的formid)。 所以,我們可以在前端頁(yè)面來(lái)收集用戶的formid,然后保存在服務(wù)器上。根據(jù)小程序的文檔說(shuō)明:用戶在小程序內(nèi)發(fā)生過(guò)提交表單行為且該表單聲明為要發(fā)模板消息的,只能在用戶發(fā)生提交行為的時(shí)候收集formid,所以,我們可以把頁(yè)面上用戶可點(diǎn)擊的按鈕或其他元素用表單組件中的button按鈕組件來(lái)代替,把用戶的交互點(diǎn)擊的bindtap事件通過(guò)表單的bindsubmit來(lái)代替 ,從而捕獲用戶的點(diǎn)擊事件來(lái)產(chǎn)生更多的formId。等到真正需要網(wǎng)絡(luò)請(qǐng)求的時(shí)候?qū)⑹占降膄ormid發(fā)送至服務(wù)器保存。發(fā)送成功以后清空f(shuō)ormid,以便再次收集新的formid。 后端在發(fā)送模板消息的時(shí)候先從保存的formid中挑出未過(guò)期的一條formid,刪除已過(guò)期的不可用的fromid以及當(dāng)前將要用的formid。 注:這只是一個(gè)解決思路,請(qǐng)務(wù)必在嚴(yán)格遵守小程序運(yùn)營(yíng)規(guī)范的前提下把本思路作為一個(gè)參考。 未解決問(wèn)題:如果用戶在一周內(nèi)沒(méi)有訪問(wèn)或點(diǎn)擊過(guò)小程序中的任何組件,那我們就收集不到有效的fromid,也就意味著我們失去了給用戶發(fā)送模板消息的權(quán)限,這種情況下該怎么辦? |