module WxExt::Api::Js

User api of weixin.

@author FuShengYang

Public Instance Methods

get_jsapi_config(access_token, url, app_id, jsapi_ticket) click to toggle source

Get js api config hash.

@param [Enumerable<String>] access_token @param [Enumerable<String>] url @param [Enumerable<String>] app_id @return [Hash] Json based hash.

# File lib/wx_ext/api/js.rb, line 30
def get_jsapi_config(access_token, url, app_id, jsapi_ticket)
  timestamp = set_timestamp
  noncestr = set_noncestr
  str = "jsapi_ticket=#{jsapi_ticket}&noncestr=#{noncestr}&timestamp=#{timestamp}&url=#{url}"
  signature = Digest::SHA1.hexdigest(str)
  config_hash = {
    app_id: app_id,
    timestamp: timestamp,
    noncestr: noncestr,
    signature: signature,
    jsapi_ticket: jsapi_ticket,
    url: url,
    str: str
  }
end
get_jsapi_ticket(access_token) click to toggle source

Get js api ticket.

@param [Enumerable<String>] access_token @return [Hash] Json based hash.

# File lib/wx_ext/api/js.rb, line 19
def get_jsapi_ticket(access_token)
  url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=#{access_token}&type=jsapi"
  Helper.http_get(url, { accept: :json })
end

Private Instance Methods

set_noncestr() click to toggle source

Set the noncestr of 16 byte.

@return [String] 16 byte str.

# File lib/wx_ext/api/js.rb, line 51
def set_noncestr
  [*'a'..'z',*'0'..'9',*'A'..'Z'].sample(16).join
end
set_timestamp() click to toggle source

Set the timestamp.

@return [String] timestamp str.

# File lib/wx_ext/api/js.rb, line 58
def set_timestamp
  Time.now.to_i.to_s
end