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类的使用 实例代码讲解
Dec 28 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
php生成excel文件的简单方法
Feb 08 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
19个Android常用工具类汇总
Dec 30 PHP
php程序内部post数据的方法
Mar 31 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP实现导出带样式的Excel
Aug 28 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP函数积累总结
Mar 19 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技巧与注意事项分析
2011/02/03 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
php实现的PDO异常处理操作分析
2018/12/27 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
javascript 动态创建表格的2种方法总结
2015/03/04 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
vue中activated的用法
2021/01/03 Vue.js
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
浅析Python多线程下的变量问题
2015/04/28 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
django2 快速安装指南分享
2018/01/05 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
实例介绍Python中整型
2019/02/11 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
大学生个人自我鉴定
2013/12/03 职场文书
实习单位接收函
2014/01/11 职场文书
个人承诺书格式
2014/06/03 职场文书
挂职学习心得体会
2014/09/09 职场文书
红色经典电影观后感
2015/06/18 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
2015初中团委工作总结
2015/07/28 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
话题作文之关于呼唤
2019/11/29 职场文书