wechat_template_message 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c76f12e84101d1232d7b665ab0d1ea6ca68b370a
4
- data.tar.gz: 35ed1d09dd1409f835da2cc7d1fb9365b34cff89
3
+ metadata.gz: 50931ca2f73cdda4ac17e1a946d4b2d1d82a67cd
4
+ data.tar.gz: b7e1e000925009224c98bbf1f8679b0823639af2
5
5
  SHA512:
6
- metadata.gz: 11e9e072d1c2e2dbcce93c2fc86d6daa76e68ac9df8ed8b4fa3a59725e94e9cdad7f1a236c850d0cb25317950e41838664219aded14bd0b55db29ac7e5d298aa
7
- data.tar.gz: 0a4c4e7a1f2cc97f89cdbec9223cd6447ea32358f44373b042a4fd1be637dc98308edceca1969c5d3d199e7c23d392cd6fde90938e3b658ce87e5866b8b992f1
6
+ metadata.gz: 5416d9584c75fc97888dfe55c47266c56dfd5dcb5e6b7cbfb0ce4de628d9f8977f7c8b1768a6438fff2fc0da23e59af389c9a858db2499f1d07ba201fbb03018
7
+ data.tar.gz: 6fbc6bd6e47b461a2249538d8300ce1e208e512d21f7d2c1e714668f7c99fb66642412b518d1d4d047aabbed2f90334216425ef85846683d382a603b3e231b84
data/README.md CHANGED
@@ -49,6 +49,40 @@ else
49
49
  # raise error
50
50
  end
51
51
 
52
+ # 发送模板消息
53
+ url = 'http://xxx.com'
54
+ miniprogram_data = {
55
+ appid: "xxxx",
56
+ "pagepath":"index?foo=bar"
57
+ }
58
+ data = {
59
+ first: {
60
+ value: '您有一张车票 L2019002234324 距乘车时间小于 30 分钟, 线路: 横琴号 十号线',
61
+ color: '#173177'
62
+ },
63
+ keyword1: {
64
+ value: '2019-04-09 18:10',
65
+ color: '#173177'
66
+ },
67
+ keyword2: {
68
+ value: '横琴创意谷',
69
+ color: '#173177'
70
+ },
71
+ keyword3: {
72
+ value: '西江月',
73
+ color: '#173177'
74
+ },
75
+ keyword4: {
76
+ value: '粤C66666',
77
+ color: '#173177'
78
+ },
79
+ remark: {
80
+ value: '请提前到乘车站点候车以免耽误您的出行',
81
+ color: '#173177'
82
+ }
83
+ }
84
+ result = WechatTemplateMessage::Sender.template_send access_token, openid, template_id, url, miniprogram_data, data
85
+
52
86
  ~~~
53
87
 
54
88
 
@@ -4,6 +4,32 @@ require 'wechat_template_message/result'
4
4
 
5
5
  class WechatTemplateMessage::Sender
6
6
 
7
+ def self.template_send access_token, openid, template_id, url, miniprogram_data, data
8
+ uri = URI.parse("#{WechatTemplateMessage.server}/cgi-bin/message/template/send?access_token=#{access_token}")
9
+ req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
10
+ res = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
11
+ req.body = {
12
+ "touser": openid,
13
+ "template_id": template_id,
14
+ "url": url,
15
+ "miniprogram": miniprogram_data,
16
+ "data": data
17
+ }.to_json.to_s
7
18
 
19
+ if WechatTemplateMessage.debug_mode && WechatTemplateMessage.logger
20
+ WechatTemplateMessage.logger.debug "Sending wechat template message to uri #{uri} with body #{req.body}..."
21
+ end
22
+
23
+ http.request req
24
+ end
25
+
26
+
27
+ if WechatTemplateMessage.debug_mode && WechatTemplateMessage.logger
28
+ WechatTemplateMessage.logger.debug "Get template message response status: #{res.code}, body: #{res.body}"
29
+ end
30
+ json = JSON.parse res.body
31
+ successful = res.is_a?(Net::HTTPSuccess) && json['errcode'] == 0
32
+ WechatTemplateMessage::Result.new(successful, json)
33
+ end
8
34
 
9
35
  end
@@ -1,3 +1,3 @@
1
1
  module WechatTemplateMessage
2
- VERSION = '0.1.0'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -9,6 +9,9 @@ describe WechatTemplateMessage do
9
9
  subject(:logger) { Logger.new STDOUT }
10
10
  subject(:configuration) { YAML.load_file('./spec/fixtures/configuration.yml') }
11
11
  subject(:access_token) { configuration['access_token'] }
12
+ subject(:openid) { configuration['openid'] }
13
+ subject(:template_id) { configuration['template_id'] }
14
+
12
15
 
13
16
  before do
14
17
  WechatTemplateMessage.debug_mode = true
@@ -17,7 +20,7 @@ describe WechatTemplateMessage do
17
20
 
18
21
  context 'templates' do
19
22
 
20
- it 'should get error response when access token is invalid missing' do
23
+ it 'should get error response when access token is invalid' do
21
24
  result = WechatTemplateMessage::Template.all 'invalid access token'
22
25
  expect(result.successful).to be false
23
26
  end
@@ -35,12 +38,52 @@ describe WechatTemplateMessage do
35
38
  end
36
39
  end
37
40
 
38
-
39
-
40
41
  end
41
42
 
42
43
  context 'messages' do
43
44
 
45
+ it 'should get error response when access token is invalid' do
46
+ url = nil
47
+ miniprogram_data = nil
48
+ data = nil
49
+ result = WechatTemplateMessage::Sender.template_send 'invalid access token', openid, template_id, url, miniprogram_data, data
50
+ expect(result.successful).to be false
51
+ logger.debug "result #{result.inspect}"
52
+ end
53
+
54
+ it 'should send template message successfuly' do
55
+ url = nil
56
+ miniprogram_data = nil
57
+ data = {
58
+ first: {
59
+ value: '您有一张车票 L2019002234324 距乘车时间小于 30 分钟, 线路: 横琴号 十号线',
60
+ color: '#173177'
61
+ },
62
+ keyword1: {
63
+ value: '2019-04-09 18:10',
64
+ color: '#173177'
65
+ },
66
+ keyword2: {
67
+ value: '横琴创意谷',
68
+ color: '#173177'
69
+ },
70
+ keyword3: {
71
+ value: '西江月',
72
+ color: '#173177'
73
+ },
74
+ keyword4: {
75
+ value: '粤C66666',
76
+ color: '#173177'
77
+ },
78
+ remark: {
79
+ value: '请提前到乘车站点候车以免耽误您的出行',
80
+ color: '#173177'
81
+ }
82
+ }
83
+ result = WechatTemplateMessage::Sender.template_send access_token, openid, template_id, url, miniprogram_data, data
84
+ expect(result.successful).to be true
85
+ logger.debug "result #{result.inspect}"
86
+ end
44
87
 
45
88
  end
46
89
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechat_template_message
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Wang