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 缓冲的免费实现方法
Oct 09 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
PHP与MYSQL中UTF8 中文排序示例代码
Oct 23 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
Yii 2.0自带的验证码使用经验分享
Jun 19 PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 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 session有效期session.gc_maxlifetime
2011/04/20 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
jQuery 操作XML入门
2008/12/25 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP详解
2015/03/05 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
10个顶级Python实用库推荐
2021/03/04 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
店长职务说明书
2014/02/04 职场文书
求职面试个人自我评价
2014/02/28 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2015年保送生自荐信
2015/03/24 职场文书
亮剑观后感600字
2015/06/05 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
mysql部分操作
2021/04/05 MySQL