Class: WechatTemplateMessage::Sender

Inherits:
Object
  • Object
show all
Defined in:
lib/wechat_template_message/sender.rb

Class Method Summary collapse

Class Method Details

.template_send(access_token, openid, template_id, url, miniprogram_data, data) ⇒ Object



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
# File 'lib/wechat_template_message/sender.rb', line 7

def self.template_send access_token, openid, template_id, url, miniprogram_data, data
  uri = URI.parse("#{WechatTemplateMessage.server}/cgi-bin/message/template/send?access_token=#{access_token}")
  req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
  res = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    req.body =  {
        "touser": openid,
        "template_id": template_id,
        "url": url,
        "miniprogram": miniprogram_data,
        "data": data
    }.to_json.to_s

    if WechatTemplateMessage.debug_mode && WechatTemplateMessage.logger
      WechatTemplateMessage.logger.debug "Sending wechat template message to uri #{uri} with body #{req.body}..."
    end

    http.request req
  end


  if WechatTemplateMessage.debug_mode && WechatTemplateMessage.logger
    WechatTemplateMessage.logger.debug "Get template message response status: #{res.code}, body: #{res.body}"
  end
  json = JSON.parse res.body
  successful = res.is_a?(Net::HTTPSuccess) && json['errcode'] == 0
  WechatTemplateMessage::Result.new(successful, json)
end