微信公众号接口相关操作

<?php

/**

* 微信公众号接口相关操作

*/

class WeChat

{

private $_appid;

private $_appsecret;

private $_token;

public function __construct($_appid,$_appsecret,$_token)

{

$this->_appid=$_appid;

$this->_appsecret=$_appsecret;

$this->_token=$_token;

}

//获得微信通信token

public function requestUrl($curl,$https=true,$method=‘GET‘,$data=null)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $curl);

curl_setopt($ch, CURLOPT_HEADER, false);//这里不需要头信息只要内容

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if($https){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);//是否进行服务器主机验证

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,2);//是否进行https证书检查(2仅校验是否有CN字段)

}

if($method == ‘POST‘){

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

}

$content = curl_exec($ch);

curl_close($ch);

return $content;

}

//获取token

public function getAccessToken()

{

$file = ‘./wxaccesstoken.json‘;//保存到文件不用每次都请求接口

if(is_file($file)){

$content = file_get_contents($file);

$content = json_decode($content);

if(time() - filemtime($file) < $content->expires_in){

return $content->access_token;

}

}

$curl=‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=‘.$this->_appid.‘&secret=‘.$this->_appsecret;

$content = $this->requestUrl($curl);

file_put_contents($file, $content);

$content = json_decode($content);

return $content->access_token;

}

//获取ticket

public function getTicket($sceneid,$type=‘temp‘,$expire_seconds=604800)

{

if($type == ‘temp‘){//临时二维码

$data = ‘{"expire_seconds": %s, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": %s}}}‘;

$data = sprintf($data,$expire_seconds,$sceneid);

}else{//永久二维码

$data = ‘{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": %s}}}‘;

$data = sprintf($data,$sceneid);

}

$curl = ‘https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=‘.$this->getAccessToken();

$content = $this->requestUrl($curl,true,‘POST‘,$data);

$content = json_decode($content);

return $content->ticket;

}

//获取二微码

public function getQRCode($sceneid,$type=‘temp‘,$expire_seconds=604800){

$ticket = $this->getTicket($sceneid,$type,$expire_seconds);

$content = $this->requestUrl(‘https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=‘.urlencode($ticket));

return $content;

}

}

//公众账号测试接口可免费申请https://mp.weixin.qq.com/wiki (下面请自行修改)

$wechat = new wechat(‘wx487a542e3e7f3b84‘,‘5cddf41d16111222e321b48e213875b8‘,‘‘);

//1. 获得token

//echo $wechat->getAccessToken();

//2. 获得二维码

header(‘Content-type:image/jpeg‘);

echo $wechat->getQRCode(123);

?>

原文地址:https://www.cnblogs.com/samphp/p/8576065.html

时间: 2024-08-10 09:17:03

微信公众号接口相关操作的相关文章

天纵智能开发平台与微信公众号接口指南

前言:利用天纵智能开发平台可以非常方便地与最新的微信公众号进行接入,开发者不必研究复杂啰嗦的微信接口规则,只需在天纵智能开发平台上配置一下业务逻辑即可完成开发. 下面介绍一下天纵智能开发平台中使用微信的操作过程和几个常用使用场合. ==微信接口申请和认证== 一.申请微信公众号 进入微信官网https://mp.weixin.qq.com  注册并申请微信公众号,为了能实现更多功能,请申请为"服务号"类型,并进行认证. 根据官网说明一步一步填写资料,上传证明文件,然后即可完成申请和认证

C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取

一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号密码.作为微信接口开发人员我们知道网页授权可以用作微信网页用作安全登录,带参数二维码的使用用作记录用户来源,模板消息用作购物消费等消息的通知,但是很少看到有综合利用这些高级接口做出体验比较好的公众账号,这里分享一些我开发的用户绑定和验证码的一些心得.所需要的接口有基础的回复.网页授权.带参数二维码.

微信公众号接口添加菜单时错误(errcode":40017 invalid button type)

POST提交时总是报错: {"errcode":40017,"errmsg":"invalid button type"} 最后查出来是由于数据中有中文引起的 解决: data = {"button":[ {"name": u"会员服务", "sub_button":[ {"type":"click","name&qu

C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码)

文章导读: C#微信公众号接口开发之从零开发(一) 接入微信公众平台 微信接入之后,微信通过我们接入的地址进行通信,其中的原理是微信用户发送消息给微信公众账号,微信服务器将消息以xml的形式发送到我们的绑定的地址上,通过解析XML数据,获取到微信用户发送的消息,让根据微信消息(文本:关键字,图片,语音等等)回复XML格式的数据给微信服务器,微信服务器再将接收到的消息返回给用户微信. 我们所需要做的:接收消息和返回消息 一.创建实体类 首先看文档http://mp.weixin.qq.com/wi

C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)

C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发(二) 接收微信消息并且解析XML(附源码) 一.拼凑回复的XML字符串 微信被动回复的形式有一下六种: 1 回复文本消息 2 回复图片消息 3 回复语音消息 4 回复视频消息 5 回复音乐消息 6 回复图文消息 分别对应不同的XML形式,这里以文本消息和图文为例,读者举一反三其他的类似,不再赘述:

微信公众号接口类(PHP版本)

[项目需求] 通过微信提供的接口,实现微信公众号与后端的应用程序数据交互.消息响应等功能. [项目疑难点] 理解接口工作方式,统一接口API,响应速度.安全性等 [代码举例] WeixinApi.class.php  微信公众号接口基类 [php] view plain copy <?php /** * 微信API 公用方法 * * PHP version 5 * * @category    Lib * @package     COM * @subpackage  GZNC * @autho

微信公众号接口权限表汇总

微信公众号目前分为订阅号.服务号.企业号,订阅号和服务号又区分认证和非认证,部分权限又有细微差异,整理个列表方便大家检索和查询相关功能! 统计日期截止到 2014年12月04日 1.目前收集到的包含未认证服务号.已认证服务号.未认证订阅号,已认证订阅号还真没找到! 2.未认证订阅号与未认证服务号两者接口差异仅体现在自定义菜单上!注意这里说的是接口差异,如果想了解区别移步这里 微信公众平台 企业号与服务号.订阅号的区别 ! 3.点击接口中的超链可以直接跳转微信公众平台查看接口描述! 服务号未认证

微信公众号申请相关问题

之前写过一篇「微信支付申请相关问题」,里面说到要抽时间写下公众号申请相关的文章,今天就来聊一聊这个话题. 以下说到的申请公众号是企业申请公众号. 本来是想记录一下申请公众号的步骤,后来发现官方文档已经写得很清楚了,没必要再赘述了,所以我就来描述一下整个申请的流程,以及涉及到的一些注意事项. 一.申请流程 1.注册账号 注册账号很好理解,就是在一个平台上注册账号,但是公众平台注册之后,需要选公众号的类型并且填写公众号的名字,以及公司的一些信息. 具体的注册账号流程可以参考腾讯的官方引导「(企业)注

微信公众号接口深入剖析与应用——多接口集合应用与重用技术开发(图文导航)

前几天有几个朋友叫我出一个关于公众号发送位置导航的教程,迫于时间压力才今天开始写写,我先说说思想 吧,首先我们知道微信发送位置可以朋友与朋友之间直接发送,但是在一个公司或者企业下,一个公众号下面可 能有很多个关注用户,那就涉及到了给陌生人发送位置的情况,我们知道微信给陌生人是发送不了信息的,需要 通过验证才行,那就涉及到了本篇要讲的第一个避开验证的方法 方法一:通过公众号转发位置给非好友的陌生人,绕过好友验证,点击导航 可能有人就会问,在48小时内如果用户未与公众号交互,信息就会发送失败,这就是