module Wechat::AccessToken

Constants

VERSION

Public Class Methods

current() click to toggle source
# File lib/wechat/access_token.rb, line 14
def self.current
  Wechat.redis.get(key) || get_new
end
get_new() click to toggle source
# 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
key() click to toggle source
# File lib/wechat/access_token.rb, line 10
def self.key
  'wechat-access-token'
end
request() click to toggle source
# 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