php版微信公众账号第三方管理工具开发简明教程


Posted in PHP onSeptember 23, 2016

本文讲述了php版微信公众账号第三方管理工具开发方法。分享给大家供大家参考,具体如下:

最近在捣鼓微信公共平台提供的API,等确实一个获取用户信息的API。

所以没有办法,只能自己去获取,手动填写当然可以解决问题,当然编程不就是为了让生活变的更简单么?

当然,远程抓取微信公共平台数据的想法就油然而生,当然第一个想到了CURL。

CURL可以远程提交表达,我感觉微信是提议让我们怎么的,只要不是恶意刷接口,就不会出现验证码。

主要注意的几个问题:

① 远程登录接口是时候的HTTPS协议。
② 登录成功后页面有跳转。
③ 返回的HTML页面是可以直接输出的。

下面展示了一个CURL的具体写法

//微信远程登录绑定账号
  public function Curl_login($username,$pwd){
  $config_token = "XiaoDengPHP";
  $pwd = md5($pwd);
  $url = "https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN";
  $postArray = array("username=".$username,"pwd=".$pwd,"imgcode=","f=json");
  $fields = implode("&", $postArray);
  $filedir = $_SERVER['DOCUMENT_ROOT']."/Cookies";
  $cookie_file = $filedir."/cookie.txt";
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); //表示是https协议提交
  curl_setopt($ch, CURLOPT_HEADER, 0); //不返回header部分
  curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //生产Cookies并保存在指定目录下
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
  curl_setopt($ch, CURLOPT_REFERER,"https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN"); //跳转指向
  $result = curl_exec($ch);
  return json_decode($result);
  // 关闭CURL会话
  curl_close($ch);
}

上面这个方法就实现了,远程登录微信公共平台,接下来的事,就是去让账号变成开发者模式,一样的CURL。

注意这次的curl要带上cookies而不是生产cookies

重点代码在于验证服务器的相应,你需要设置一个服务器的连接和一个token

public function auth($token)
{
    $data = array(
    $_GET['timestamp'],
    $_GET['nonce'],
    $token);
    $sign = $_GET['signature'];
    sort($data);
    $signature = sha1(implode($data));
    if($signature === $sign){
       echo ($_GET['echostr']);
     exit;
    }else{
     return false;
    }
}

这样如果开通成功了,应该会返回一个MES=302的json数据和一个微信平台认证的token的信息。

只要你细心,你就会发现,微信连接里面TOKEN是一个动态变化的,但有是在一段时间内不变的。

所以你需要这个token来构造URL,来获取其他页面信息。

但开发现过程中,你一定遇到一个很崩溃的问题。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP的ASP防火墙
Oct 09 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
Laravel框架实现发送短信验证功能代码
Jun 06 PHP
PHP5.4起内置web服务器使用方法
Aug 09 PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 #PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
Sep 23 #PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 #PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 #PHP
php利用递归实现删除文件目录的方法
Sep 23 #PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 #PHP
php分页原理 分页代码 分页类制作教程
Sep 23 #PHP
You might like
建立动态的WML站点(二)
2006/10/09 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
Laravel 批量更新多条数据的示例
2017/11/27 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
js下利用控制器载入对应脚本
2010/07/17 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
Js获取数组最大和最小值示例代码
2013/10/29 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Python 列表的清空方式
2020/01/13 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
物流仓管员岗位职责
2013/12/04 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android