pago_efectivo 0.0.1 → 0.1.0

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
- SHA1:
3
- metadata.gz: 39d4e1696f5621391ae6c184b9f361fb5a837293
4
- data.tar.gz: dee69c3b22cb4d91cb1fcf331261d8667b5dc513
2
+ SHA256:
3
+ metadata.gz: 345175b41707929def64235200de1cbb07173d3ff0154aa57d85bd6513726c7f
4
+ data.tar.gz: 17848ad1be621f93a14951980bb1797de5f66fffd103134072c6582d514ffee8
5
5
  SHA512:
6
- metadata.gz: 92b20589adb941888b28791e2c57f2b77f656d00d4734df02a57ebd7c2ada89682a1380aaf9cf6e8f6c985e2eb0ee1c5eca303e8e258b2e47daee0a80bdd5ddf
7
- data.tar.gz: 5de31c49270265974383de9f171673d3c1662d746266d81df72c35f6cb8922ed0e65293706caf3cbf5c18708da3e992ddf3bea884639509dfaa6375a4266b090
6
+ metadata.gz: d9c07f045b5555f70e965c7a0027d0038325232ae0cc40fdbfbdff9cb4ba37c2c65e9287a769a142a2bdeee497c801c0eb9a1514e631d728c7c6d0684d3b777a
7
+ data.tar.gz: 01362611db3b3961ccbdeb69bb0e9cb9f3e0a95a88f8adaf9973a44d47a31cb1f27a131c0c77dfe8eb0749db23fbe1f652c0e4f43a32d94bfd8dcf9b601f6953
data/Gemfile CHANGED
@@ -3,5 +3,3 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'gyoku', git: 'https://github.com/ccarruitero/gyoku.git', branch: 'except_convert'
6
- gem 'savon'
7
- gem 'nokogiri'
@@ -13,18 +13,35 @@ module PagoEfectivo
13
13
  'xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/'
14
14
  }
15
15
 
16
- def initialize env=nil
16
+ def initialize env=nil, proxy=false
17
17
  if env == 'production'
18
18
  @api_server = 'https://pagoefectivo.pe'
19
19
  else
20
- @api_server = 'http://pre.pagoefectivo.pe'
20
+ @api_server = 'https://pre.2b.pagoefectivo.pe'
21
21
  end
22
22
 
23
- if ENV['PROXY_URL'] != nil
24
- @proxy = ENV['PROXY_URL']
23
+ crypto_path = '/PagoEfectivoWSCrypto/WSCrypto.asmx?WSDL'
24
+ cip_path = '/PagoEfectivoWSGeneralv2/service.asmx?WSDL'
25
+ crypto_service = @api_server + crypto_path
26
+ cip_service = @api_server + cip_path
27
+
28
+ if env=='production'
29
+ if proxy
30
+ @crypto_client = Savon.client(wsdl: crypto_service, proxy: ENV['PROXY_URL'])
31
+ @cip_client = Savon.client(wsdl: cip_service, proxy: ENV['PROXY_URL'])
32
+ else
33
+ @crypto_client = Savon.client(wsdl: crypto_service)
34
+ @cip_client = Savon.client(wsdl: cip_service)
35
+ end
36
+ else
37
+ if proxy
38
+ @crypto_client = Savon.client(wsdl: crypto_service, proxy: ENV['PROXY_URL'], ssl_verify_mode: :none)
39
+ @cip_client = Savon.client(wsdl: cip_service, proxy: ENV['PROXY_URL'], ssl_verify_mode: :none)
40
+ else
41
+ @crypto_client = Savon.client(wsdl: crypto_service, ssl_verify_mode: :none)
42
+ @cip_client = Savon.client(wsdl: cip_service, ssl_verify_mode: :none)
43
+ end
25
44
  end
26
- @crypto_path = '/PagoEfectivoWSCrypto/WSCrypto.asmx?WSDL'
27
- @cip_path = '/PagoEfectivoWSGeneralv2/service.asmx?WSDL'
28
45
  end
29
46
 
30
47
  def set_key type, path
@@ -41,38 +58,41 @@ module PagoEfectivo
41
58
  end
42
59
 
43
60
  def signature(text)
44
- server = @api_server + @crypto_path
45
- client = Savon.client(wsdl: server, proxy: @proxy)
46
- response = client.call(:signer, message: {
47
- plain_text: text, private_key: @private_key
48
- })
61
+ response = @crypto_client.call(:signer, message: {
62
+ plain_text: text, private_key: @private_key
63
+ })
49
64
  response.to_hash[:signer_response][:signer_result]
50
65
  end
51
66
 
52
67
  def encrypt_text(text)
53
- server = @api_server + @crypto_path
54
- client = Savon.client(wsdl: server, proxy: @proxy)
55
- response = client.call(:encrypt_text, message: {
56
- plain_text: text, public_key: @public_key
57
- })
68
+ response = @crypto_client.call(:encrypt_text, message: {
69
+ plain_text: text, public_key: @public_key
70
+ })
58
71
  response.to_hash[:encrypt_text_response][:encrypt_text_result]
59
72
  end
60
73
 
61
74
  def unencrypt enc_text
62
- server = @api_server + @crypto_path
63
- client = Savon.client(wsdl: server, proxy: @proxy)
64
- response = client.call(:decrypt_text, message: {
65
- encrypt_text: enc_text, private_key: @private_key
66
- })
75
+ response = @crypto_client.call(:decrypt_text, message: {
76
+ encrypt_text: enc_text, private_key: @private_key
77
+ })
67
78
  response.to_hash[:decrypt_text_response][:decrypt_text_result]
68
79
  end
69
80
 
70
81
  # after unencrypt cip result this return like string so we need parse this
71
82
  # for access cip data in more easy way
72
- def parse_cip_result uncrypt_text
83
+ def parse_cip_result uncrypt_text, keys=[]
73
84
  parser = Nori.new
74
85
  cip = parser.parse uncrypt_text
75
- cip['ConfirSolPago']['CIP']
86
+ if keys.length > 0
87
+ result = cip
88
+
89
+ keys.map do |k|
90
+ result = result[k]
91
+ end
92
+ result
93
+ else
94
+ cip
95
+ end
76
96
  end
77
97
 
78
98
  def generate_xml(cod_serv, currency, total, pay_methods, cod_trans, email,
@@ -135,9 +155,7 @@ module PagoEfectivo
135
155
  end
136
156
 
137
157
  def generate_cip(cod_serv, signer, xml)
138
- server = @api_server + @cip_path
139
- client = Savon.client(wsdl: server, proxy: @proxy)
140
- response = client.call(:generar_cip_mod1, message: {
158
+ response = @cip_client.call(:generar_cip_mod1, message: {
141
159
  request: {
142
160
  'CodServ' => cod_serv,
143
161
  'Firma' => signer,
@@ -153,9 +171,7 @@ module PagoEfectivo
153
171
  # info_request: no specified in pago efectivo documentation, send blank
154
172
  # for now
155
173
  def consult_cip cod_serv, signed_cips, encrypted_cips, info_request=''
156
- server = @api_server + @cip_path
157
- client = Savon.client(wsdl: server, proxy: @proxy)
158
- response = client.call(:consultar_cip_mod1, message: {
174
+ response = @cip_client.call(:consultar_cip_mod1, message: {
159
175
  'request' => {
160
176
  'CodServ' => cod_serv,
161
177
  'Firma' => signed_cips,
@@ -181,9 +197,7 @@ module PagoEfectivo
181
197
  # info_request: no specified in pago efectivo documentation, send blank
182
198
  # for now
183
199
  def delete_cip cod_serv, signed_cip, encrypted_cip, info_request=''
184
- server = @api_server + @cip_path
185
- client = Savon.client(wsdl: server, proxy: @proxy)
186
- response = client.call(:eliminar_cip_mod1, message: {
200
+ response = @cip_client.call(:eliminar_cip_mod1, message: {
187
201
  'request' => {
188
202
  'CodServ' => cod_serv,
189
203
  'Firma' => signed_cip,
@@ -201,9 +215,7 @@ module PagoEfectivo
201
215
  # info_request: no specified in pago efectivo documentation, send blank
202
216
  # for now
203
217
  def update_cip cod_serv,signed_cip,encrypted_cip,exp_date,info_request=''
204
- server = @api_server + @cip_path
205
- client = Savon.client(wsdl: server, proxy: @proxy)
206
- response = client.call(:actualizar_cip_mod1, message: {
218
+ response = @cip_client.call(:actualizar_cip_mod1, message: {
207
219
  'request' => {
208
220
  'CodServ' => cod_serv,
209
221
  'Firma' => signed_cip,
@@ -1,17 +1,17 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "pago_efectivo"
3
- s.version = "0.0.1"
3
+ s.version = "0.1.0"
4
4
  s.summary = "SOAP client to use Pago Efectivo"
5
5
  s.description = s.summary
6
6
  s.authors = ["César Carruitero"]
7
7
  s.email = ["cesar@mozilla.pe"]
8
8
  s.homepage = "https://github.com/ccarruitero/pago_efectivo"
9
- s.license = "MPL"
9
+ s.license = "MPL-2"
10
10
 
11
11
  s.files = `git ls-files`.split("\n")
12
12
 
13
- s.add_runtime_dependency "gyoku"
14
- s.add_runtime_dependency "savon"
13
+ s.add_runtime_dependency "gyoku", "1.1.1"
14
+ s.add_runtime_dependency "savon", "2.6.0"
15
15
 
16
16
  s.add_development_dependency "cutest"
17
17
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pago_efectivo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - César Carruitero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2018-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gyoku
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.1.1
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
- version: '0'
26
+ version: 1.1.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: savon
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 2.6.0
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: 2.6.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cutest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -71,7 +71,7 @@ files:
71
71
  - test/helper.rb
72
72
  homepage: https://github.com/ccarruitero/pago_efectivo
73
73
  licenses:
74
- - MPL
74
+ - MPL-2
75
75
  metadata: {}
76
76
  post_install_message:
77
77
  rdoc_options: []
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  requirements: []
91
91
  rubyforge_project:
92
- rubygems_version: 2.2.2
92
+ rubygems_version: 2.7.6
93
93
  signing_key:
94
94
  specification_version: 4
95
95
  summary: SOAP client to use Pago Efectivo