Site Loader

LOCATION

VanY_Y

    上一章,我们已经讲了怎么在微信公众平台配置服务器信息,配置完成后,我们便可以进行调用微信高级接口,但是在调用接口之前,我们还要做一件简单而又必做的事,那就是要先拿到access_token,那么,什么是access_token呢?access_token通俗的说就是一个标识,微信接口通过这个标识来判断你是否具备调用微信接口的权限。下面我们来讲讲怎么获取这个access_token:

步骤1:

    获取access_token的URL:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

而微信公众平台返回的数据应该是这样的

{"access_token":"ACCESS_TOKEN","expires_in":7200}

上面的参数中access_token是标识字符串,后面的expires_in是表示这个标识的有效时间(单位秒),如果存储的时候超过7200秒,表示这个标识失效,你也将失去调用微信接口的权限。下面我们来看看代码案例

<?php
namespace Home\Controller;
use Think\Controller;

class HomeController extends Controller {
	public function __construct() {
        parent::__construct();
        $this->appid 	 = "*************"; //定义appid
        $this->appsecret = "*************************";//定义appsecret
        
    }
  
    public function get_token(){
    	$token_url    = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecret;
    	$access_token = $this->curl_http('',$token_url);
    	print_r($access_token);
    }
    /*
     * @$data    数据内容
     * @$url     链接
     * @method   链接方式
     */
    public function curl_http($data,$url,$method = "GET"){
        $ch = curl_init(); 
	curl_setopt($ch, CURLOPT_URL, $url); 
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
	curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
	curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
	$tmpInfo = curl_exec($ch); 
	if (curl_errno($ch)) {  
	      echo curl_error($ch);
	}
	curl_close($ch); 
	$arr= json_decode($tmpInfo,true);
	return $arr;
    }
}

当我们访问页面的时候将会得到这样的一个数据

Array ( [access_token] => _VJb_Ef2nuEqL1VWUgm7azuIn4rNTZQAvAlpz_MOi084pfcw2BUUnKBY9ufxyC1iqCe4nppdXqkSoFhb9ybHLaDiSi06eOhWhpt7rBlD3XtVHYZeKZLJbnWK94IVAjKlSPAdACABYJ [expires_in] => 7200 ) 

至此,我们就已经成功的拿到了access_token,也就等于拿到了通行证,那我们接下来调用微信接口将畅通无阻。最后我附上常见的接口错误返回码:

返回码 说明
-1 系统繁忙,此时请开发者稍候再试
0 请求成功
40001 获取access_token时AppSecret错误,或者access_token无效。请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口
40002 不合法的凭证类型
40003 不合法的OpenID,请开发者确认OpenID(该用户)是否已关注公众号,或是否是其他公众号的OpenID
40004 不合法的媒体文件类型
40005 不合法的文件类型
40006 不合法的文件大小
40007 不合法的媒体文件id
40008 不合法的消息类型
40009 不合法的图片文件大小
40010 不合法的语音文件大小
40011 不合法的视频文件大小
40012 不合法的缩略图文件大小
40013 不合法的AppID,请开发者检查AppID的正确性,避免异常字符,注意大小写
40014 不合法的access_token,请开发者认真比对access_token的有效性(如是否过期),或查看是否正在为恰当的公众号调用接口
40015 不合法的菜单类型
40016 不合法的按钮个数
40017 不合法的按钮个数
40018 不合法的按钮名字长度
40019 不合法的按钮KEY长度
40020 不合法的按钮URL长度
40021 不合法的菜单版本号
40022 不合法的子菜单级数
40023 不合法的子菜单按钮个数
40024 不合法的子菜单按钮类型
40025 不合法的子菜单按钮名字长度
40026 不合法的子菜单按钮KEY长度
40027 不合法的子菜单按钮URL长度
40028 不合法的自定义菜单使用用户
40029 不合法的oauth_code
40030 不合法的refresh_token
40031 不合法的openid列表
40032 不合法的openid列表长度
40033 不合法的请求字符,不能包含\uxxxx格式的字符
40035 不合法的参数
40038 不合法的请求格式
40039 不合法的URL长度
40050 不合法的分组id
40051 分组名字不合法
40117 分组名字不合法
40118 media_id大小不合法
40119 button类型错误
40120 button类型错误
40121 不合法的media_id类型
40132 微信号不合法
40137 不支持的图片格式
41001 缺少access_token参数
41002 缺少appid参数
41003 缺少refresh_token参数
41004 缺少secret参数
41005 缺少多媒体文件数据
41006 缺少media_id参数
41007 缺少子菜单数据
41008 缺少oauth code
41009 缺少openid
42001 access_token超时,请检查access_token的有效期,请参考基础支持-获取access_token中,对access_token的详细机制说明
42002 refresh_token超时
42003 oauth_code超时
42007 用户修改微信密码,accesstoken和refreshtoken失效,需要重新授权
43001 需要GET请求
43002 需要POST请求
43003 需要HTTPS请求
43004 需要接收者关注
43005 需要好友关系
44001 多媒体文件为空
44002 POST的数据包为空
44003 图文消息内容为空
44004 文本消息内容为空
45001 多媒体文件大小超过限制
45002 消息内容超过限制
45003 标题字段超过限制
45004 描述字段超过限制
45005 链接字段超过限制
45006 图片链接字段超过限制
45007 语音播放时间超过限制
45008 图文消息超过限制
45009 接口调用超过限制
45010 创建菜单个数超过限制
45015 回复时间超过限制
45016 系统分组,不允许修改
45017 分组名字过长
45018 分组数量超过上限
45047 客服接口下行条数超过上限
46001 不存在媒体数据
46002 不存在的菜单版本
46003 不存在的菜单数据
46004 不存在的用户
47001 解析JSON/XML内容错误
48001 api功能未授权,请确认公众号已获得该接口,可以在公众平台官网-开发者中心页中查看接口权限
48004 api接口被封禁,请登录mp.weixin.qq.com查看详情
50001 用户未授权该api
50002 用户受限,可能是违规后接口被封禁
61451 参数错误(invalid parameter)
61452 无效客服账号(invalid kf_account)
61453 客服帐号已存在(kf_account exsited)
61454 客服帐号名长度超过限制(仅允许10个英文字符,不包括@及@后的公众号的微信号)(invalid kf_acount length)
61455 客服帐号名包含非法字符(仅允许英文+数字)(illegal character in kf_account)
61456 客服帐号个数超过限制(10个客服账号)(kf_account count exceeded)
61457 无效头像文件类型(invalid file type)
61450 系统错误(system error)
61500 日期格式错误
65301 不存在此menuid对应的个性化菜单
65302 没有相应的用户
65303 没有默认菜单,不能创建个性化菜单
65304 MatchRule信息为空
65305 个性化菜单数量受限
65306 不支持个性化菜单的帐号
65307 个性化菜单信息为空
65308 包含没有响应类型的button
65309 个性化菜单开关处于关闭状态
65310 填写了省份或城市信息,国家信息不能为空
65311 填写了城市信息,省份信息不能为空
65312 不合法的国家信息
65313 不合法的省份信息
65314 不合法的城市信息
65316 该公众号的菜单设置了过多的域名外跳(最多跳转到3个域名的链接)
65317 不合法的URL
9001001 POST数据参数不合法
9001002 远端服务不可用
9001003 Ticket不合法
9001004 获取摇周边用户信息失败
9001005 获取商户信息失败
9001006 获取OpenID失败
9001007 上传文件缺失
9001008 上传素材的文件类型不合法
9001009 上传素材的文件尺寸不合法
9001010 上传失败
9001020 帐号不合法
9001021 已有设备激活率低于50%,不能新增设备
9001022 设备申请数不合法,必须为大于0的数字
9001023 已存在审核中的设备ID申请
9001024 一次查询设备ID数量不能超过50
9001025 设备ID不合法
9001026 页面ID不合法
9001027 页面参数不合法
9001028 一次删除页面ID数量不能超过10
9001029 页面已应用在设备中,请先解除应用关系再删除
9001030 一次查询页面ID数量不能超过50
9001031 时间区间不合法
9001032 保存设备与页面的绑定关系参数错误
9001033 门店ID不合法
9001034 设备备注信息过长
9001035 设备申请参数不合法
9001036 查询起始值begin不合法

Post Author: Vany

我是一个喜欢追求技术的小伙,在大学开始之前,自己还是一个电脑白痴,对于电脑,只会开关机,但是由于自己的兴趣,我在选专业的时候,全部选择了计算机专业,其实我也不知道为什么这样不顾家人的反对去做这个决定。上了大学后,我在大一的时候开始接触计算机硬件,设计的领域包括了电脑维修,系统封装等等。在大二的时候,我才开始接触PHP,一开始的时候还不是很懂,也没什么资源,所以学习只能靠老师讲一些特别基础的东西。在大二的一段时间,自己对服务器特别感兴趣,但是资源问题,只能自己慢慢研究,后来通过各种百度,通过翻墙获得了自己的第一个域名,.top域名。后来还弄了一个免费的虚拟空间,在结合域名,我自己弄了一个静态的个人网站。大三的时候,我在网上找到兄弟连这个网站,网站上面有一些免费的视频,特别适合新人看。从那以后,我一直在看教学视频去提高自己的能力,在后来,经过面试八连碰壁,才发现自己之前学的是那么肤浅,而且工作也没有自己想象的那么简单,但是高兴的是,目前工作的那家公司录用了我,在这个公司我真的学会了很多东西,包括一些cms网站的建设啊,微商城开发啊,还有最让自己兴奋的就是微信接口的开发等等这些。即使学了不少东西,但有些时候还是会觉得自己还是个小白,所以我必须不断的提升自己

发表评论

电子邮件地址不会被公开。