Module: Wechat::ControllerApi

Extended by:
ActiveSupport::Concern
Included in:
Responder
Defined in:
lib/wechat/controller_api.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#wechatObject



10
11
12
# File 'lib/wechat/controller_api.rb', line 10

def wechat
  self.class.wechat # Make sure user can continue access wechat at instance level similar to class level
end

#wechat_oauth2(scope = 'snsapi_base', page_url = nil, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wechat/controller_api.rb', line 14

def wechat_oauth2(scope = 'snsapi_base', page_url = nil, &block)
  appid = self.class.corpid || self.class.appid
  page_url ||= if self.class.trusted_domain_fullname
                 "#{self.class.trusted_domain_fullname}#{request.original_fullpath}"
               else
                 request.original_url
               end
  redirect_uri = CGI.escape(page_url)
  oauth2_url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{appid}&redirect_uri=#{redirect_uri}&response_type=code&scope=#{scope}&state=#{wechat.jsapi_ticket.oauth2_state}#wechat_redirect"

  return oauth2_url unless block_given?
  if self.class.corpid
    wechat_corp_oauth2(oauth2_url, &block)
  else
    wechat_public_oauth2(oauth2_url, &block)
  end
end