module Util::Wechat BASE_SITE = 'https://api.weixin.qq.com'.freeze Error = Class.new(StandardError) class << self attr_accessor :appid, :secret def js_sdk_signature(url, noncestr, timestamp) data = { jsapi_ticket: jsapi_ticket, noncestr: noncestr, timestamp: timestamp, url: url } str = data.map { |k, v| "#{k}=#{v}" }.join('&') Digest::SHA1.hexdigest(str) end def access_token wechat_store.access_token end def jsapi_ticket wechat_store.jsapi_ticket end def wechat_store @_wechat_store ||= ::Util::WechatStore.new(appid, secret) end end end