zhangguanzhang's Blog

微信公众号接入自己服务器

字数统计: 1k阅读时长: 3 min
2017/02/12 Share

图文讲解下微信接入自己云主机

之前在网上摸索的接入微信整理下

现在很多东西都依赖微信,微信公众号开发很方便,不用去适配app之类的客户端

接入微信第一步准备条件:

一台能外网80端口访问的主机
一个公众号

主机可以看我之前的教程来搭建

自己去注册一个公众号,关于公众号,个人性质只能注册一个订阅号,服务号得有工商注册证明,企业号就不用说了,小程序个人不能申请

所以说自己去申请一个订阅号
微信公众平台地址:https://mp.weixin.qq.com
t2
登录微信公众平台后台,在左侧列表中最下方,找到“ 基本配置 ”,点击进入
填写信息,第一个是你服务器ip/脚本文件,这个脚本文件用来对接微信服务器检测用的

第二个token是对接的关键字,随便写,但要记住后面要用

第三个随机生成就行了加密方式选明文,后期懂了可以选安全模式
在网站根目录新建一个tesp.php(因为图里我写的test.php)
写下面代码


<?php
$timestramp = $_GET[‘timestamp’];
$nonce = $_GET[‘nonce’];
$token = “123456”;
$signature = $_GET[‘signature’];
$array = array($timestramp, $nonce, $token);
sort($array);
$timpstr = implode(‘’, $array);
$timpstr = sha1($timpstr);
if($timpstr == $signature){
echo $_GET[‘echostr’];
exit;
}



token那你写你公众号页面填写的token就行了

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

加密/校验流程如下:

  1. 将token、timestamp、nonce三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行sha1加密
  3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
    启用接口是由代码中的checkSignature()函数来实现校验的。如果对这一原理难以理解,可以暂时不用深究,继续看下面。

    保存代码后在公众号的页面同样位置点击提交
    tt1
    在弹出的提示框中,点击“确定”,然后点击启用,确定
    tt2
    提示操作错误的话多点击几次就成功了

    订阅号只能个人用并且开启开发者模式后(也就是你对接服务器了后无法自定义菜单,这点很坑….),服务号和企业号不说了,反正个人申请不了…,另外无论你申请了哪种公众号,你都可以开启测试号,测试号是微信官方给开发者开发测试用的,是三种公众号的混合体,但是使用期限只有一年(怎么使用自己想清楚就行了,别瞎打开了)…

    开启测试号在下面的界面开启
    t3
    t4
    接入测试号步骤一样,建议分开弄成俩文件对接
    t5
    php只学了点皮毛,微信服务器发过来的无非是对接验证或者是发过来的xml,写了个类来处理各种消息类型就行了
    当初是参照方倍工作室的教程,他们教程是新浪云申请的sae,大家也可以去参考参考
    方倍工作室微信公众平台开发

    微信公众平台开发文档地址是https://mp.weixin.qq.com/wiki
    接收普通消息
    当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上
    也就是说你脚本文件要提取post里的xml内容,然后再分离,提取和分离看我之前那篇微信公众号接入图灵机器人api里前面的一部分代码就是

    剩下的自己玩吧,我没怎么深入过
CATALOG
  1. 1. 之前在网上摸索的接入微信整理下