Module: Wechat::Helpers

Defined in:
lib/wechat/helpers.rb

Instance Method Summary collapse

Instance Method Details

#wechat_config_js(config_options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/wechat/helpers.rb', line 5

def wechat_config_js(config_options = {})
   = config_options[:account]

  # Get domain_name, api and app_id
  if .blank? ||  == controller.class.
    # default account
    domain_name = controller.class.trusted_domain_fullname
    api = controller.wechat
    app_id = controller.class.corpid || controller.class.appid
  else
    # not default account
    config = Wechat.config()
    domain_name = config.trusted_domain_fullname
    api = controller.wechat()
    app_id = config.corpid || config.appid
  end

  page_url = if domain_name
               "#{domain_name}#{controller.request.original_fullpath}"
             else
               controller.request.original_url
             end
  page_url = page_url.split('#').first
  js_hash = api.jsapi_ticket.signature(page_url)

  config_js = "    wx.config({\n      debug: \#{config_options[:debug]},\n      appId: \"\#{app_id}\",\n      timestamp: \"\#{js_hash[:timestamp]}\",\n      nonceStr: \"\#{js_hash[:noncestr]}\",\n      signature: \"\#{js_hash[:signature]}\",\n      jsApiList: ['\#{config_options[:api]&.join(\"','\")}'],\n      openTagList: ['\#{config_options[:open_tags]&.join(\"','\")}']\n    });\n  WECHAT_CONFIG_JS\n  javascript_tag config_js, type: 'application/javascript'\nend\n"