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
43
44
45
|
# File 'lib/wechat/helpers.rb', line 5
def wechat_config_js(config_options = {})
account = config_options[:account]
if account.blank? || account == controller.class.wechat_cfg_account
domain_name = controller.class.trusted_domain_fullname
api = controller.wechat
app_id = controller.class.corpid || controller.class.appid
else
config = Wechat.config(account)
domain_name = config.trusted_domain_fullname
api = controller.wechat(account)
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 = <<~WECHAT_CONFIG_JS
wx.config({
beta: #{config_options[:beta] || false},
debug: #{config_options[:debug] || false},
appId: "#{app_id}",
timestamp: "#{js_hash[:timestamp]}",
nonceStr: "#{js_hash[:noncestr]}",
signature: "#{js_hash[:signature]}",
jsApiList: ['#{config_options[:api]&.join("','")}'],
openTagList: ['#{config_options[:open_tags]&.join("','")}']
});
WECHAT_CONFIG_JS
javascript_tag config_js, type: 'application/javascript'
end
|