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 相关文章推荐
使用sockets:从新闻组中获取文章(一)
Oct 09 PHP
针对初学PHP者的疑难问答(2)
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
PHP删除HTMl标签的三种解决方法
Jun 30 PHP
PHP数据过滤的方法
Oct 30 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php动态函数调用方法
May 21 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 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 Stream_*系列函数
2010/08/01 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP连接MySQL进行增、删、改、查操作
2017/02/19 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
Python实现的桶排序算法示例
2017/11/29 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
Python截图并保存的具体实例
2021/01/14 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
2016年大学生暑期社会实践方案
2015/11/26 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
PL350与SW11的比较
2021/04/22 无线电