var request = require("request"); const querystring = require("querystring"); request({ timeout: 5000, // 设置超时 method: 'GET', //请求方式 url: 'https://api.weixin.qq.com/cgi-bin/token', //url qs: { //参数,注意get和post的参数设置不一样 grant_type: "…
<?php include "TokenUtil.php"; //TokenUtil::build_access_token(); $access_token = TokenUtil::read_token(); getSucaiList($access_token); function getSucaiList($token){ $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$token…
一.简介 微信公众平台服务号以及之前成功申请内测资格的订阅号都具有自定义菜单的功能.开发者可利用该功能为公众账号的会话界面底部增加自定义菜单,用户点击菜单中的选项,可以调出相应的回复信息或网页链接.自定义菜单接口将为公众账号的信息展示空间提供更多可能性.本文将针对自定义菜单做简单的开发应用,以供读者参考. 二.官方说明 开发者获取使用凭证后,可以使用该凭证对公众账号的自定义菜单进行创建.查询和删除等操作. 自定义菜单接口可实现以下类型按钮: click(点击事件): 用户点击click类型按钮后…
关键字 微信公众平台 自定义菜单 OpenID作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单中获得用户的OpenID. 本篇开发教程的实质是微信自定义菜单及OAuth2.0授权的灵活运用. 本文分为以下两个部分: 拥有高级接口权限时的获取(基于view事件) 没有高级接口权限时的获取(基于click事件) 一.拥有高级接口权限 拥有高级接口权限…
一.本节要点 1.菜单相关实体类的封装 参考官方文档中的请求包的内容,对菜单相关实体类进行封装. 2.数据传输格式—JSON 自定义菜单中请求包的数据是Json字符串格式的,请参见:  Java_数据交换_fastJSON_01_用法入门 二.代码实现 1.菜单实体的封装 1.1 按钮基类—Button package com.ray.weixin.gz.model.menu; /** * @desc : 按钮的基类 * * @author: shirayner * @date : 2017年1…
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 funct…
纯属分享 var config = require('./admin/wx/config/config'); var API = require('wechat-api'); var api = new API(config.appid, config.appsecret); api.getAccessToken(function (err, token) { console.log(err); console.log(token); //accessToken }); var menu = J…
微信开发的特点:1.post请求 (一定要注意,这里和配置域名的时候不一样,配置域名是get请求)2.数据包是xml格式的3.你给微信返回的数据也是xml格式的 var parseString = require('xml2js').parseString;//引入xml2js包 /** * 处理微信post消息请求 */ router.post('/', function (req, res) { try{ var buffer = []; //监听 data 事件 用于接收数据 req.on…
var TOKEN='weixin'; //必须与测试号所填写的Token相同 function checkSignature(params,token){ var key=[token,params.timestamp,params.nonce].sort().join(''); //将token (自己设置的) .timestamp(时间戳).nonce(随机数)三个参数进行字典排序 var sha1=crypto.createHash('sha1'); //将上面三个字符串拼接成一个字符串…
一.测试自定义菜单接口时中文菜单名显示为null 设置的中文菜单名,中文未经过编码和解码过程,设置的中文菜单名在最后的微信服务器返回的json格式数据中显示为null. 解决办法:将中文先用unecode方法编码,最后再将菜单数组用undecode解码,再传给微信服务器.方法最上面加上header("content-type=text/html;charset=utf-8"),编码方式必须是utf-8,才能在微信公众平台在线测试接口. 二.自定义菜单中的菜单类型type="c…