wechat-handler 0.1 → 0.1.1
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 +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 微信回调处理引擎
|