微信公众平台开发简要说明 —— 基本原理

准备工作

接入公众平台

become_developer.png

同意协议后,填写URL和Token:

url_and_token.png

http://www.example.com/weixin

signature,timestamp,nonce,echostr

我们的服务器在接收到上述参数后,需要验证signature是否正确,验证方法是先对timestamp、nonce和token先排序,再拼接成一个字符串,计算出sha1,并和signature对比。

要防止第三方通过监听发动replay攻击,还需要验证timestamp和nonce,这个以后再讨论。

develop_mode.png

POST http://www.example.com/weixin?signature=xxx&timestamp=123456&nonce=123

然后,HTTP请求的BODY是一个不规范的XML:

 
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>1348831860</CreateTime>
  5. <MsgType><![CDATA[text]]></MsgType>
  6. <Content><![CDATA[this is a test]]></Content>
  7. <MsgId>1234567890123456</MsgId>
  8. </xml>
 
  1. <xml>
  2. <ToUserName><![CDATA[toUser]]></ToUserName>
  3. <FromUserName><![CDATA[fromUser]]></FromUserName>
  4. <CreateTime>12345678</CreateTime>
  5. <MsgType><![CDATA[text]]></MsgType>
  6. <Content><![CDATA[你好]]></Content>
  7. </xml>

上面的交互逻辑看起来很简单,但实际上坑有很多。

所以,从POST获取URL参数就需要用到更底层的代码。

做开发我是认真的,如您需要请致电 Tel:一柒陆 久贰壹玖 一四三零。

经验分享 程序员 微信小程序 职场和发展