使用ruby on Rails 进行微信公众平台开发(1)—–微信服务器的配置

基于ruby on rails开发微信公众平台,首先得申请一个订阅号,或者使用微信公众平台提供的测试帐号

微信公众平台测试帐号系统

http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

本地调试工具推荐。在微信下开发,填写域名时,端口必须是80。

可以使用ngrok进行内网的端口映射,让调试变得更简单,但是ngrok被墙了,可以使用一个基于ngrok的国内服务tunnel

ngrok 官网: https://ngrok.com/

国内基于ngrok的服务: http://www.tunnel.mobi/

进入测试帐号系统后,会有一个appid和appsecret,这是生成access_token的凭证,下面开始配置接口信息

URL    http://liuminhan.tunnel.mobi/weixin , 这里得填写自己的响应token验证的路由,

Token   liuminhan, token是由自己指定的

在配置好服务器后,如果点击提交,微信服务器会向对应的路由发起一个get请求,并且携带几个参数做为token验证,

所以得先实现对token验证的响应,然后提交配置才会成功,不然一直会显示配置失败

对token的验证算法,可以看官方文档

http://mp.weixin.qq.com/wiki/home/index.html

对token的验证,路由信息

match “/weixin”,to: “weixin#auth_token”,via: :get

实现对token验证,代码如下

1
2
3
4
5
def auth_token
   if check_signature?(params["timestamp"],params["signature"],params["nonce"])
      render :text => params["echostr"]
   end
end
1
2
3
4
5
6
7
8
9
10
11
def check_signature?(timestamp,signature,nonce)
   token = "liuminhan"
   array = [token,timestamp, nonce]
   array = array.sort
   tmpsign = Digest::SHA1.hexdigest(array.join)
   if tmpsign == signature
     true
   else
     false
   end
 end

在服务器配置页面点击提交,显示配置成功

Comments