module Wechat

Public Class Methods

api(account = :default) click to toggle source
# File lib/wechat.rb, line 31
def self.api(account = :default)
  @wechat_apis ||= {}
  @wechat_apis[account.to_sym] ||= ApiLoader.with(account: account)
end
config(account = :default) click to toggle source
# File lib/wechat.rb, line 27
def self.config(account = :default)
  ApiLoader.config(account)
end
decrypt(encrypted_data, session_key, ivector) click to toggle source
# File lib/wechat.rb, line 40
def self.decrypt(encrypted_data, session_key, ivector)
  cipher = OpenSSL::Cipher.new('AES-128-CBC')
  cipher.decrypt

  cipher.key     = Base64.decode64(session_key)
  cipher.iv      = Base64.decode64(ivector)
  decrypted_data = Base64.decode64(encrypted_data)
  JSON.parse(cipher.update(decrypted_data) + cipher.final)
rescue StandardError => e
  { errcode: 41003, errmsg: e.message }
end
redis() click to toggle source
# File lib/generators/wechat/templates/config/initializers/wechat_redis_store.rb, line 4
def self.redis
  # You can reuse existing redis connection and remove this method if require
  @redis ||= Redis.new # more options see https://github.com/redis/redis-rb#getting-started
end
reload_config!() click to toggle source
# File lib/wechat.rb, line 36
def self.reload_config!
  ApiLoader.reload_config!
end