Module: Wechat::AccessToken

Defined in:
lib/wechat/access_token.rb,
lib/wechat/access_token/railtie.rb,
lib/wechat/access_token/version.rb

Defined Under Namespace

Classes: Railtie

Constant Summary collapse

VERSION =
'0.1.1'

Class Method Summary collapse

Class Method Details

.currentObject



14
15
16
# File 'lib/wechat/access_token.rb', line 14

def self.current
  Wechat.redis.get(key) || get_new
end

.get_newObject

Raises:

  • (StandardError)


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/wechat/access_token.rb', line 24

def self.get_new
  response = request

  code = response['errcode']

  raise StandardError, response['errmsg'] if [-1, 40001, 40164, 40002, 40013].include?(code)

  token = response['access_token']
  if token.present?
    Wechat.redis.set(key, token, ex: response['expires_in'].to_i - 5 * 60)
    token
  else
    result
  end
end

.keyObject



10
11
12
# File 'lib/wechat/access_token.rb', line 10

def self.key
  'wechat-access-token'
end

.requestObject



18
19
20
21
22
# File 'lib/wechat/access_token.rb', line 18

def self.request
  url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=#{Wechat.config.base.appid}&secret=#{Wechat.config.base.appsecret}"
  response = ::RestClient.get(url)
  JSON.parse(response)
end