puntopagos 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,8 @@ module PuntoPagos
8
8
  end
9
9
 
10
10
  def sign(string)
11
- "PP "+@@config.puntopagos_key+":"+ Base64.encode64(OpenSSL::HMAC.digest('sha1',@@config.puntopagos_secret, string)).chomp
11
+ encoded_string = Base64.encode64(OpenSSL::HMAC.digest('sha1',@@config.puntopagos_secret, string)).chomp
12
+ "PP "+@@config.puntopagos_key+":"+ encoded_string
12
13
  end
13
14
  end
14
15
  end
@@ -6,11 +6,14 @@ module PuntoPagos
6
6
  @@function = "transaccion/notificar"
7
7
  end
8
8
 
9
- def correct? token, trx_id, amount, timestamp, pp_signature
10
- message = create_message token, trx_id, amount, timestamp
9
+ def valid? headers, params
10
+ timestamp = get_timestamp headers
11
+
12
+ message = create_message params["token"], params["trx_id"], params["monto"], timestamp
11
13
  authorization = Authorization.new(@env)
12
14
  signature = authorization.sign(message)
13
- signature == pp_signature
15
+ signature == pp_signature(headers)
16
+
14
17
  end
15
18
 
16
19
  private
@@ -18,5 +21,13 @@ module PuntoPagos
18
21
  def create_message token, trx_id, amount, timestamp
19
22
  @@function + "\n" + token + "\n" + trx_id + "\n" + amount + "\n" + timestamp
20
23
  end
24
+
25
+ def pp_signature headers
26
+ headers['Autorizacion']
27
+ end
28
+
29
+ def get_timestamp headers
30
+ headers['Fecha']
31
+ end
21
32
  end
22
33
  end
@@ -1,3 +1,3 @@
1
1
  module PuntoPagos
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/puntopagos.rb CHANGED
@@ -3,4 +3,5 @@ require File.join(File.dirname(__FILE__),"puntopagos/authorization")
3
3
  require File.join(File.dirname(__FILE__),"puntopagos/executioner")
4
4
  require File.join(File.dirname(__FILE__),"puntopagos/request")
5
5
  require File.join(File.dirname(__FILE__),"puntopagos/response")
6
+ require File.join(File.dirname(__FILE__),"puntopagos/notification")
6
7
  require File.join(File.dirname(__FILE__),"puntopagos/version")
@@ -35,4 +35,12 @@ class CreateRequestTest < Test::Unit::TestCase
35
35
 
36
36
  end
37
37
 
38
+ def test_notification
39
+ puts "testing notification"
40
+ notification = PuntoPagos::Notification.new('production')
41
+ headers = {'Fecha' => 'Thu, 14 Jun 2012 22:52:47 GMT', 'Autorizacion' => 'PP rkdXmAGWLHCKdPyyk6ig:qOSavthLY3ElqsRCtxFEl02lL1s='}
42
+ params = {'token' => 'M5N1DAE6PALVAF8K', 'monto' => '1000000.00', 'trx_id' => '9787415132'}
43
+ assert notification.valid?(headers, params) == true
44
+ end
45
+
38
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puntopagos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-06-15 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
17
- requirement: &2161643620 !ruby/object:Gem::Requirement
17
+ requirement: &2161561760 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,7 +22,7 @@ dependencies:
22
22
  version: 1.6.7
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2161643620
25
+ version_requirements: *2161561760
26
26
  description: Ruby wrapper for PuntoPagos Payment API
27
27
  email:
28
28
  - imella@acid.cl