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去除数组中重复的元素并按键名排序函数
Aug 18 PHP
php 移除数组重复元素的一点说明
Nov 27 PHP
PHP 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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中变量及部分适用方法
2008/03/27 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
js 函数调用模式小结
2011/12/26 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
2016/09/19 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
vue的基本用法与常见指令
2017/08/15 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python实现合并两个排序的链表
2019/03/03 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
香港最新科技与优质家居产品购物网站:J SELECT
2018/08/21 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
社区好人好事材料
2014/12/26 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
同意转租证明
2015/06/24 职场文书
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技