wechat-validator 0.1 → 0.2
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52c70d489e2f730f37e5156c281389eefdd482b3
|
4
|
+
data.tar.gz: 07faf1150db584263433821e3e2165cd310027dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9c4b0d7f70157b86b2b5b368d9127078cc61446e5573f3ab78c5d79f69ce82e2528fba2465ebafce166f643fa2098a0fc03f062439744018e1b878091f1efaf
|
7
|
+
data.tar.gz: 61208f0bca87d65209c8a68f5b42e1536d3c9ae2f846db89f4040a3fa2f360a064b2bf73fce9b789404e43d0266a1d1805e805505058cce9baf0c4c7b3226512
|
data/README.md
CHANGED
@@ -1,4 +1,21 @@
|
|
1
1
|
# Wechat Validator 微信服务器验证器引擎
|
2
2
|
|
3
|
+
[](http://opensource.org/licenses/MIT)
|
4
|
+
[](https://badge.fury.io/rb/wechat-validator)
|
5
|
+
|
3
6
|
The Wechat Server Validator Engine is an engine which handles the Wechat server validation requests.
|
4
|
-
|
7
|
+
微信服务器验证引擎是一个处理[微信服务器验证](http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html#.E7.AC.AC.E4.BA.8C.E6.AD.A5.EF.BC.9A.E9.AA.8C.E8.AF.81.E6.9C.8D.E5.8A.A1.E5.99.A8.E5.9C.B0.E5.9D.80.E7.9A.84.E6.9C.89.E6.95.88.E6.80.A7)请求的引擎。
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
In the application's /config/routes.rb file, add the following line:
|
11
|
+
```ruby
|
12
|
+
mount Wechat::Validator::Engine, at: '/wechat-validator'
|
13
|
+
```
|
14
|
+
|
15
|
+
In the application's /config/secrets.yml file, add the following line for the development, test, and production categories. The wechat_validation_token should be identical with the [token configured](http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html#.E7.AC.AC.E4.B8.80.E6.AD.A5.EF.BC.9A.E5.A1.AB.E5.86.99.E6.9C.8D.E5.8A.A1.E5.99.A8.E9.85.8D.E7.BD.AE).
|
16
|
+
```yaml
|
17
|
+
wechat_validation_token: {Your Wechat Validation Token}
|
18
|
+
```
|
19
|
+
|
20
|
+
Configure the following URL in the [Wechat](http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html#.E7.AC.AC.E4.B8.80.E6.AD.A5.EF.BC.9A.E5.A1.AB.E5.86.99.E6.9C.8D.E5.8A.A1.E5.99.A8.E9.85.8D.E7.BD.AE):
|
21
|
+
http://{your.domain.name}/wechat-validator/server_validations
|
@@ -12,7 +12,7 @@ module Wechat
|
|
12
12
|
|
13
13
|
if token.blank?
|
14
14
|
Rails.logger.warn 'Token is required to validate URL by Wechat.'
|
15
|
-
render status: :forbidden, text: ''
|
15
|
+
render status: :forbidden, text: 'The token parameter is required.'
|
16
16
|
return
|
17
17
|
end
|
18
18
|
|
@@ -26,16 +26,22 @@ module Wechat
|
|
26
26
|
return unless check_parameter 'signature', signature
|
27
27
|
return unless check_parameter 'echo', echo
|
28
28
|
|
29
|
-
actual_signature
|
30
|
-
|
31
|
-
|
29
|
+
actual_signature = ::Wechat::Validation::Signature.create nonce, timestamp, token # ::Wechat::Validation.sign nonce, timestamp, token
|
30
|
+
signature_matched = signature==actual_signature
|
31
|
+
Rails.logger.warn "Actual signature is #{actual_signature}, which #{signature_matched ? 'equals' : 'does not equal'} to the given signature #{signature}."
|
32
|
+
|
33
|
+
if signature_matched
|
34
|
+
render text: echo
|
35
|
+
else
|
36
|
+
render status: :forbidden, text: "The signature parameter '#{signature}' and the generated parameter '#{actual_signature}' is not matched."
|
37
|
+
end
|
32
38
|
|
33
39
|
end
|
34
40
|
|
35
41
|
def check_parameter(name, value)
|
36
42
|
if value.blank?
|
37
43
|
Rails.logger.warn "The #{name} parameter is blank. Failed to validate URL by Wechat."
|
38
|
-
render status: :bad_request, text:
|
44
|
+
render status: :bad_request, text: "The #{name} parameter is required."
|
39
45
|
end
|
40
46
|
value.present?
|
41
47
|
end
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wechat-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
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-02-
|
11
|
+
date: 2016-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,15 +30,16 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
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
|
-
version: '0.
|
40
|
+
version: '0.2'
|
41
41
|
description: The Wechat Validator engine handles the Wechat server validation requests.
|
42
|
+
微信验证器引擎处理微信服务器的验证请求。
|
42
43
|
email:
|
43
44
|
- topbit.du@gmail.com
|
44
45
|
executables: []
|
@@ -83,6 +84,5 @@ rubyforge_project:
|
|
83
84
|
rubygems_version: 2.4.5.1
|
84
85
|
signing_key:
|
85
86
|
specification_version: 4
|
86
|
-
summary:
|
87
|
-
the Wechat server validation request.
|
87
|
+
summary: Wechat Validator Engine 微信验证器引擎
|
88
88
|
test_files: []
|