gestpay 0.0.2 → 0.0.3

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: baa4e9609baa08d89ff8f3e4b50a22e68e2027e1
4
- data.tar.gz: b070856652f23fe654c167677bda404cabf00cd2
3
+ metadata.gz: 870c93c0e54e6a987c5ce22a6d4dac61b68bb040
4
+ data.tar.gz: e651220925bd38013b1ff96f69c5acc8eebcec9a
5
5
  SHA512:
6
- metadata.gz: c543332f7bb4e87608873b90ce6d35aa6498b76d50614f4296459bec39b0bb758c2cd51287f462cbf1e41d3046bd66f0489a86aeda6392bf25ff9037ea2323ca
7
- data.tar.gz: 3ac232d167c96b36874bb050e229060884d49b5a194b1e0aceb8081064a96248ae68f756f6337ec5582376b55934625a19ee40594cb7514ed72372f523289edc
6
+ metadata.gz: 123c1e5565a02a49b2137fc43aedb8ff022e71528037b64238903e2dcd6c33ca97b2f508a3d863889c9a7eef49a27f3298044545370a76919ad90e5f850080ba
7
+ data.tar.gz: a68273cb6d13de60e42d6f93e39c21aaeffde42589faa1cca4de716e8389734cad09d1340d0a80854523dbc535b662069566266993356c3c2637b8487963551d
@@ -1,6 +1,12 @@
1
1
  module Gestpay
2
2
  module Result
3
3
  class Decrypt < Gestpay::Result::Base
4
+ def buyer_name
5
+ buyer[:buyer_name]
6
+ end
7
+ def buyer_email
8
+ buyer[:buyer_email]
9
+ end
4
10
  end
5
11
  end
6
12
  end
@@ -8,6 +8,11 @@ module Gestpay
8
8
  def verify_by_visa?
9
9
  error_code == '8006'
10
10
  end
11
+
12
+ def visa_encrypted_string
13
+ verify_by_visa_data = data[:vb_v]
14
+ verify_by_visa_data[:vb_v_risp] if verify_by_visa? && verify_by_visa_data[:vb_v_buyer] == 'OK'
15
+ end
11
16
  end
12
17
  end
13
18
  end
@@ -1,3 +1,3 @@
1
1
  module Gestpay
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -5,6 +5,7 @@ require (File.expand_path('../../../spec_helper', __FILE__))
5
5
  describe Gestpay::Digest do
6
6
 
7
7
  let(:digest) { Gestpay::Digest.new }
8
+ subject { result }
8
9
 
9
10
  after do
10
11
  VCR.eject_cassette
@@ -26,46 +27,36 @@ describe Gestpay::Digest do
26
27
  }
27
28
  end
28
29
 
29
- it 'should return a Result object' do
30
- result.should respond_to(:success?)
31
- end
32
-
33
- it "should return a Result with a token" do
34
- result.should be_success
35
- result.encrypted_string.should == 'i3eUhxjb5HNxldtVSXb4qxaYva_uWKNn6BSQgRXkBUWKjoQvU6IbNgocbJYSr2LZ3FdnsvnpXH8KQ1*lizVn5LmWYMmN7JA0wMpuURkqftlBYPdjzXMmOomRrUenCF1JzE0j1ugNdSIbY7rrrUVxYAtjdvkKmyKrtLOiDuTohJsWaWGuIH4y_KUUa5cWcY3Oqz8eSjVfiWr8RUeAYCVmeA'
36
- end
30
+ it { should respond_to(:success?) }
31
+ it { should be_success }
32
+ its(:encrypted_string) { should include('i3eUhxjb5HNxldtVSXb4qxaYva_uWKNn6BSQgRXkBUWKjoQvU6IbNgocbJYSr2LZ3FdnsvnpXH8KQ1') }
37
33
  end
38
34
 
39
35
  context "with a wrong data hash" do
40
36
  before { VCR.insert_cassette 'encrypt_ko', :record => :new_episodes }
41
37
  let(:hash) { Hash.new }
42
38
 
43
- it "should raise an error" do
44
- result.should_not be_success
45
- end
39
+ it { should_not be_success }
46
40
  end
47
41
  end
48
42
 
49
43
  describe '#decrypt' do
50
44
  context "with an ok transaction" do
51
45
  before { VCR.insert_cassette 'decrypt_ok', :record => :new_episodes }
52
- it "should return an ok envelope" do
53
- result = digest.decrypt('rxd4jKk3CN8PbPX7gHh9u60ocD8_R85bI0NR_C*SOk1r1y2P8E9fDBgXKmmMnyyhyosyF8X6rvyTs_GCulPAy8TZKJc99tSb57cAWuo36MZ9_OWp2pwgKYLx7jS9XaLBgAqBufiFIoPq*Pwj5SdHY06vUf3ebnKryDvRnC0oldLw1YxpkIxlebYd7YxvNfSGLfSvce2NN8wWcwPfdR2jPKb*_oJpCEVZNO5TVMaH6h1UONEksNLIuDeZPqWfrHRcgbi0MLuoifb7ZBGrTw7HlEqfF6ojKt2oihKtNdn3Y3W5MkBHCsBrWq63TLYlDU8PRaV20jAdqQIJBHopVyumMGtyLoHlMFaH*nXUvgzwmYnTtwQZ*Q1nGCP0cl4YilBcivSTJCOkcrRwUhqYOl*4F1kmT15Nkp_sBB4oJRODYs8')
54
- result.should be_success
55
- result.data[:buyer].should == {:buyer_name=>"Test Customer", :buyer_email=>"test@example.com"}
56
- result.data[:transaction_result].should == 'OK'
57
- result.data[:shop_transaction_id].should == '123'
58
- end
46
+ let(:result ) { digest.decrypt('rxd4jKk3CN8PbPX7gHh9u60ocD8_R85bI0NR_C*SOk1r1y2P8E9fDBgXKmmMnyyhyosyF8X6rvyTs_GCulPAy8TZKJc99tSb57cAWuo36MZ9_OWp2pwgKYLx7jS9XaLBgAqBufiFIoPq*Pwj5SdHY06vUf3ebnKryDvRnC0oldLw1YxpkIxlebYd7YxvNfSGLfSvce2NN8wWcwPfdR2jPKb*_oJpCEVZNO5TVMaH6h1UONEksNLIuDeZPqWfrHRcgbi0MLuoifb7ZBGrTw7HlEqfF6ojKt2oihKtNdn3Y3W5MkBHCsBrWq63TLYlDU8PRaV20jAdqQIJBHopVyumMGtyLoHlMFaH*nXUvgzwmYnTtwQZ*Q1nGCP0cl4YilBcivSTJCOkcrRwUhqYOl*4F1kmT15Nkp_sBB4oJRODYs8') }
47
+
48
+ it { should be_success }
49
+ its(:buyer_name) { should == "Test Customer" }
50
+ its(:buyer_email) { should == "test@example.com" }
51
+ its(:shop_transaction_id) { should == '123' }
59
52
  end
60
53
 
61
54
  context "with a failed transaction" do
62
55
  before { VCR.insert_cassette 'decrypt_ko', :record => :new_episodes }
63
- it "should return a ko envelope" do
64
- string = 'KFzOej9MGr*lXEe*LOB2wzLmHja3ghKAo3iMpR1pG35moFdejWKzAj1Zd*R_e0x8qyOSTQmZVGRXEzJMVzd9xRXS*7tkbQLPOuBZ7qAtoFsX2Fxks5HxY*3YsUeiOInUXNF7*ih1bzkwmYGchDqYnEi31rN8ZYwLHnjwMIEmWJNn7oJHE6RpfUHG*7qohDxZRto*VVTPFdM93CwECq7SdYLebAQ_9EefdcE90QCRcFdGxZp_yAr_t*YRgLcZ5B5j843krtjCvf_m8nS99CroJQ768XsvlXy29McM2G*369mTufGyGMRab5PIvJlpSd3ds6mGi1IoMJAyXVkCu_ygRDDXN5Fk4Hz58LrDIci4ZszyVRcqy56SeYV7eG*kG8LZV40WV2ey8Qeh8XDUZnCV3A'
65
- result = digest.decrypt(string)
66
- result.should_not be_success
67
- result.error.should == "Error 74: Autorizzazione negata"
68
- end
56
+ let(:result ) { digest.decrypt('KFzOej9MGr*lXEe*LOB2wzLmHja3ghKAo3iMpR1pG35moFdejWKzAj1Zd*R_e0x8qyOSTQmZVGRXEzJMVzd9xRXS*7tkbQLPOuBZ7qAtoFsX2Fxks5HxY*3YsUeiOInUXNF7*ih1bzkwmYGchDqYnEi31rN8ZYwLHnjwMIEmWJNn7oJHE6RpfUHG*7qohDxZRto*VVTPFdM93CwECq7SdYLebAQ_9EefdcE90QCRcFdGxZp_yAr_t*YRgLcZ5B5j843krtjCvf_m8nS99CroJQ768XsvlXy29McM2G*369mTufGyGMRab5PIvJlpSd3ds6mGi1IoMJAyXVkCu_ygRDDXN5Fk4Hz58LrDIci4ZszyVRcqy56SeYV7eG*kG8LZV40WV2ey8Qeh8XDUZnCV3A') }
57
+
58
+ it { should_not be_success }
59
+ its(:error) { should == "Error 74: Autorizzazione negata" }
69
60
  end
70
61
  end
71
62
 
@@ -5,16 +5,19 @@ require (File.expand_path('../../../spec_helper', __FILE__))
5
5
  describe Gestpay::Gateway do
6
6
 
7
7
  let(:gateway) { Gestpay::Gateway.new }
8
+ subject { result }
8
9
 
9
10
  after do
10
11
  VCR.eject_cassette
11
12
  end
12
13
 
13
14
  describe '#payment' do
15
+ let(:result) { gateway.payment(hash) }
16
+
14
17
  context "with an ok data hash" do
15
18
  before { VCR.insert_cassette 'payment_ok', :record => :new_episodes }
16
- it "should return stuff" do
17
- hash = {
19
+ let(:hash) do
20
+ {
18
21
  :amount => '0.02',
19
22
  :shop_transaction_id => '12',
20
23
  :card_number => '5364000000000987',
@@ -28,82 +31,74 @@ describe Gestpay::Gateway do
28
31
  :payment_id => 15
29
32
  }
30
33
  }
31
- result = gateway.payment(hash)
32
- result.should be_success
33
- result.amount.should == 0.02
34
34
  end
35
+
36
+ it { should be_success }
37
+ its(:amount) { should == 0.02 }
38
+ its(:visa_encrypted_string) { should be_nil}
35
39
  end
36
40
 
37
41
  context "with a VISA credit card with Verification" do
38
42
  before { VCR.insert_cassette 'payment_visa', :record => :new_episodes }
39
- it "should raise a VerifyVisa error" do
40
- hash = {
41
- :card_number => '4556541926187165'
42
- }
43
- result = gateway.payment(hash)
44
- result.should be_verify_by_visa
43
+ let(:hash) do
44
+ { :card_number => '4556541926187165' }
45
45
  end
46
+
47
+ it { should be_verify_by_visa }
48
+ its(:visa_encrypted_string) { should include('mRTLDNghVNbEYcEsmpi5WTNwD5XIrf2NKbO8iVRXYd5we9*K*c8') }
46
49
  end
47
50
 
48
51
  context "with an invalid credit card" do
49
52
  before { VCR.insert_cassette 'payment_ko', :record => :new_episodes }
50
- it "should raise an error" do
51
- hash = {
53
+ let(:hash) do
54
+ {
52
55
  :amount => '0.02',
53
56
  :shop_transaction_id => '12',
54
57
  :card_number => '5432123456789012'
55
58
  }
56
- result = gateway.payment(hash)
57
- result.should_not be_success
58
- result.error.should == 'Error 74: Autorizzazione negata'
59
59
  end
60
+
61
+ it { should_not be_success }
62
+ its(:error) { should == 'Error 74: Autorizzazione negata' }
60
63
  end
61
64
 
62
65
  context "with a token" do
63
66
  before { VCR.insert_cassette 'payment_token', :record => :new_episodes }
64
- it "should be ok" do
65
- hash = {
67
+ let(:hash) do
68
+ {
66
69
  :amount => '0.02',
67
70
  :shop_transaction_id => '12',
68
71
  :token_value => '53QWERTYU0I90987'
69
72
  }
70
- result = gateway.payment(hash)
71
- result.should be_success
72
- result.amount.should == 0.02
73
73
  end
74
+ it { should be_success }
75
+ its(:amount) { should == 0.02 }
74
76
  end
75
77
 
76
78
  end
77
79
 
78
80
  describe '#request_token' do
81
+ let(:hash) do
82
+ {
83
+ :card_number => '4556541926187165',
84
+ :expiry_month => '12',
85
+ :expiry_year => '20',
86
+ :cvv => "123",
87
+ }
88
+ end
89
+
79
90
  context "with an ok data hash" do
80
91
  before { VCR.insert_cassette 'request_token_ok', :record => :new_episodes }
81
- it "should return a payment token" do
82
- hash = {
83
- :card_number => '4556541926187165',
84
- :expiry_month => '12',
85
- :expiry_year => '20',
86
- :cvv => "123",
87
- }
88
- # This returned ok as we didn't verify the card with the false parameter
89
- result = gateway.request_token(hash, false)
90
- result.token.should == "45OGBX64451Y7165"
91
- # result[:info] also returned
92
- end
92
+ let(:result) { gateway.request_token(hash, false) }
93
+
94
+ its(:token) { should == "45OGBX64451Y7165" }
93
95
  end
94
96
 
95
97
  context "with an invalid credit card" do
96
98
  before { VCR.insert_cassette 'request_token_ko', :record => :new_episodes }
97
- it "should raise an error" do
98
- hash = {
99
- :card_number => '4556541926187165',
100
- :expiry_month => '12',
101
- :expiry_year => '20',
102
- :cvv => "123",
103
- }
104
- result = gateway.request_token(hash)
105
- result.error.should == "Error 405: Autorizzazione negata dai circuiti"
106
- end
99
+ let(:result) { gateway.request_token(hash) }
100
+
101
+ its(:error) { should == "Error 405: Autorizzazione negata dai circuiti" }
107
102
  end
108
103
  end
109
104
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gestpay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Mencarini