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+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
解析php取整的几种方式
Jun 25 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php采集文章中的图片获取替换到本地(实现代码)
Jul 08 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
php实现的xml操作类
Jan 15 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
Laravel使用原生sql语句并调用的方法
Oct 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如何调用webservice应用介绍
2012/11/24 PHP
探讨:web上存漏洞及原理分析、防范方法
2013/06/29 PHP
header导出Excel应用示例
2014/01/24 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
js jquery数组介绍
2012/07/15 Javascript
php跨域调用json的例子
2013/11/13 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
浅谈js的异步执行
2016/10/18 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
2016寒假假期总结
2015/10/10 职场文书
python+opencv实现视频抽帧示例代码
2021/06/11 Python
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python