1,参考上篇博客,获取access_token

https://www.cnblogs.com/xiaoyantongxue/p/15803334.html

2:控制器写以下代码

    /*
* 获取普通access_token
* */
public function getToken()
{
$accessToken = WechatService::getToken();
echo $accessToken;
}
/**
* @return string
* 菜单
*/
public function menu()
{
// 获取accessToken
$accessToken = WechatService::getToken();
//组装请求的url地址
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $accessToken;
// $url=sprintf(config('wechat.menu_url'),$accessToken);
$data = array(
// button下的每一个元素
"button" => array(
//第一个一级菜单
array('type' => 'click', "name" => "个人简介", "key" => "info"),
array(
"name" => "语言排行",
"sub_button" => array(
array("name" => 'HTML', "type" => "view",
'url' => "http://119.45.22.188/cms/"),
array('name' => 'js', 'type' => 'pic_sysphoto', 'key' => 'sysptoto'),
array('name' => 'php', 'type' => 'pic_weixin', 'key' => 'pic_weixin')
)
),
array('type' => 'click', 'name' => '日记纪要', 'key' => 'content')
)
);
// 将数据转换为json格式
$data = json_encode($data, JSON_UNESCAPED_UNICODE);
// 发送post请求
$result = curlPost($url, $data);
dump($result);
}

3:再tp6 common 公共函数中进行封装一份post请求

function curlPost($url, $data = '')
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// POST数据
curl_setopt($ch, CURLOPT_POST, 1);
// 把post的变量加上
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output,true);
}

4:网页路由进行访问

5:打开微信公众号,进行查看效果

模板消息的使用:

模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。

官方文档:

https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html#3

控制器:

1:测试页面进行模板页面的设置

网址:

https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

2:控制器调用

 /**
*模板消息
*/
public function sendTemplateMsg(){
// 获取access_token
$accessToken = WechatService::getToken();
// 请求接口
$url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$accessToken";
$data = [
//touser就是测试号的微信号
"touser"=>"oCsrJ6UIuOq8PEd2b7YDgpt2WaX0",
//模板id
"template_id"=>"mhOLKr6gU5-ZZkRdkz4ikj9iockb2H5PfGwya36IXqY",
"data"=>[
"result"=>[
"value"=>"某某某",
// 颜色
"color"=>"red"
],
"withdrawMoney"=>[
"value"=>"998"
],
"withdrawTime"=>[
"value"=>date("Y-m-d H:i:s",time())
],
"cardInfo"=>[
"value"=>"工商银行(尾号2345)"
],
"arrivedTime"=>[
"value"=>date("Y-m-d H:i:s",time())
],
"remark"=>[
"value"=>"欢迎参与活动",
"color"=>"red"
],
]
];
$res = curlPost($url,json_encode($data));
print_r($res);die; }

3:走路由

4:微信看效果

tp6微信公众号开发者模式自定义菜单的更多相关文章

  1. 微信公众号开发者模式自定义菜单 node

    纯属分享 var config = require('./admin/wx/config/config'); var API = require('wechat-api'); var api = ne ...

  2. tp6微信公众号开发者模式token认证

      微信公众号开发完整教程(一) PHP7.0版本,TP5.0框架 技术标签: 微信公众号开发         因为工作的需要,这一两年对微信公众号和小程序,项目制作的比较多.所以我才打算写一篇全面的 ...

  3. tp6微信公众号开发者模式基础消息

    官方文档 https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_messages ...

  4. tp6微信公众号开发者模式获取access_token

    1:config 文件下新建一个文件wechat.php,将个人id和秘钥写入配置文件 网址: https://developers.weixin.qq.com/doc/offiaccount/Bas ...

  5. php 开启微信公众号开发者模式

    php 开启微信公众号开发者模式<pre><?php/** * wechat php test */header('Content-type:text');//define your ...

  6. .NET开发微信公众号之创建自定义菜单

    一.简介 微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能.开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接.自 ...

  7. node微信公众号开发--设置自定义菜单

    var request = require("request"); const querystring = require("querystring"); re ...

  8. 微信公众号开发——创建自定义菜单(PHP版)

    <?php include "TokenUtil.php"; //TokenUtil::build_access_token(); $access_token = Token ...

  9. Java微信公众平台开发_04_自定义菜单

    一.本节要点 1.菜单相关实体类的封装 参考官方文档中的请求包的内容,对菜单相关实体类进行封装. 2.数据传输格式—JSON 自定义菜单中请求包的数据是Json字符串格式的,请参见:  Java_数据 ...

随机推荐

  1. 关于mysql,需要掌握的基础(一):CRUD、存储引擎、单表查询相关、多表查询join、事务并发、权限管理等等

    目录 关于mysql,需要掌握的基础(一): 1.了解数据库sql.数据库系统.数据库管理系统的概念. 2.了解DDL.DML.DQL语句是什么? 3.了解存储引擎.存储引擎[InnoDB 和 MyI ...

  2. 企业级Docker容器镜像仓库Harbor的搭建

    Harbor简述 Habor是由VMWare公司开源的容器镜像仓库.事实上,Habor是在Docker Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理 ...

  3. CheckStyle使用手册(一)

    介绍 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从 而使得开发人员从这项重要,但是枯燥的任务中解脱出 ...

  4. C++改变数组长度

    C++改变数组长度 代码 //改变数组长度 #ifndef CHANGELENGTH1D_H #define CHANGELENGTH1D_H #include<stdexcept> #i ...

  5. 二进制安装tomcat

    一.安装JDK 1.1 下载JDK 官网下载地址 1.2 安装JDK #cat install_jdk.sh #!/bin/bash DIR=`pwd` JDK_FILE="jdk-8u29 ...

  6. SpringBoot自动配置的魔法

    Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于J ...

  7. Linux系统安装(CentOS-7)详细操作步骤

    Linux系统安装(CentOS-7)详细操作步骤 一.创建虚拟机 首先创建一个虚拟机,然后才能在虚拟机里面安装系统. 第一步,创建虚拟机的向导 第二步,兼容性默认即可. 第三步,我们等创建完虚拟机后 ...

  8. Python语法进阶(1)- 进程与线程编程

    1.进程与多进程 1.1.什么是进程 进程就是程序执行的载体 什么叫多任务? 多任务就是操作系统可以同时运行多个任务.比如你一边在用浏览器学习,还一边在听音乐,,这就是多任务,至少同时有3个任务正在运 ...

  9. erange.heetian.com 回显任意账号

      首先获取你想登录ID的REG标识符,例如合天课程专家  获取标识符ba84d3c3-a4a1-4cd2-a00d-2f5722ee86a2 一般用户前缀为REG,这个肯定是管理员之类的= =.. ...

  10. 运行EXE文件,系统提示缺少api-ms-win-crt-runtime-l1-1-0.dll,解决方法!!

    api-ms-win-crt-runtime-l1-1-0.dll是一个Windows系统的应用程序拓展文件,也叫动态链接库文件.这个文件能帮助绝大多数用户解决在安装或启动部分游戏软件时出现计算机中丢 ...