module Wechat::Helpers
Public Instance Methods
wechat_config_js(config_options = {})
click to toggle source
# File lib/wechat/helpers.rb, line 5 def wechat_config_js(config_options = {}) account = config_options[:account] # Get domain_name, api and app_id if account.blank? || account == controller.class.wechat_cfg_account # 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(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) # Field `beta` please check https://developer.work.weixin.qq.com/document/path/90514#%E6%AD%A5%E9%AA%A4%E4%BA%8C%EF%BC%9A%E9%80%9A%E8%BF%87config%E6%8E%A5%E5%8F%A3%E6%B3%A8%E5%85%A5%E6%9D%83%E9%99%90%E9%AA%8C%E8%AF%81%E9%85%8D%E7%BD%AE 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