微信公众平台开发简要说明 —— 基本原理
准备工作
接入公众平台
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×tamp=123456&nonce=123
然后,HTTP请求的BODY是一个不规范的XML:
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>1348831860</CreateTime>
- <MsgType><![CDATA[text]]></MsgType>
- <Content><![CDATA[this is a test]]></Content>
- <MsgId>1234567890123456</MsgId>
- </xml>
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>12345678</CreateTime>
- <MsgType><![CDATA[text]]></MsgType>
- <Content><![CDATA[你好]]></Content>
- </xml>
上面的交互逻辑看起来很简单,但实际上坑有很多。
所以,从POST获取URL参数就需要用到更底层的代码。
做开发我是认真的,如您需要请致电 Tel:一柒陆 久贰壹玖 一四三零。
