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 相关文章推荐
php Undefined index的问题
Jun 01 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
May 15 PHP
基于PHP一些十分严重的缺陷详解
Jun 03 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
PHP数据过滤的方法
Oct 30 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
简单介绍win7下搭建apache+php+mysql开发环境
Aug 06 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
TP5框架实现签到功能的方法分析
Apr 05 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 zip文件解压类代码
2009/12/02 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
jquery 常用操作方法
2010/01/28 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
js最简单的双向绑定实例讲解
2018/01/02 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
js实现图片3D轮播效果
2019/09/21 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
[02:27]刀塔重生降临
2015/10/14 DOTA
举例区分Python中的浅复制与深复制
2015/07/02 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python中enumerate函数代码解析
2017/10/31 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Python API自动化框架总结
2019/11/12 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
Python3读写ini配置文件的示例
2020/11/06 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
pytorch中index_select()的用法详解
2021/01/06 Python
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
年度考核自我鉴定
2013/11/09 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
住房租房协议书
2014/08/20 职场文书
新学期感想
2015/08/10 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS