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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
Jun 08 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
php调用c接口无错版介绍
Mar 11 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
PHP实现的XXTEA加密解密算法示例
Aug 28 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
Yii框架响应组件用法实例分析
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
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
nginx下安装php7+php5
2016/07/31 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
Python I/O与进程的详细讲解
2019/03/08 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python3实现二叉树的最大深度
2019/09/30 Python
python创建学生管理系统
2019/11/22 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python在不同条件下的输入与输出
2020/02/13 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
如何用JQuery进行表单验证
2013/05/29 面试题
幼儿园教师备课制度
2014/01/12 职场文书
客服部工作职责范本
2014/02/14 职场文书
公司领导班子对照材料
2014/08/18 职场文书
党员评议个人总结
2014/10/20 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技