找回密码
 立即注册

QQ登录

只需一步,快速开始

微信公众号开发资源

关注:780

所属分类: 微信开发 微信公众号开发资源

本版块为微信公众号开发教程与公众号开发相关技术分享板块,技术提问请到其他对应的问答板块发帖:)

[公众号开发博客] 获取access_token - 傻瓜式微信开发教程7 - 耗子原创

  [复制链接]
查看: 38147|回复: 233
最佳答案
91 

57

主题

231

帖子

2112

积分

超级版主

Rank: 8Rank: 8

积分
2112
QQ
 楼主| 发表于 2015-8-18 14:37:25 | 显示全部楼层 |阅读模式
本帖最后由 moremorefun 于 2015-8-18 14:39 编辑

现在我们尝试首次调用微信提供给我们的API.


微信的API大部分是需要`access_token`作为验证字段了,
那我们首先尝试获取`access_token`.


我们这次帖子的主要目的是在用户发送给我们的公众号一个文本消息的时候返回给用户我们获取到的access_token.


根据我们在[回复简单的文本消息 - 傻瓜式微信开发教程4 - 耗子原创]中的说明,
我们对用户的文本消息在`index.php`页面中的`onText()`函数中进行处理.
微信关于获取`access token`的说明在这里: http://mp.weixin.qq.com/wiki/11/ ... bed85ba5e82b8f.html


在说明中我们可以看到,获取`access_token`需要提供`appid`和`secret`两个参数,
而之前我们的Wechat-php库中没有写入secret参数,所以我们还要对`Wechat.php`做一些修改,
主要是为了保存`appid`和`secret`两个字段.


所以我们修改的`Wechat.php`的代码为:

  1. <?php
  2.   class Wechat {
  3.     // ....
  4.     // ....
  5.     // ....
  6.     protected $encrypted = false;
  7.     protected $appid = '';
  8.     protected $appsecret = '';

  9.     // 添加appsecret参数
  10.     public function __construct($config=array('token'=>'', 'aeskey'=>'', 'appid'=>'', 'appsecret'=>'', 'debug' => FALSE)) {

  11.       $token = $config['token'];
  12.       $aeskey = $config['aeskey'];
  13.       $appid = $config['appid'];
  14.       $debug = $config['debug'];
  15.       // 将两个参数储存在实例中
  16.       $this->appid = $config['appid'];
  17.       $this->appsecret = $config['appsecret'];

  18.       // ...
  19.       // ...
  20.       // ...
  21.     }
  22.   }
复制代码

我们的调用函数为:

  1. <?php
  2. /**
  3. * 微信开发者社区: http://weixin.com 原创首发
  4. *
  5. * 微信公众平台 PHP SDK 示例文件
  6. */

  7.   require('wechat/Wechat.php');

  8.   /**
  9.    * 微信公众平台演示类
  10.    */
  11.   class TestWechat extends Wechat {
  12.     /**
  13.      * 收到文本消息时触发,回复收到的文本消息内容
  14.      *
  15.      * @return void
  16.      */
  17.     protected function onText() {
  18.       // 获取到 appid 和 appsecret
  19.       $appid = $this->appid;
  20.       $appsecret = $this->appsecret;
  21.       // 构建获取access_token的url
  22.       $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
  23.       // 构建http请求并执行
  24.       $ch = curl_init();
  25.       curl_setopt($ch, CURLOPT_URL, $url);
  26.       curl_setopt($ch, CURLOPT_HEADER, false);
  27.       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  28.       $result=curl_exec($ch);
  29.       curl_close($ch);
  30.       // 解析返回的json数据
  31.       $jsoninfo = json_decode($result);
  32.       // 读取json中的access_token字段
  33.       $access_token = $jsoninfo->access_token;
  34.       $expires_in = $jsoninfo->expires_in;
  35.       // 将获取到的access_token作为文本信息返回
  36.       $this->responseText("access_token: '{$access_token}'\nexpires_in: '{$expires_in}'");
  37.     }
  38.   }

  39.   // 这里调用新的
  40.   $wechat = new TestWechat(array(
  41.     'token'     => 'xxxx',              // 更新为自己的
  42.     'aeskey'    => 'xxxx',             // 更新为自己的
  43.     'appid'     => 'xxxx',              // 更新为自己的
  44.     'appsecret' => 'xxxx',          // 更新为自己的
  45.     'debug'     => true
  46.     ));
  47.   $wechat->run();
复制代码

附件中有整个代码的压缩包
游客,如果您要查看本帖隐藏内容请回复


回复

使用道具 举报

最佳答案
0 

0

主题

27

帖子

35

积分

新人求带

积分
35
发表于 2015-8-21 14:58:28 | 显示全部楼层
  学习了  
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

10

帖子

10

积分

新人求带

积分
10
发表于 2015-9-17 13:15:18 | 显示全部楼层
挺不错的,继续看
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

23

帖子

17

积分

新人求带

积分
17
发表于 2015-9-20 19:11:37 | 显示全部楼层
感谢楼主的无私分享
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

3

帖子

4

积分

新人求带

积分
4
发表于 2015-9-22 17:58:19 | 显示全部楼层
多谢分享
回复

使用道具 举报

最佳答案
1 

1

主题

55

帖子

69

积分

新人求带

积分
69
发表于 2015-9-25 00:07:22 | 显示全部楼层
下载下来试试。
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

18

帖子

10

积分

新人求带

积分
10
发表于 2015-9-25 14:38:03 | 显示全部楼层
而纷纷呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃呃额
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

33

帖子

247

积分

略知一二

积分
247
发表于 2015-9-29 08:40:07 | 显示全部楼层
测试测试
回复

使用道具 举报

最佳答案
3 

0

主题

45

帖子

87

积分

新人求带

积分
87
发表于 2015-9-29 11:02:13 | 显示全部楼层
耗子的教程貌似很久没更新了
回复 支持 反对

使用道具 举报

最佳答案
0 

0

主题

8

帖子

23

积分

新人求带

积分
23
发表于 2015-10-2 13:02:41 | 显示全部楼层
感谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


易域网-您身边的域名管家

henkuai.com是专业的第三方微信开发者平台,为生态而生。


本站为第三方微信开发者平台,非腾讯官方网站。

天津市滨海新区
中新生态城中成大道生态建设公寓9号楼3层301

欢迎来这里一起喝喝茶,
聊聊你的产品。

微信公众号gongzhongkaifa

工作日12小时内回复。

网站业务
zhongcong@henkuai.com

工作日12小时内回复。

市场合作
songchang@henkuai.com