小程序開發模板消息的時候 出現 errcode: 41028, errmsg: "invalid form id hint:
我是使用的微信支付發送模板消息,提示的formid無效的
大家知道獲取到的prepay id 還非常的詭異 他不是直接一個參數 而是還帶了字符串 比如 prepay_id=wx2017xx 這樣格式的
那傳遞到微信模板消息這里的formid上要怎么傳值呢?
最后檢驗是需要去除掉prepay id 這個字符串的 然后傳遞過去就可以了
然后,還會有提示無效的,就是沒有支付成功
這就是微信最克制的一點,必需支付成功了,才能給這個用戶推送消息,而且還只能推送三次。超過三次就推送不了。
所以如果你確定你的prepayid 沒有獲取錯誤,還是提示form id無效,那就是你沒支付,你可以支付一分錢,然后在支付成功后再發起模板消息推送,就沒問題了。
步驟二:頁面的 <form/> 組件,屬性report-submit為true時,可以聲明為需發模板消息,此時點擊按鈕提交表單可以獲取formId,用於發送模板消息。或者當用戶完成支付行為,可以獲取prepay_id用於發送模板消息。
下發條件說明
*支付
當用戶在小程序內完成過支付行為,可允許開發者向用戶在7天內推送有限條數的模板消息(1次支付可下發3條,多次支付下發條數獨立,互相不影響)
*提交表單
當用戶在小程序內發生過提交表單行為且該表單聲明為要發模板消息的,開發者需要向用戶提供服務時,可允許開發者向用戶在7天內推送有限條數的模板消息(1次提交表單可下發1條,多次提交下發條數獨立,相互不影響)
你看上面這幾點就是微信的克制,支付成功只能發送三次模板消息提醒,如果只是提交表單,則只能發送一次模板消息提醒。
后來在網上搜了下 發現其他同學也遇到類似這樣的問題:
在開發小程序支付成功后,
發送模板消息過程中,
提交好多次數據,
微信都提示 form id invalid,
說我們的 form id 無效
於是不停的更換 form_id 的填寫方式,
包括下面的都使用過,
form_id=”wx2017xxxxxx”
form_id=”prepay_id=wx2017xxxxxx”
prepay_id=”wx2017xxxxxx”
prepay_id=”prepay_id=wx2017xxxxxx”
最后還是發現使用
form_id=”wx2017xxxxxx”
模板消息能發送成功。
以上就是我在開發的時候遇到的一些坑
其他如果還有不明白的地方 可以加我微信 qiufeng2999
我們自己目前主要在開發小程序這塊,以后技術上遇到問題,大家相互指教。
后續補充的: 有網友遇到的問題,也是提示無效的,讓我在這里補充下的
嗯 也就是在調試里 生成的二維碼 支付 是不行的
必需是真實環境 在小程序里 發起支付 然后發送消息才行