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 相关文章推荐
基于mysql的论坛(3)
Oct 09 PHP
mysql时区问题
Mar 26 PHP
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
php中smarty变量修饰用法实例分析
Jun 11 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
Oct 21 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
Oct 25 PHP
php使用crypt()函数进行加密
Jun 08 PHP
关于laravel框架中的常用目录路径函数
Oct 23 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 18 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 更新数据库中断的解决方法
2009/06/05 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
js表头排序实现方法
2015/01/16 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
jQuery实现浮动层随浏览器滚动条滚动的方法
2015/09/22 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
JS实现复制功能
2017/03/01 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
Angular实现的简单定时器功能示例
2017/12/28 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
简单讲解Python中的闭包
2015/08/11 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
python简单实现9宫格图片实例
2020/09/03 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
HTML5 video播放器全屏(fullScreen)方法实例
2015/04/24 HTML / CSS
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2014年销售工作总结与计划
2014/12/01 职场文书
用Python生成会跳舞的美女
2022/01/18 Python
mysql全面解析json/数组
2022/07/07 MySQL