php實現(xiàn)QQ小程序發(fā)送模板消息功能
QQ小程序群里有伙伴要發(fā)送模板消息的代碼,所以今天給大家分享QQ小程序模板消息發(fā)布,絕對一步一步帶著大家走,每個細節(jié)都講到。
今天先用php簡單寫一下,有空了再寫java的。
首先創(chuàng)建一個空項目:
因為QQ小程序沒有編譯器,先用微信小程序創(chuàng)建。
然后新建一個頁面,直接上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ā)送模板消息請求', 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請求,所以調(diào)試的時候請勾選不校監(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); } }) },
這里簡單說一下原理:
微信小程序、QQ小程序想要發(fā)送模板消息給用戶,必須要用戶在小程序前端有提交表單的動作出現(xiàn),所以我們在html中寫了個form標(biāo)簽來完成這一要求,然后在js端接受該表單返回的formid,這個表單id是有七天時效的,也就是說在7天之內(nèi)可以向用戶發(fā)送模板消息。綜上,發(fā)送模板消息需要兩個東西:一是用戶的openid(發(fā)給誰),二是用戶的formid(有表單提交動作)。
我們在js中拿到了用戶的formid但是沒有拿到openid,所以需要請求后臺去拿用戶的openid。
拿openid需要用用戶提交上去的code,和小程序的appid及appsercet三把鑰匙去請求微信服務(wù)器,返回用戶的openid.
申請一個模板templateid:
然后是后臺程序php:
tokentest.php
form_submit(e) { console.log(e.detail.formId) var that = this wx.showToast({ title: '正在發(fā)送模板消息請求', 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請求,所以調(diào)試的時候請勾選不校監(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在小程序后臺弄:
最后看一下效果吧:
總結(jié)
以上所述是小編給大家介紹的php實現(xiàn)QQ小程序發(fā)送模板消息功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
php設(shè)置session值和cookies的學(xué)習(xí)示例
一直沒弄懂Session,cookies什么的登陸驗證到底是怎么回事,昨天分別用HttpURLConnection和HttpClient兩個類來實驗了一下,基本弄明白了Session驗證登陸的機制和這兩個類的區(qū)別?,F(xiàn)在分享給大家2014-03-03ThinkPHP+EasyUI之ComboTree中的會計科目樹形菜單實現(xiàn)方法
下面小編就為大家?guī)硪黄猅hinkPHP+EasyUI之ComboTree中的會計科目樹形菜單實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06