wechat-handler 0.1 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/app/assets/javascripts/wechat/handler/application.js +1 -1
- data/app/assets/stylesheets/wechat/handler/application.css +0 -1
- data/app/controllers/wechat/handler/concerns/dispatcher.rb +6 -13
- data/app/views/layouts/wechat/handler/application.html.erb +2 -1
- data/lib/wechat/handler/version.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40924815f5ce2a04783e1dc07d38029c5e8c2f24
|
4
|
+
data.tar.gz: b682066dbc4b3d50f1cd1a04eac5e5e71dace983
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 020d1584e552b658c372692250c3d3e0becb60983771e81e91bdde775bed5d4c832e7114196880dc1eee3ebf45dbef51cc6e6a7541bd41a2092b96b36530858c
|
7
|
+
data.tar.gz: bb26f6032ffe83cd628c7202e8e17f67f2536c550c58db7cb3331a6b4b2f0955ea0f73cc68950c82c93bc382823c2072b21f2b23aa982468a9c47d0e95dfe28b
|
data/README.md
CHANGED
@@ -5,14 +5,24 @@
|
|
5
5
|
|
6
6
|
The Wechat Handler engine handles the Wechat event & message notifications. 微信回调处理引擎处理微信服务器发出的事件通知和消息通知。
|
7
7
|
|
8
|
+
|
9
|
+
|
10
|
+
## Recent Update
|
11
|
+
Check out the [Road Map](ROADMAP.md) to find out what's the next.
|
12
|
+
Check out the [Change Log](CHANGELOG.md) to find out what's new.
|
13
|
+
|
14
|
+
|
15
|
+
|
8
16
|
## Usage in Gemfile
|
9
17
|
```ruby
|
10
18
|
gem 'wechat-handler'
|
11
19
|
```
|
12
20
|
|
21
|
+
|
22
|
+
|
13
23
|
## Include the controller concern
|
14
24
|
```ruby
|
15
|
-
include
|
25
|
+
include Wechat::Handler::Concerns::Dispatcher
|
16
26
|
|
17
27
|
def on_event(pairs)
|
18
28
|
{ 'MsgType' => 'text', 'Content' => 'Aloha!' }
|
@@ -28,21 +28,21 @@ module Wechat::Handler::Concerns::Dispatcher
|
|
28
28
|
|
29
29
|
replying_encryption = 'aes'
|
30
30
|
|
31
|
-
render text: 'sign_error' and return unless check_signature(signature, nonce, timestamp)
|
32
|
-
encoded_message =
|
31
|
+
render status: :bad_request, text: 'sign_error' and return unless check_signature(signature, nonce, timestamp)
|
32
|
+
encoded_message = Wechat::Callback::XmlDocument.load(request_body)['Encrypt']
|
33
33
|
Rails.logger.info "The encoded_message is #{encoded_message.inspect}."
|
34
|
-
render text: 'msg_sign_error' and return unless check_message_signature(message_signature, encoded_message, nonce, timestamp)
|
34
|
+
render status: :bad_request, text: 'msg_sign_error' and return unless check_message_signature(message_signature, encoded_message, nonce, timestamp)
|
35
35
|
|
36
36
|
message = ::Wechat::Callback::MessageDecryption.create encoded_message, Rails.application.secrets.wechat_encoding_aes_keys
|
37
37
|
random_bytes, xml_size, xml_text, app_id, padding_bytes = ::Wechat::Callback::SecureMessage.load message
|
38
38
|
Rails.logger.warn " >> Wechat Callback >> Message Controller >> App ID of the Secure Message = #{app_id}."
|
39
39
|
Rails.logger.warn ' >> Wechat Callback >> Message Controller >> XML Text of the Secure Message ='
|
40
40
|
Rails.logger.warn xml_text
|
41
|
-
render text: 'app_id_error' and return unless check_app_id(app_id)
|
41
|
+
render status: :bad_request, text: 'app_id_error' and return unless check_app_id(app_id)
|
42
42
|
|
43
43
|
else
|
44
44
|
|
45
|
-
render text: "Encrypt type #{encrypt_type} is not suppored"
|
45
|
+
render status: :bad_request, text: "Encrypt type #{encrypt_type} is not suppored"
|
46
46
|
return
|
47
47
|
|
48
48
|
end
|
@@ -57,13 +57,6 @@ module Wechat::Handler::Concerns::Dispatcher
|
|
57
57
|
Rails.logger.warn "The #{includer} does not have the #on_event method."
|
58
58
|
end
|
59
59
|
|
60
|
-
#replying_pairs = {
|
61
|
-
# 'ToUserName' => pairs['FromUserName'],
|
62
|
-
# 'FromUserName' => pairs['ToUserName'],
|
63
|
-
# 'CreateTime' => Time.now.to_i,
|
64
|
-
# 'MsgType' => 'text',
|
65
|
-
# 'Content' => '是紫色的。'
|
66
|
-
# }
|
67
60
|
replying_xml_text = ::Wechat::Callback::XmlDocument.create replying_pairs
|
68
61
|
|
69
62
|
if 'aes'==replying_encryption
|
@@ -96,7 +89,7 @@ module Wechat::Handler::Concerns::Dispatcher
|
|
96
89
|
Rails.logger.warn ' >> The Replying XML Text is as the following:'
|
97
90
|
Rails.logger.warn replying_xml_text
|
98
91
|
|
99
|
-
render status:
|
92
|
+
render status: :created, xml: replying_xml_text
|
100
93
|
|
101
94
|
end
|
102
95
|
|
@@ -3,12 +3,13 @@
|
|
3
3
|
<head>
|
4
4
|
<title>Wechat Handler</title>
|
5
5
|
<%= stylesheet_link_tag "handler/application", media: "all" %>
|
6
|
-
<%= javascript_include_tag "handler/application" %>
|
7
6
|
<%= csrf_meta_tags %>
|
8
7
|
</head>
|
9
8
|
<body>
|
10
9
|
|
11
10
|
<%= yield %>
|
12
11
|
|
12
|
+
<%= javascript_include_tag 'handler/application' %>
|
13
|
+
|
13
14
|
</body>
|
14
15
|
</html>
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wechat-handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Topbit Du
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: wechat-validation
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: wechat-validator
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.3'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0.
|
54
|
+
version: '0.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: wechat-callback
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.3'
|
69
69
|
description: Wechat Handler engine handles the Wechat event & message notifications.
|
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '0'
|
109
109
|
requirements: []
|
110
110
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.4
|
111
|
+
rubygems_version: 2.6.4
|
112
112
|
signing_key:
|
113
113
|
specification_version: 4
|
114
114
|
summary: Wechat Handler Engine 微信回调处理引擎
|