module WechatPublicApi::Tp

Public Instance Methods

post_template_message(message, url_params) click to toggle source

@param <JSON> message @param <string> url_params – 消息路径 发送模板消息接口

# File lib/wechat_public_api/templet_message.rb, line 14
def post_template_message(message, url_params)
  # get access_token
  access_token = get_access_token()

  uri = URI.parse("https://api.weixin.qq.com/cgi-bin/message/template/#{url_params}?access_token=#{access_token}")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  request = Net::HTTP::Post.new("/cgi-bin/message/template/#{url_params}?access_token=#{access_token}")
  request.add_field('Content-Type', 'application/json')
  # 部分字符转换为json后  成为unicode编码
  request.body = message.to_json.gsub(/\\u([0-9a-z]{4})/) {|s| [$1.to_i(16)].pack("U")}
  response = http.request(request)
  JSON.parse(response.body)
end
tp_delete_template(templet_id) click to toggle source

删除模板

# File lib/wechat_public_api/templet_message.rb, line 88
def tp_delete_template(templet_id)
  message = {
    :template_id => template_id
  }
  post_template_message message, 'del_private_template'
end
tp_general_message(openid, templet_id, url, data) click to toggle source

普通的模板消息,不跳转小程序

# File lib/wechat_public_api/templet_message.rb, line 77
def tp_general_message(openid, templet_id, url, data)
  message = {
      :touser => openid,
      :template_id => templet_id,
      :url => url,
      :data => data
  }
  post_template_message message, 'send'
end
tp_get_all() click to toggle source

获得模板列表

# File lib/wechat_public_api/templet_message.rb, line 96
def tp_get_all()
  access_token = get_access_token()
  response = HTTParty.get("https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=#{access_token}").body
  response_body = (JSON.parse response)
  response_body
end
tp_miniprogram_message(openid, templet_id, url, appid, pagepath, data) click to toggle source

@param <string> openid – 用户的openid @param <string> templet_id – 微信公众号后台提供的模板ID @param <string> url – 模板跳转链接 @param <string> appid – 小程序的appid @param <string> pagepath – 小程序页面路径 (eq: /index/index) @param <JSON> data – 模板数据

> data example

data = {

  "first": {
      "value":"恭喜你购买成功!",
      "color":"#173177"
  },
  "keyword1":{
      "value":"巧克力",
      "color":"#173177"
  },
  "keyword2": {
      "value":"39.8元",
      "color":"#173177"
  },
  "keyword3": {
      "value":"2014年9月22日",
      "color":"#173177"
  },
  "remark":{
      "value":"欢迎再次购买!",
      "color":"#173177"
  }
}

小程序模板消息

# File lib/wechat_public_api/templet_message.rb, line 61
def tp_miniprogram_message(openid, templet_id, url, appid, pagepath, data)
  message = {
      :touser => openid,
      :template_id => templet_id,
      :url => url,
      :miniprogram =>{
         :appid => appid,
         :pagepath => pagepath
       },
      :data => data
  }

  post_template_message message, 'send'
end