wechat_public 0.1.5 → 0.1.6

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: 212bbf261772a3499a1b4ba2da95b20c8ecd131e
4
- data.tar.gz: 507316284f6507658225f9a873c51d5b099db2cc
3
+ metadata.gz: f5d3551cac06a46df46356bafcea88e817d9366b
4
+ data.tar.gz: da32a4865bacfebcab419d3ea770057612fdc543
5
5
  SHA512:
6
- metadata.gz: 61cabe3212056283213451e997c50b538983952bd92cbc3f78d1c3306aa5cdc1a0b7fa1218584f7437224f029e6cbe1120e79c5c5293147fc3e281f1abcb1888
7
- data.tar.gz: b0672f0f26034b0c76c42e9a70cd48758e26c0ecfb3b69c29e2d98a385738676e92d7853cce56b708e249b343083cb5ab04257fd7da3015f0b7ffbd6caaff7cc
6
+ metadata.gz: 379c8a938e0f34c283841eaee4ff8ab8825d2c822fb414f9be365d35746fe43c257db26240a74dff618f15a58694168c95a83e186266daf092e01a9921884891
7
+ data.tar.gz: ea7dd9e850382259a17041bddee864fc9d5c95495e766b1cea34ae461b2bfbbf0dcecf3bd26d711379e65b5c6b5e53ff414092230c033dc7c67fd1cfec684f1d
@@ -11,21 +11,30 @@ module WechatPublic
11
11
 
12
12
  def token
13
13
  begin
14
- @token_data ||= JSON.parse(File.read(token_file))
14
+ #@token_data ||= JSON.parse(File.read(token_file))
15
+ data = Object.send(token_file.fetch(:get_token))
16
+ @token_data ||= data;
15
17
  rescue
16
18
  self.refresh
17
19
  end
18
20
  return valid_token(@token_data)
19
21
  end
20
22
 
23
+ def token_data
24
+ self.refresh
25
+ return @token_data
26
+ end
27
+
21
28
  def refresh
22
29
  data = client.get("token", params:{grant_type: "client_credential", appid: appid, secret: secret})
23
- File.open(token_file, 'w'){|f| f.write(data.to_s)} if valid_token(data)
30
+ #File.open(token_file, 'w'){|f| f.write(data.to_s)} if valid_token(data)
31
+ Object.send(token_file.fetch(:set_token),data) if valid_token(data)
24
32
  return @token_data = data
25
33
  end
26
34
 
27
35
  private
28
36
  def valid_token token_data
37
+
29
38
  access_token = token_data["access_token"]
30
39
  raise "Response didn't have access_token" if access_token.blank?
31
40
  return access_token
@@ -5,6 +5,8 @@ module WechatPublic
5
5
  autoload :Responder, "wechat/responder"
6
6
  autoload :Response, "wechat/response"
7
7
  autoload :Test, 'wechat/test'
8
+ API_BASE = "https://api.weixin.qq.com/cgi-bin/"
9
+ TICKET_URL = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=";
8
10
  #WechatPublic::Test.print
9
11
  class AccessTokenExpiredError < StandardError; end
10
12
  class ResponseError < StandardError
@@ -17,27 +19,72 @@ module WechatPublic
17
19
 
18
20
  attr_reader :config
19
21
 
20
- def self.config
21
- @config ||= begin
22
- if defined? Rails
23
- config_file = Rails.root.join("config/wechat.yml")
24
- config = YAML.load(ERB.new(File.new(config_file).read).result)[Rails.env] if (File.exist?(config_file))
25
- end
22
+ def self.config
23
+ # @config ||= begin
24
+ # if defined? Rails
25
+ # config_file = Rails.root.join("config/wechat.yml")
26
+ # config = YAML.load(ERB.new(File.new(config_file).read).result)[Rails.env] if (File.exist?(config_file))
27
+ # end
26
28
 
27
- config ||= {appid: ENV["WECHAT_APPID"], secret: ENV["WECHAT_SECRET"], token: ENV["WECHAT_TOKEN"], access_token: ENV["WECHAT_ACCESS_TOKEN"]}
28
- config.symbolize_keys!
29
- config[:access_token] ||= Rails.root.join("tmp/access_token").to_s
30
- puts '======'
31
- puts config
32
- OpenStruct.new(config)
29
+ # config ||= {appid: ENV["WECHAT_APPID"], secret: ENV["WECHAT_SECRET"], token: ENV["WECHAT_TOKEN"], access_token: ENV["WECHAT_ACCESS_TOKEN"]}
30
+ # config.symbolize_keys!
31
+ # config[:access_token] ||= Rails.root.join("tmp/access_token").to_s
32
+ # puts '======'
33
+ # puts config
34
+ # OpenStruct.new(config)
35
+ # end
36
+ @config ||= begin
37
+ config = {};
38
+ yield config
39
+ puts '======',config
40
+ @config = OpenStruct.new(config)
33
41
  end
34
42
  end
35
43
 
44
+
36
45
  def self.api
37
- puts '...开一下..config..的值',self.config
38
46
  @api ||= WechatPublic::Api.new(self.config.appid, self.config.secret, self.config.access_token)
39
47
  end
40
48
 
49
+ def self.get_token
50
+ unless @access_token
51
+ client = WechatPublic::Client.new(API_BASE)
52
+ @access_token = WechatPublic::AccessToken.new(client, self.config.appid, self.config.secret, self.config.access_token)
53
+ end
54
+ @access_token.token_data
55
+ end
56
+
57
+ def self.token
58
+ unless @access_token
59
+ client = WechatPublic::Client.new(API_BASE)
60
+ @access_token = WechatPublic::AccessToken.new(client, self.config.appid, self.config.secret, self.config.access_token)
61
+ end
62
+ @access_token.token
63
+ end
64
+
65
+ def self.generate_ticket hash
66
+ hash ||= {}
67
+ expire_seconds = hash.fetch("expire_seconds",10);
68
+ action_name = hash.fetch("action_name","QR_LIMIT_SCENE")
69
+ scene_id = hash.fetch("scene_id",Random.new.rand(100..10000))
70
+ form = {
71
+ expire_seconds: expire_seconds,
72
+ action_name: action_name,
73
+ action_info:{
74
+ scene:{
75
+ scene_id: scene_id
76
+ }
77
+ }
78
+ }
79
+ body = RestClient.post(TICKET_URL+self.token,form.to_json,json_header)
80
+ body = JSON.parse(body)
81
+ puts body
82
+ body
83
+ end
84
+ private
85
+ def self.json_header
86
+ { content_type: :json, accept: :json }
87
+ end
41
88
  end
42
89
 
43
90
  puts "before 判断 ActionController::Base...加载了么",ActionController::Base
@@ -1,3 +1,3 @@
1
1
  module WechatPublic
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -23,6 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'rake', '~> 0'
24
24
  # spec.add_development_dependency 'rest_client', '~> 1.8'
25
25
  # spec.add_development_dependency 'rails', '~> 4.2'
26
- spec.add_runtime_dependency 'rest-client', '>= 1.8', '~> 1.8.0'
26
+ spec.add_runtime_dependency 'rest-client', '>= 1.7'
27
27
  spec.add_runtime_dependency 'rails', ">= 4.2", '~>4.2.0'
28
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechat_public
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-19 00:00:00.000000000 Z
11
+ date: 2015-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,20 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.8'
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: 1.8.0
47
+ version: '1.7'
51
48
  type: :runtime
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - ">="
56
53
  - !ruby/object:Gem::Version
57
- version: '1.8'
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: 1.8.0
54
+ version: '1.7'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: rails
63
57
  requirement: !ruby/object:Gem::Requirement