QQ小程序群里有伙伴要發(fā)送模板消息的代碼,所以今天給大家分享QQ小程序模板消息發(fā)布,絕對(duì)一步一步帶著大家走,每個(gè)細(xì)節(jié)都講到。
今天先用php簡(jiǎn)單寫一下,有空了再寫java的。
首先創(chuàng)建一個(gè)空項(xiàng)目:
因?yàn)镼Q小程序沒(méi)有編譯器,先用微信小程序創(chuàng)建。

然后新建一個(gè)頁(yè)面,直接上html代碼:
form bindsubmit="form_submit" report-submit="true">
button formType="submit">這是模板發(fā)送按鈕/button>
/form>
然后寫js邏輯:

然后上js代碼
form_submit(e) {
console.log(e.detail.formId)
var that = this
wx.showToast({
title: '正在發(fā)送模板消息請(qǐng)求',
duration: 5000,
icon: 'loading',
mask: true
})
//推送消息
wx.login({
success: function (res) {
console.log("獲得的code");
console.log(res)
var code = res.code;//發(fā)送給服務(wù)器的code
console.log("獲得用戶信息成功");
if (code) {
wx.request({
url: 'https://xxxx/tokentest.php',//服務(wù)器的地址,現(xiàn)在微信小程序只支持https請(qǐng)求,所以調(diào)試的時(shí)候請(qǐng)勾選不校監(jiān)安全域名
data: {
code: code,
formID: e.detail.formId,
},
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res.data);
wx.setStorageSync('useropenid', res.data)
wx.showToast({
title: '發(fā)送模板消息成功!',
})
}
})
}
else {
console.log("獲取用戶登錄態(tài)失敗!");
}
},
fail: function (error) {
console.log('login failed ' + error);
}
})
},
這里簡(jiǎn)單說(shuō)一下原理:
微信小程序、QQ小程序想要發(fā)送模板消息給用戶,必須要用戶在小程序前端有提交表單的動(dòng)作出現(xiàn),所以我們?cè)趆tml中寫了個(gè)form標(biāo)簽來(lái)完成這一要求,然后在js端接受該表單返回的formid,這個(gè)表單id是有七天時(shí)效的,也就是說(shuō)在7天之內(nèi)可以向用戶發(fā)送模板消息。綜上,發(fā)送模板消息需要兩個(gè)東西:一是用戶的openid(發(fā)給誰(shuí)),二是用戶的formid(有表單提交動(dòng)作)。
我們?cè)趈s中拿到了用戶的formid但是沒(méi)有拿到openid,所以需要請(qǐng)求后臺(tái)去拿用戶的openid。
拿openid需要用用戶提交上去的code,和小程序的appid及appsercet三把鑰匙去請(qǐng)求微信服務(wù)器,返回用戶的openid.
申請(qǐng)一個(gè)模板templateid:



然后是后臺(tái)程序php:
tokentest.php
form_submit(e) {
console.log(e.detail.formId)
var that = this
wx.showToast({
title: '正在發(fā)送模板消息請(qǐng)求',
duration: 5000,
icon: 'loading',
mask: true
})
//推送消息
wx.login({
success: function (res) {
console.log("獲得的code");
console.log(res)
var code = res.code;//發(fā)送給服務(wù)器的code
console.log("獲得用戶信息成功");
if (code) {
wx.request({
url: 'https://xxxx/tokentest.php',//服務(wù)器的地址,現(xiàn)在微信小程序只支持https請(qǐng)求,所以調(diào)試的時(shí)候請(qǐng)勾選不校監(jiān)安全域名
data: {
code: code,
formID: e.detail.formId,
},
header: {
'content-type': 'application/json'
},
success: function (res) {
console.log(res.data);
wx.setStorageSync('useropenid', res.data)
wx.showToast({
title: '發(fā)送模板消息成功!',
})
}
})
}
else {
console.log("獲取用戶登錄態(tài)失敗!");
}
},
fail: function (error) {
console.log('login failed ' + error);
}
})
},
appid和appsercet在小程序后臺(tái)弄:

最后看一下效果吧:

總結(jié)
以上所述是小編給大家介紹的php實(shí)現(xiàn)QQ小程序發(fā)送模板消息功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
您可能感興趣的文章:- 用Python寫一個(gè)模擬qq聊天小程序的代碼實(shí)例
- mpvue小程序仿qq左滑置頂刪除組件
- 微信小程序?qū)崿F(xiàn)發(fā)送模板消息功能示例【通過(guò)openid推送消息給用戶】
- C#開(kāi)發(fā)之微信小程序發(fā)送模板消息功能