gestpay 0.0.2 → 0.0.3

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: 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