自建网站对接微信公众号

自建网站对接微信公众号_第1张图片

平常我们有些写各种网站, 个人博客系统, 物流管理系统, 通信录管理系统, 校园二手网站. 我们都知道, 只需要租用一个服务器, 再配置一个备案好的域名, 就可以在浏览器上进行访问了.
不知大家, 不知大家有没有想过, 将你搭的网站对接微信公众号, 利用微信这个大用户软件, 来为你引流呢?


本文环境 版本
操作系统 Ubuntu 16.04.03
运行方式 VMware虚拟机
编程语言 PHP
项目局域网地址 http://192.168.253.1/audit

自建网站对接微信公众号_第2张图片

Q: 你在搞笑吗? 不是直接在微信里面打开的吗?

A: 直接用微信打开是可以, 然后你在微信里面让用户再注册一个账号? 对于大部分不想麻烦的小伙伴来说, 他们会对此忘而却步. 其实微信是提供接口, 让你可以获取到微信的用户名,和用户头像的.

一般来说分为三种情况

  1. 使用通过的微信开放平台( 注意,不是微信公众平台)

需要开发者认证

  1. 使用认证过的订阅号.

需要微信认证

  1. 使用认证过的服务号

需要微信认证

额, 那其实不是没认证就没得玩?

好吧, 实际是的确如此, 不过. 如果你真的只是想玩玩. 你可以去这儿. https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

自建网站对接微信公众号_第3张图片

微信测试号

优点

  • 拥有几乎所有接口,

  • 以及享受局域网IP回调(意思就是说,可以支持局域网, 这是正式微信平台号所不具备的)

  • 发送模板消息, 不用审核.

缺点

  • 只支持最多100个用户

  • 不能设置名称, 头像.

对于一些只是想玩玩, 或者小规模用户的是没有问题的.

跟我一起操作

登录

扫码登录就好了;

微信token

新建php文件(啥语言都可以,自行修改)

public function token()
    {
        $nonce = $_GET['nonce'];
        $token = 'weixin';
        $timestamp = $_GET['timestamp'];
        $echostr = $_GET['echostr'];
        $signature = $_GET['signature'];        //形成数组,然后按字典序排序
        $array = array();
        $array = array($nonce, $timestamp, $token);
        sort($array);        //拼接成字符串,sha1加密 ,然后与signature进行校验
        $str = sha1(implode($array));        if ($str == $signature && $echostr) {            //第一次接入weixin api接口的时候
            echo $echostr;            exit;
        }
    }

然后在测试号里填写路径和token, 认证成功后就可以继续操作了

自建网站对接微信公众号_第4张图片


TIP: 这个链接并不需要一直可访问,只需要第一次认证通过就OK, 甚至认证过可以直接删掉.

修改回调域名, 接口> 网页授权获取用户基本信息 > 修改

自建网站对接微信公众号_第5张图片


只有测试号支持ip

微信的接口

接口详情可在https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013里查看

注意:

  1. 这些接口不是简单的对接就好了, 每次请求都需要携带access_token,

  2. 而获取access_token, 每天有获取上限.

  3. access-token具有有效期(7200s) , 过期需要重新获取.

获取access_token的方法https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E5%9F%BA%E7%A1%80%E6%94%AF%E6%8C%81&form=%E8%8E%B7%E5%8F%96access_token%E6%8E%A5%E5%8F%A3+/token

获取用户信息, 实现免登录的效果

自建网站对接微信公众号_第6张图片


在这儿我们需要三个接口

所用接口:

接口一:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
接口二:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
接口三:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
接口四: 刷新access_token
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

接口返回数据, 详见https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

  1. 第一步:用户同意授权,获取code

示例:( 注意appid, redirect_url是变量)

$str = 'http://open.weixin.qq.com/connect/oauth2/authorize?appid=wx20874ebf2ea1fc7f&redirect_uri=' . urlencode("http://192.168.253.1/audit/client/") . '&response_type=code&scope=snsapi_base&state=123#wechat_redirect';


  1. 第二步:通过code换取网页授权access_token

示例

$data = json_decode(file_get_contents("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $this->appid . "&secret=" . $this->secret . "&code=" . $_GET['code'] . "&grant_type=authorization_code"));

注意: 此处的access_token与上面的access_token不是同一个东西

  1. 第三步: 通过access_token换取userinfo

示例

$userInfo = json_decode(file_get_contents("https://api.weixin.qq.com/sns/userinfo?access_token=" . $data->access_token . "&openid=" . $data->openid . "&lang=zh_CN"));
  1. 刷新access_token, 如果需要

这是我画的一个请求过程图, 可以帮助理解


自建网站对接微信公众号_第7张图片

原文是矢量图,如影响阅读,请阅读原文

测试演示

1. 将授权url发给手机

非必需, 也可以在电脑上, 也可以写到公众号子菜单中点击进入.

2. 关注测试号

不然会这样

自建网站对接微信公众号_第8张图片


关注后点击

自建网站对接微信公众号_第9张图片


自建网站对接微信公众号_第10张图片

enter description here

测试号访问成功.

额, 关于后台代码原理就不讲了.
类似于一个从微信服务器发来的表单, 登录进了系统, 然后再把这些数据存入数据库就好了.

正式号运行效果

自建网站对接微信公众号_第11张图片


自建网站对接微信公众号_第12张图片

这是原创防伪水印














                                                                                                                  







原文出自:指尖魔法屋

https://www.thinkmoon.cn


转载请附上原文链接

https://www.thinkmoon.cn/2018/04/12/%E8%87%AA%E5%BB%BA%E7%BD%91%E7%AB%99%E5%AF%B9%E6%8E%A5%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7/


点击阅读原文, 体验更佳


原创  

自建网站对接微信公众号_第13张图片


你可能感兴趣的:(自建网站对接微信公众号)