wechat_template_message 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +34 -0
- data/lib/wechat_template_message/sender.rb +26 -0
- data/lib/wechat_template_message/version.rb +1 -1
- data/spec/wechat_template_message_spec.rb +46 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 50931ca2f73cdda4ac17e1a946d4b2d1d82a67cd
|
4
|
+
data.tar.gz: b7e1e000925009224c98bbf1f8679b0823639af2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
@@ -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
|
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
|
|