modify wechat js sign

dev_ec
p31729568 5 years ago
parent 5a73f00ea6
commit d97ced4140

@ -2,10 +2,10 @@ class Wechats::JsSdkSignaturesController < ApplicationController
def create
timestamp = Time.now.to_i
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)
rescue Util::WechatStore::Error => ex
render_ok(appid: Wechat::OfficialAccount.appid, timestamp: timestamp, noncestr: noncestr, signature: signature)
rescue Wechat::Error => ex
render_error(ex.message)
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
Error = Class.new(StandardError)
attr_reader :appid, :secret
def initialize(appid, secret)
@ -60,11 +58,11 @@ class Util::WechatStore
Rails.logger.error("[wechat] response:#{response.status} #{result.inspect}")
if response.status != 200
raise Error, result.inspect
raise Wechat::Error.parse(result)
end
if result['errcode'].present? && result['errcode'].to_i.nonzero?
raise Error, result.inspect
raise Wechat::Error.parse(result)
end
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
BASE_SITE = 'https://api.weixin.qq.com'.freeze
Error = Class.new(StandardError)
class Wechat::OfficialAccount
class << self
attr_accessor :appid, :secret
@ -13,15 +9,15 @@ module Util::Wechat
end
def access_token
wechat_store.access_token
client.access_token
end
def jsapi_ticket
wechat_store.jsapi_ticket
client.jsapi_ticket
end
def wechat_store
@_wechat_store ||= ::Util::WechatStore.new(appid, secret)
def client
@_client ||= Wechat::Client.new(appid, secret)
end
end
end

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