vantiv 1.0.0 → 1.0.1

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.
Files changed (75) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +2 -0
  5. data/CHANGELOG.md +7 -3
  6. data/README.md +4 -4
  7. data/bin/generate_sandbox_fixtures +2 -1
  8. data/exe/vantiv-certify-app +9 -30
  9. data/lib/vantiv.rb +17 -4
  10. data/lib/vantiv/api/address.rb +9 -2
  11. data/lib/vantiv/api/live_transaction_response.rb +4 -0
  12. data/lib/vantiv/api/request.rb +14 -8
  13. data/lib/vantiv/api/request_body.rb +6 -3
  14. data/lib/vantiv/api/response.rb +6 -6
  15. data/lib/vantiv/api/response_body.rb +13 -4
  16. data/lib/vantiv/api/transaction.rb +22 -4
  17. data/lib/vantiv/api/transaction_request_representer_xml.rb +4 -0
  18. data/lib/vantiv/api/transaction_response.rb +22 -3
  19. data/lib/vantiv/api/transaction_response_representer.rb +2 -0
  20. data/lib/vantiv/api/transaction_response_representer_xml.rb +2 -0
  21. data/lib/vantiv/certification/paypage_driver.rb +7 -1
  22. data/lib/vantiv/certification/views/index.html.erb +1 -1
  23. data/lib/vantiv/environment.rb +10 -5
  24. data/lib/vantiv/mocked_sandbox/api_request.rb +0 -2
  25. data/lib/vantiv/mocked_sandbox/fixture_generator.rb +11 -0
  26. data/lib/vantiv/mocked_sandbox/fixtures/auth--4457000300000007.json +8 -11
  27. data/lib/vantiv/mocked_sandbox/fixtures/auth--4457000301100004.json +8 -11
  28. data/lib/vantiv/mocked_sandbox/fixtures/auth--4457002100000005.json +7 -10
  29. data/lib/vantiv/mocked_sandbox/fixtures/auth--4457010000000009.json +7 -10
  30. data/lib/vantiv/mocked_sandbox/fixtures/auth--5112000101110009.json +8 -11
  31. data/lib/vantiv/mocked_sandbox/fixtures/auth--5112001600000006.json +7 -10
  32. data/lib/vantiv/mocked_sandbox/fixtures/auth--5112001900000003.json +7 -10
  33. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--4457000300000007.json +8 -11
  34. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--4457000301100004.json +8 -11
  35. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--4457002100000005.json +7 -10
  36. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--4457010000000009.json +7 -10
  37. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--5112000101110009.json +8 -11
  38. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--5112001600000006.json +7 -10
  39. data/lib/vantiv/mocked_sandbox/fixtures/auth_capture--5112001900000003.json +7 -10
  40. data/lib/vantiv/mocked_sandbox/fixtures/auth_reversal.json +6 -9
  41. data/lib/vantiv/mocked_sandbox/fixtures/capture.json +6 -9
  42. data/lib/vantiv/mocked_sandbox/fixtures/credit.json +6 -9
  43. data/lib/vantiv/mocked_sandbox/fixtures/refund--4457000300000007.json +6 -10
  44. data/lib/vantiv/mocked_sandbox/fixtures/refund--4457000301100004.json +6 -10
  45. data/lib/vantiv/mocked_sandbox/fixtures/refund--4457002100000005.json +6 -10
  46. data/lib/vantiv/mocked_sandbox/fixtures/refund--4457010000000009.json +6 -10
  47. data/lib/vantiv/mocked_sandbox/fixtures/refund--5112000101110009.json +6 -10
  48. data/lib/vantiv/mocked_sandbox/fixtures/refund--5112001600000006.json +6 -10
  49. data/lib/vantiv/mocked_sandbox/fixtures/refund--5112001900000003.json +6 -10
  50. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--RGFQNCt6U1d1M21SeVByVTM4dHlHb1FsVkUrSmpnWXhNY0o5UkMzRlZFanZiUHVnYjN1enJXbG1WSDF4aXlNc.json +5 -4
  51. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-account-closed-token.json +20 -0
  52. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-contact-cardholder-token.json +20 -0
  53. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-token.json +20 -0
  54. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--expired-card-token.json +20 -0
  55. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--insufficient-funds-token.json +20 -0
  56. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--invalid-account-number-token.json +20 -0
  57. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--mocked-valid-temporary-token.json +6 -9
  58. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--pDZJcmd1VjNlYXNaSlRMTGpocVZQY1NWVXE4Z W5UTko4NU9KK3p1L1p1Vzg4YzVPQVlSUHNITG1 JN2I0Nzl.json +5 -4
  59. data/lib/vantiv/mocked_sandbox/fixtures/tokenize--valid-account-token.json +20 -0
  60. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457000300000007.json +6 -9
  61. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457000301100004.json +6 -9
  62. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457002100000005.json +6 -9
  63. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457010000000009.json +6 -9
  64. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457010010900010.json +6 -8
  65. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--5112000101110009.json +6 -9
  66. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--5112001600000006.json +6 -9
  67. data/lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--5112001900000003.json +6 -9
  68. data/lib/vantiv/mocked_sandbox/fixtures/void.json +6 -9
  69. data/lib/vantiv/mocked_sandbox/mocked_response_representer.rb +1 -0
  70. data/lib/vantiv/paypage.rb +17 -3
  71. data/lib/vantiv/response_code_map.rb +960 -0
  72. data/lib/vantiv/test_card.rb +73 -81
  73. data/lib/vantiv/version.rb +1 -1
  74. data/vantiv-ruby.gemspec +3 -2
  75. metadata +32 -10
@@ -3,126 +3,117 @@ module Vantiv
3
3
  class CardNotFound < StandardError; end
4
4
  CARDS = [
5
5
  {
6
- access_method_name: "valid_account",
7
- attrs: {
8
- card_number: "4457010000000009",
9
- expiry_month: "01",
10
- expiry_year: "16",
11
- cvv: "349",
12
- mocked_sandbox_payment_account_id: "1111111111110009",
13
- network: "VI"
14
- }
6
+ name: "valid_account",
7
+ card_number: "4457010000000009",
8
+ expiry_month: "01",
9
+ expiry_year: "21",
10
+ cvv: "349",
11
+ mocked_sandbox_payment_account_id: "1111111111110009",
12
+ network: "VI"
15
13
  },
16
14
  {
17
- access_method_name: "invalid_card_number",
18
- attrs: {
19
- card_number: "4457010010900010",
20
- expiry_month: "01",
21
- expiry_year: "16",
22
- cvv: "349",
23
- mocked_sandbox_payment_account_id: nil,
24
- network: "VI"
25
- }
15
+ name: "invalid_card_number",
16
+ card_number: "4457010010900010",
17
+ expiry_month: "01",
18
+ expiry_year: "21",
19
+ cvv: "349",
20
+ mocked_sandbox_payment_account_id: nil,
21
+ network: "VI"
26
22
  },
27
23
  {
28
- access_method_name: "invalid_account_number",
29
- attrs: {
30
- card_number: "5112001600000006",
31
- expiry_month: "01",
32
- expiry_year: "20",
33
- cvv: "349",
34
- mocked_sandbox_payment_account_id: "1111111111130006",
35
- network: "MC"
36
- }
24
+ name: "invalid_account_number",
25
+ card_number: "5112001600000006",
26
+ expiry_month: "01",
27
+ expiry_year: "20",
28
+ cvv: "349",
29
+ mocked_sandbox_payment_account_id: "1111111111130006",
30
+ network: "MC"
37
31
  },
38
32
  {
39
- access_method_name: "insufficient_funds",
40
- attrs: {
41
- card_number: "4457002100000005",
42
- expiry_month: "01",
43
- expiry_year: "20",
44
- cvv: "349",
45
- mocked_sandbox_payment_account_id: "1111111111120005",
46
- network: "VI"
47
- }
33
+ name: "insufficient_funds",
34
+ card_number: "4457002100000005",
35
+ expiry_month: "01",
36
+ expiry_year: "20",
37
+ cvv: "349",
38
+ mocked_sandbox_payment_account_id: "1111111111120005",
39
+ network: "VI"
48
40
  },
49
41
  {
50
- access_method_name: "expired_card",
51
- attrs: {
52
- card_number: "5112001900000003",
53
- expiry_month: "01",
54
- expiry_year: "20",
55
- cvv: "349",
56
- mocked_sandbox_payment_account_id: "1111111111140003",
57
- network: "MC"
58
- }
42
+ name: "expired_card",
43
+ card_number: "5112001900000003",
44
+ expiry_month: "01",
45
+ expiry_year: "20",
46
+ cvv: "349",
47
+ mocked_sandbox_payment_account_id: "1111111111140003",
48
+ network: "MC"
59
49
  },
60
50
  {
61
- access_method_name: "account_updater",
62
- attrs: {
63
- card_number: "4457000300000007",
64
- expiry_month: "01",
65
- expiry_year: "15",
66
- cvv: "123",
67
- mocked_sandbox_payment_account_id: "1111111111120007",
68
- network: "VI"
69
- }
51
+ name: "account_updater",
52
+ card_number: "4457000300000007",
53
+ expiry_month: "01",
54
+ expiry_year: "15",
55
+ cvv: "123",
56
+ mocked_sandbox_payment_account_id: "1111111111120007",
57
+ network: "VI"
70
58
  },
71
59
  {
72
- access_method_name: "account_updater_account_closed",
73
- attrs: {
74
- card_number: "5112000101110009",
75
- expiry_month: "11",
76
- expiry_year: "99",
77
- cvv: "123",
78
- mocked_sandbox_payment_account_id: "1111111111160009",
79
- network: "MC"
80
- }
60
+ name: "account_updater_account_closed",
61
+ card_number: "5112000101110009",
62
+ expiry_month: "11",
63
+ expiry_year: "99",
64
+ cvv: "123",
65
+ mocked_sandbox_payment_account_id: "1111111111160009",
66
+ network: "MC"
81
67
  },
82
68
  {
83
- access_method_name: "account_updater_contact_cardholder",
84
- attrs: {
85
- card_number: "4457000301100004",
86
- expiry_month: "11",
87
- expiry_year: "99",
88
- cvv: "123",
89
- mocked_sandbox_payment_account_id: "1111111111130004",
90
- network: "VI"
91
- }
69
+ name: "account_updater_contact_cardholder",
70
+ card_number: "4457000301100004",
71
+ expiry_month: "11",
72
+ expiry_year: "99",
73
+ cvv: "123",
74
+ mocked_sandbox_payment_account_id: "1111111111130004",
75
+ network: "VI"
92
76
  },
93
77
  ]
94
78
 
79
+ CARDS.each do |card|
80
+ card[:temporary_token] = card[:name].tr("_", "-") + "-token"
81
+ card.freeze
82
+ end
83
+
84
+ CARDS.freeze
85
+
95
86
  def self.all
96
87
  CARDS.map do |raw_card|
97
- new(raw_card[:attrs].merge(name: raw_card[:access_method_name]))
88
+ new(raw_card)
98
89
  end
99
90
  end
100
91
 
101
92
  CARDS.each do |raw_card|
102
- define_singleton_method :"#{raw_card[:access_method_name]}" do
103
- new(raw_card[:attrs].merge(name: raw_card[:access_method_name]))
93
+ define_singleton_method raw_card[:name] do
94
+ new(raw_card)
104
95
  end
105
96
  end
106
97
 
107
98
  def self.find(card_number)
108
99
  card = CARDS.find do |card_data|
109
- card_data[:attrs][:card_number] == card_number
100
+ card_data[:card_number] == card_number
110
101
  end
111
102
  raise CardNotFound.new("No card with account number #{card_number}") unless card
112
- new(card[:attrs].merge(name: card[:access_method_name]))
103
+ new(card)
113
104
  end
114
105
 
115
106
  def self.find_by_payment_account_id(payment_account_id)
116
107
  card = CARDS.find do |card_data|
117
- card_data[:attrs][:mocked_sandbox_payment_account_id] == payment_account_id
108
+ card_data[:mocked_sandbox_payment_account_id] == payment_account_id
118
109
  end
119
110
  raise CardNotFound.new("No card with mocked sandbox payment account id #{payment_account_id}") unless card
120
- new(card[:attrs].merge(name: card[:access_method_name]))
111
+ new(card)
121
112
  end
122
113
 
123
- attr_reader :card_number, :expiry_month, :expiry_year, :cvv, :mocked_sandbox_payment_account_id, :network, :name
114
+ attr_reader :card_number, :expiry_month, :expiry_year, :cvv, :mocked_sandbox_payment_account_id, :network, :name, :temporary_token
124
115
 
125
- def initialize(card_number:, expiry_month:, expiry_year:, cvv:, mocked_sandbox_payment_account_id:, network:, name:)
116
+ def initialize(card_number:, expiry_month:, expiry_year:, cvv:, mocked_sandbox_payment_account_id:, network:, name:, temporary_token:)
126
117
  @card_number = card_number
127
118
  @expiry_month = expiry_month
128
119
  @expiry_year = expiry_year
@@ -130,6 +121,7 @@ module Vantiv
130
121
  @mocked_sandbox_payment_account_id = mocked_sandbox_payment_account_id
131
122
  @network = network
132
123
  @name = name
124
+ @temporary_token = temporary_token
133
125
  end
134
126
 
135
127
  def ==(other_object)
@@ -1,3 +1,3 @@
1
1
  module Vantiv
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
@@ -19,12 +19,13 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency 'selenium-webdriver'
23
- spec.add_dependency 'webrick'
24
22
  spec.add_dependency 'representable'
25
23
  spec.add_dependency 'multi_json'
26
24
  spec.add_dependency 'nokogiri'
27
25
 
26
+ spec.add_development_dependency 'selenium-webdriver'
27
+ spec.add_development_dependency 'webrick'
28
+ spec.add_development_dependency 'geckodriver-helper'
28
29
  spec.add_development_dependency "bundler", "~> 1.10"
29
30
  spec.add_development_dependency 'dotenv'
30
31
  spec.add_development_dependency 'pry'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vantiv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Balloch
@@ -10,10 +10,10 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2016-11-29 00:00:00.000000000 Z
13
+ date: 2018-10-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: selenium-webdriver
16
+ name: representable
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
@@ -27,7 +27,7 @@ dependencies:
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
- name: webrick
30
+ name: multi_json
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
@@ -41,7 +41,7 @@ dependencies:
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
- name: representable
44
+ name: nokogiri
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
@@ -55,13 +55,13 @@ dependencies:
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  - !ruby/object:Gem::Dependency
58
- name: multi_json
58
+ name: selenium-webdriver
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
- type: :runtime
64
+ type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
@@ -69,13 +69,27 @@ dependencies:
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
- name: nokogiri
72
+ name: webrick
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
- type: :runtime
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: geckodriver-helper
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :development
79
93
  prerelease: false
80
94
  version_requirements: !ruby/object:Gem::Requirement
81
95
  requirements:
@@ -328,9 +342,16 @@ files:
328
342
  - lib/vantiv/mocked_sandbox/fixtures/refund--5112001600000006.json
329
343
  - lib/vantiv/mocked_sandbox/fixtures/refund--5112001900000003.json
330
344
  - lib/vantiv/mocked_sandbox/fixtures/tokenize--RGFQNCt6U1d1M21SeVByVTM4dHlHb1FsVkUrSmpnWXhNY0o5UkMzRlZFanZiUHVnYjN1enJXbG1WSDF4aXlNc.json
345
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-account-closed-token.json
346
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-contact-cardholder-token.json
347
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--account-updater-token.json
348
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--expired-card-token.json
349
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--insufficient-funds-token.json
350
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--invalid-account-number-token.json
331
351
  - lib/vantiv/mocked_sandbox/fixtures/tokenize--mocked-valid-temporary-token.json
332
352
  - lib/vantiv/mocked_sandbox/fixtures/tokenize--pDZJcmd1VjNlYXNaSlRMTGpocVZQY1NWVXE4Z
333
353
  W5UTko4NU9KK3p1L1p1Vzg4YzVPQVlSUHNITG1 JN2I0Nzl.json
354
+ - lib/vantiv/mocked_sandbox/fixtures/tokenize--valid-account-token.json
334
355
  - lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457000300000007.json
335
356
  - lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457000301100004.json
336
357
  - lib/vantiv/mocked_sandbox/fixtures/tokenize_by_direct_post--4457002100000005.json
@@ -342,6 +363,7 @@ files:
342
363
  - lib/vantiv/mocked_sandbox/fixtures/void.json
343
364
  - lib/vantiv/mocked_sandbox/mocked_response_representer.rb
344
365
  - lib/vantiv/paypage.rb
366
+ - lib/vantiv/response_code_map.rb
345
367
  - lib/vantiv/test_card.rb
346
368
  - lib/vantiv/test_temporary_token.rb
347
369
  - lib/vantiv/version.rb
@@ -366,7 +388,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
366
388
  version: '0'
367
389
  requirements: []
368
390
  rubyforge_project:
369
- rubygems_version: 2.5.1
391
+ rubygems_version: 2.7.7
370
392
  signing_key:
371
393
  specification_version: 4
372
394
  summary: A simple ruby client to use Vantiv's XML API