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中去除所有js,html,css代码
Oct 12 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
php实现事件监听与触发的方法
Nov 21 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
PHP实现通过get方式识别用户发送邮件的方法
Jul 16 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
PHP中strval()函数实例用法
Jun 07 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中的 == 运算符进行字符串比较
2006/11/26 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
什么是JavaScript
2009/08/13 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
Javascript实现单例模式
2016/01/24 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
使用Python来开发微信功能
2018/06/13 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python中有几个关键字
2020/06/04 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
python语言time库和datetime库基本使用详解
2020/12/25 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
师范学院教师自荐书
2014/01/31 职场文书
2014年中秋寄语
2014/08/11 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
导游词之日本富士山
2020/01/06 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android