lib/wei-backend/main.rb in wei-backend-0.0.6 vs lib/wei-backend/main.rb in wei-backend-0.1.0
- old
+ new
@@ -1,12 +1,27 @@
require 'sinatra'
require 'nokogiri'
+require 'digest/sha1'
-get '/' do
+set(:access_token) { |token_proc|
+ condition do
+ token = token_proc.call
+ return true if token.nil? || token.empty?
+ origin_signature_strings = [token, params[:timestamp], params[:nonce]]
+ signature = Digest::SHA1.hexdigest origin_signature_strings.sort!.join
+ signature.eql? params[:signature]
+ end
+}
+
+token_proc = proc {
+ WeiBackend::MessageDispatcher.token
+}
+
+get '/', :access_token => token_proc do
params[:echostr]
end
-post '/' do
+post '/', :access_token => token_proc do
request.body.rewind
weixin_params = WeiBackend::Utils.parse_params request.body.read
handler = WeiBackend::MessageDispatcher.new
results = handler.on weixin_params[:MsgType], weixin_params