php实现QQ小程序发送模板消息功能


Posted in PHP onSeptember 18, 2019

QQ小程序群里有伙伴要发送模板消息的代码,所以今天给大家分享QQ小程序模板消息发布,绝对一步一步带着大家走,每个细节都讲到。

今天先用php简单写一下,有空了再写java的。

首先创建一个空项目:

因为QQ小程序没有编译器,先用微信小程序创建。

php实现QQ小程序发送模板消息功能

然后新建一个页面,直接上html代码:

<form bindsubmit="form_submit" report-submit="true">
<button formType="submit">这是模板发送按钮</button>
</form>

然后写js逻辑:

php实现QQ小程序发送模板消息功能

然后上js代码

form_submit(e) {
  console.log(e.detail.formId)
  var that = this
  wx.showToast({
   title: '正在发送模板消息请求',
   duration: 5000,
   icon: 'loading',
   mask: true
  })
  //推送消息
  wx.login({
   success: function (res) {
    console.log("获得的code");
    console.log(res)
    var code = res.code;//发送给服务器的code
    console.log("获得用户信息成功");
      if (code) {
       wx.request({
        url: 'https://xxxx/tokentest.php',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名
        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: '发送模板消息成功!',
         })
        }
       })
      }
      else {
       console.log("获取用户登录态失败!");
      }
   },
   fail: function (error) {
    console.log('login failed ' + error);
   }
  })
 },

这里简单说一下原理:

微信小程序、QQ小程序想要发送模板消息给用户,必须要用户在小程序前端有提交表单的动作出现,所以我们在html中写了个form标签来完成这一要求,然后在js端接受该表单返回的formid,这个表单id是有七天时效的,也就是说在7天之内可以向用户发送模板消息。综上,发送模板消息需要两个东西:一是用户的openid(发给谁),二是用户的formid(有表单提交动作)。

我们在js中拿到了用户的formid但是没有拿到openid,所以需要请求后台去拿用户的openid。
拿openid需要用用户提交上去的code,和小程序的appid及appsercet三把钥匙去请求微信服务器,返回用户的openid.

申请一个模板templateid:

php实现QQ小程序发送模板消息功能
php实现QQ小程序发送模板消息功能
php实现QQ小程序发送模板消息功能

然后是后台程序php:

tokentest.php

form_submit(e) {
  console.log(e.detail.formId)
  var that = this
  wx.showToast({
   title: '正在发送模板消息请求',
   duration: 5000,
   icon: 'loading',
   mask: true
  })
  //推送消息
  wx.login({
   success: function (res) {
    console.log("获得的code");
    console.log(res)
    var code = res.code;//发送给服务器的code
    console.log("获得用户信息成功");
      if (code) {
       wx.request({
        url: 'https://xxxx/tokentest.php',//服务器的地址,现在微信小程序只支持https请求,所以调试的时候请勾选不校监安全域名
        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: '发送模板消息成功!',
         })
        }
       })
      }
      else {
       console.log("获取用户登录态失败!");
      }
   },
   fail: function (error) {
    console.log('login failed ' + error);
   }
  })
 },

appid和appsercet在小程序后台弄:

php实现QQ小程序发送模板消息功能

最后看一下效果吧:

php实现QQ小程序发送模板消息功能

总结

以上所述是小编给大家介绍的php实现QQ小程序发送模板消息功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
用PHP和ACCESS写聊天室(六)
Oct 09 PHP
PHP学习资料汇总与网址
Mar 16 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
Zend Guard使用指南及问题处理
Jan 07 PHP
Centos下升级php5.2到php5.4全记录(编译安装)
Apr 03 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
php实现window平台的checkdnsrr函数
May 27 PHP
php版微信自定义回复功能示例
Dec 05 PHP
Yii2语言国际化的配置教程
Aug 19 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
PHP7 弃用功能
Mar 09 PHP
php文件后缀不强制为.php的实操方法
Sep 18 #PHP
php校验公钥是否可用的实例方法
Sep 17 #PHP
php写入mysql中文乱码的实例解决方法
Sep 17 #PHP
php写入txt乱码的解决方法
Sep 17 #PHP
解决php写入数据库乱码的问题
Sep 17 #PHP
php写入文件不覆盖的实例讲解
Sep 17 #PHP
php提供实现反射的方法和实例代码
Sep 17 #PHP
You might like
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
用js遍历 table的脚本
2008/07/23 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
C#面试题问题集
2016/04/02 面试题
什么是GWT的Module
2013/01/20 面试题
学校春季防火方案
2014/06/08 职场文书
妇女工作先进事迹
2014/08/17 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
2016新年年会主持词
2015/07/06 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python