#encoding: utf-8 class WechatService def template_data(openid, template_id, type, id, first, key1, key2, key3, remark="") data = { touser:openid, template_id:template_id, url:"https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}?response_type=code&scope=snsapi_base&state=123#wechat_redirect", topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, keyword3:{ value:key3, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } data end def homework_template(user_id, type, id, first, key1, key2, key3, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = template_data uw.openid,"3e5Dj2GIx8MOcMyRKpTUEQnM7Tg0ASSCNc01NS9HCGI", type, id, first, key1, key2, key3, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[homework] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def topic_publish_template(user_id, type, id, first, key1, key2, key3, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = template_data uw.openid,"oKzFCdk7bsIHnGbscA__N8LPQrBkUShvpjV3-kuwWDQ", type, id,first, key1, key2, key3, remark Rails.logger.info "start send template message: #{data}" begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[topic_publish] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def comment_template(user_id,type, id, first, key1, key2, key3, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = template_data uw.openid,"A_3f5v90-zK73V9Kijm-paDkl9S-NuM8Cf-1UJi92_c",type, id,first, key1, key2, key3, remark Rails.logger.info "start send template message: #{data}" begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[comment] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def message_update_template(user_id, type, id, first, key1, key2, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = { touser:uw.openid, template_id:"YTyNPZnQD8uZFBFq-Q6cCOWaq5LA9vL6RFlF2JuD5Cg", url:"https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}?response_type=code&scope=snsapi_base&state=123#wechat_redirect", topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } Rails.logger.info "start send template message: #{data}" begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[message_update] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def two_keys_template(openid, template_id, type, id, first, key1, key2, remark="") data = { touser:openid, template_id:template_id, url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } data end def three_keys_template(openid, template_id, type, id, first, key1, key2, key3, remark="") data = { touser:openid, template_id:template_id, url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, keyword3:{ value:key3, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } data end def four_keys_template(openid, template_id, type, id, first, key1, key2, key3, key4, remark="") data = { touser:openid, template_id:template_id, url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}", #/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, keyword3:{ value:key3, color:"#707070" }, keyword4:{ value:key4, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } data end def binding_succ_notice(user_id, first, key1, key2) uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = { touser:uw.openid, template_id:Wechat.config.binding_succ_notice, url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities", topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, remark:{ value:"绑定成功后可使用微信查看Trustie平台最新动态。", color:"#707070" } } } begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[homework] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def journal_notice(user_id, type, id, first, key1, key2, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = two_keys_template uw.openid,Wechat.config.journal_notice, type, id, first, key1, key2, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[homework] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def homework_message_notice(user_id, type, id, first, key1, key2, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = two_keys_template uw.openid,Wechat.config.homework_message_notice, type, id, first, key1, key2, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[homework] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def class_notice(user_id, type, id, first, key1, key2, key3, key4, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = four_keys_template uw.openid,Wechat.config.class_notice, type, id, first, key1, key2, key3, key4, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[homework] ===> #{e}" end Rails.logger.info "send over. #{req}" end end def create_class_notice(user_id, type, id, first, key1, key2, key3, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? data = { touser:uw.openid, template_id:Wechat.config.create_class_notice, url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/class?id="+id.to_s, topcolor:"#FF0000", data:{ first: { value:first, color:"#707070" }, keyword1:{ value:key1, color:"#707070" }, keyword2:{ value:key2, color:"#707070" }, keyword3:{ value:key3, color:"#707070" }, remark:{ value:remark, color:"#707070" } } } #data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e Rails.logger.error "[wechat_create_class_notice] ===> #{e}" end Rails.logger.info "send over. #{req}" end end end