transbank-webpay 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da218d0486264efe68c50b094191a25635527e46
4
- data.tar.gz: 359d79d85aace9647dc7179ed4e1689aae94293d
3
+ metadata.gz: e41cf49e63380f433816c8ffeab129a4439af783
4
+ data.tar.gz: 2b4a58573ff7140c13de428a2054a48606878220
5
5
  SHA512:
6
- metadata.gz: 39322504f0976c64ef41db5558f4b24457346b8fab2b1bcc125b0eeb6d24a337fde87fecbbb39d893a8968815064a42b1ecf04b9c53a514556d1965516776e2b
7
- data.tar.gz: c55dc3592895bee04a99c91291ca90b0d403961799fa450179e9071d7981060a8521b4168dfa17cebc8361fe4d0b7624c9b36d7513e59f4ed14bfea988693bde
6
+ metadata.gz: 159796edc3f3ee02ab7f39aaa0b8703e0571012205101edeb8762276f149961e7ed63c4a776ce45afad0ca14f5f3ce5a85fb17d7c0c4468f4ed3baf39ea78688
7
+ data.tar.gz: fb85fa5eb42c292da501c63211531b81d9c296817df4e046926d13aa4bf380695dd9a10256b3704db3d328f1ced29037ef52d1d1d0a7f1f996fc7512f68cb7e9
@@ -7,6 +7,7 @@ require 'builder'
7
7
 
8
8
  require 'transbank/webpay/version'
9
9
  require 'transbank/webpay/configuration'
10
+ require 'transbank/webpay/vault'
10
11
  require 'transbank/webpay/validations'
11
12
  require 'transbank/webpay/struct'
12
13
  require 'transbank/webpay/reader'
@@ -23,19 +24,19 @@ require 'transbank/webpay/api'
23
24
  module Transbank
24
25
  module Webpay
25
26
  class << self
26
- attr_accessor :configuration
27
+ attr_reader :configuration
27
28
 
28
29
  # Delegate api
29
30
  Api.instance_methods.each { |m| define_method(m) { |*args| api.send(m, *args) } }
30
- end
31
31
 
32
- def self.configure
33
- self.configuration ||= Configuration.new
34
- yield(configuration)
35
- end
32
+ def configure
33
+ @configuration ||= Configuration.new
34
+ yield(@configuration)
35
+ end
36
36
 
37
- def self.api
38
- @api ||= Api.new
37
+ def api
38
+ @api ||= Api.new
39
+ end
39
40
  end
40
41
  end
41
42
  end
@@ -46,8 +46,8 @@ module Transbank
46
46
  unsigned_xml = unsigned_document.to_s
47
47
 
48
48
  signer = Signer.new(unsigned_xml)
49
- signer.cert = cert
50
- signer.private_key = private_key
49
+ signer.cert = Transbank::Webpay::Vault.cert
50
+ signer.private_key = Transbank::Webpay::Vault.private_key
51
51
 
52
52
  signer.document.xpath('//soapenv:Body', soapenv: SOAPENV).each do |node|
53
53
  signer.digest!(node)
@@ -81,13 +81,13 @@ module Transbank
81
81
  end
82
82
  end
83
83
 
84
- def cert
85
- @cert ||= OpenSSL::X509::Certificate.new open(Transbank::Webpay.configuration.cert_path)
86
- end
84
+ # def cert
85
+ # @cert ||= OpenSSL::X509::Certificate.new open(Transbank::Webpay.configuration.cert_path)
86
+ # end
87
87
 
88
- def private_key
89
- @private_key ||= OpenSSL::PKey::RSA.new open(Transbank::Webpay.configuration.key_path)
90
- end
88
+ # def private_key
89
+ # @private_key ||= OpenSSL::PKey::RSA.new open(Transbank::Webpay.configuration.key_path)
90
+ # end
91
91
  end
92
92
  end
93
93
  end
@@ -27,7 +27,7 @@ module Transbank
27
27
  end
28
28
 
29
29
  def response_code_display
30
- RESPONSE_CODE.fetch(action, RESPONSE_CODE[:default]).fetch(response_code, response_code)
30
+ RESPONSE_CODE.fetch(action, RESPONSE_CODE[:default]).fetch(xml_response_code, xml_response_code)
31
31
  end
32
32
 
33
33
  def body
@@ -56,7 +56,7 @@ module Transbank
56
56
  doc.xpath("//faultstring")
57
57
  end
58
58
 
59
- def response_code
59
+ def xml_response_code
60
60
  doc.xpath("//responseCode").text
61
61
  end
62
62
 
@@ -29,21 +29,21 @@ module Transbank
29
29
  Base64.encode64(digest).strip
30
30
  end
31
31
 
32
- def server_cert
33
- @server_cert ||= begin
34
- path = Transbank::Webpay.configuration.server_cert_path
35
- OpenSSL::X509::Certificate.new File.read(path)
36
- end
37
- end
32
+ # def server_cert
33
+ # @server_cert ||= begin
34
+ # path = Transbank::Webpay.configuration.server_cert_path
35
+ # OpenSSL::X509::Certificate.new File.read(path)
36
+ # end
37
+ # end
38
38
 
39
- def pub_key
40
- server_cert.public_key
41
- end
39
+ # def pub_key
40
+ # server_cert.public_key
41
+ # end
42
42
 
43
43
  # Validations
44
44
  def validate_response_code!
45
- return if response_code.empty?
46
- @errors << response_code_display if response_code != '0'
45
+ return if xml_response_code.empty?
46
+ @errors << response_code_display if xml_response_code != '0'
47
47
  end
48
48
 
49
49
  def validate_http_response!
@@ -63,7 +63,11 @@ module Transbank
63
63
  Nokogiri::XML::XML_C14N_EXCLUSIVE_1_0, ["soap"], nil
64
64
  )
65
65
 
66
- pub_key.verify OpenSSL::Digest::SHA1.new, signature_decode, signed_node_canonicalize
66
+ Transbank::Webpay::Vault.pub_key.verify(
67
+ OpenSSL::Digest::SHA1.new,
68
+ signature_decode,
69
+ signed_node_canonicalize
70
+ )
67
71
  end
68
72
 
69
73
  def validate_digest
@@ -0,0 +1,27 @@
1
+ require 'benchmark'
2
+ module Transbank
3
+ module Webpay
4
+ class Vault
5
+ class << self
6
+ def cert
7
+ @cert ||= OpenSSL::X509::Certificate.new open(Transbank::Webpay.configuration.cert_path)
8
+ end
9
+
10
+ def private_key
11
+ @private_key ||= OpenSSL::PKey::RSA.new open(Transbank::Webpay.configuration.key_path)
12
+ end
13
+
14
+ def server_cert
15
+ @server_cert ||= begin
16
+ path = Transbank::Webpay.configuration.server_cert_path
17
+ OpenSSL::X509::Certificate.new File.read(path)
18
+ end
19
+ end
20
+
21
+ def pub_key
22
+ server_cert.public_key
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,5 +1,5 @@
1
1
  module Transbank
2
2
  module Webpay
3
- VERSION = '0.2.1'
3
+ VERSION = '0.2.2'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transbank-webpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ramón Soto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-07-18 00:00:00.000000000 Z
11
+ date: 2016-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: signer
@@ -142,6 +142,7 @@ files:
142
142
  - lib/transbank/webpay/response.rb
143
143
  - lib/transbank/webpay/struct.rb
144
144
  - lib/transbank/webpay/validations.rb
145
+ - lib/transbank/webpay/vault.rb
145
146
  - lib/transbank/webpay/version.rb
146
147
  - transbank-webpay.gemspec
147
148
  homepage: ''