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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
php session 错误
May 21 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
Nov 14 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
浅析php原型模式
Nov 25 PHP
php实现session自定义会话处理器的方法
Jan 27 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP微信开发之有道翻译
Jun 23 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
php识别翻转iphone拍摄的颠倒图片
May 17 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/07/10 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
javascript比较文档位置
2008/04/08 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
jquery操作select大全
2014/04/25 Javascript
javascript的push使用指南
2014/12/05 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
详解Vue监听数据变化原理
2017/03/08 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
Python实现全角半角转换的方法
2014/08/18 Python
python编码最佳实践之总结
2016/02/14 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
Django用户认证系统 User对象解析
2019/08/02 Python
解决Python使用列表副本的问题
2019/12/19 Python
python开发前景如何
2020/06/11 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
error和exception有什么区别
2012/10/02 面试题
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
母亲节演讲稿
2014/05/27 职场文书
音乐学专业求职信
2014/07/22 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
2015年销售助理工作总结
2015/05/11 职场文书