modify wechat js sign

dev_ec
p31729568 5 years ago
parent 5a73f00ea6
commit d97ced4140

@ -2,10 +2,10 @@ class Wechats::JsSdkSignaturesController < ApplicationController
def create def create
timestamp = Time.now.to_i timestamp = Time.now.to_i
noncestr = ('A'..'z').to_a.sample(8).join noncestr = ('A'..'z').to_a.sample(8).join
signature = Util::Wechat.js_sdk_signature(params[:url], noncestr, timestamp) signature = Wechat::OfficialAccount.js_sdk_signature(params[:url], noncestr, timestamp)
render_ok(appid: Util::Wechat.appid, timestamp: timestamp, noncestr: noncestr, signature: signature) render_ok(appid: Wechat::OfficialAccount.appid, timestamp: timestamp, noncestr: noncestr, signature: signature)
rescue Util::WechatStore::Error => ex rescue Wechat::Error => ex
render_error(ex.message) render_error(ex.message)
end end
end end

@ -0,0 +1,2 @@
module Wechat
end

@ -1,8 +1,6 @@
class Util::WechatStore class Wechat::Client
BASE_SITE = 'https://api.weixin.qq.com'.freeze BASE_SITE = 'https://api.weixin.qq.com'.freeze
Error = Class.new(StandardError)
attr_reader :appid, :secret attr_reader :appid, :secret
def initialize(appid, secret) def initialize(appid, secret)
@ -60,11 +58,11 @@ class Util::WechatStore
Rails.logger.error("[wechat] response:#{response.status} #{result.inspect}") Rails.logger.error("[wechat] response:#{response.status} #{result.inspect}")
if response.status != 200 if response.status != 200
raise Error, result.inspect raise Wechat::Error.parse(result)
end end
if result['errcode'].present? && result['errcode'].to_i.nonzero? if result['errcode'].present? && result['errcode'].to_i.nonzero?
raise Error, result.inspect raise Wechat::Error.parse(result)
end end
result result

@ -0,0 +1,14 @@
class Wechat::Error < StandardError
attr_reader :code
def initialize(code, message)
super message
@code = code
end
class << self
def parse(result)
new(result['errcode'], result['errmsg'])
end
end
end

@ -1,8 +1,4 @@
module Util::Wechat class Wechat::OfficialAccount
BASE_SITE = 'https://api.weixin.qq.com'.freeze
Error = Class.new(StandardError)
class << self class << self
attr_accessor :appid, :secret attr_accessor :appid, :secret
@ -13,15 +9,15 @@ module Util::Wechat
end end
def access_token def access_token
wechat_store.access_token client.access_token
end end
def jsapi_ticket def jsapi_ticket
wechat_store.jsapi_ticket client.jsapi_ticket
end end
def wechat_store def client
@_wechat_store ||= ::Util::WechatStore.new(appid, secret) @_client ||= Wechat::Client.new(appid, secret)
end end
end end
end end

@ -12,5 +12,5 @@ rescue => ex
wechat_config = {} wechat_config = {}
end end
Util::Wechat.appid = wechat_config['appid'] Wechat::OfficialAccount.appid = wechat_config['appid']
Util::Wechat.secret = wechat_config['secret'] Wechat::OfficialAccount.secret = wechat_config['secret']
Loading…
Cancel
Save