braintree 2.102.0 → 3.1.0

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +6 -3
  4. data/lib/braintree.rb +3 -17
  5. data/lib/braintree/address.rb +0 -22
  6. data/lib/braintree/address_gateway.rb +2 -2
  7. data/lib/braintree/base_module.rb +6 -0
  8. data/lib/braintree/bin_data.rb +9 -2
  9. data/lib/braintree/configuration.rb +1 -1
  10. data/lib/braintree/credit_card.rb +5 -76
  11. data/lib/braintree/credit_card_gateway.rb +3 -32
  12. data/lib/braintree/credit_card_verification.rb +14 -0
  13. data/lib/braintree/customer.rb +3 -72
  14. data/lib/braintree/customer_gateway.rb +0 -23
  15. data/lib/braintree/dispute.rb +1 -7
  16. data/lib/braintree/dispute/{history_event.rb → status_history.rb} +3 -1
  17. data/lib/braintree/dispute/transaction.rb +2 -0
  18. data/lib/braintree/dispute_gateway.rb +2 -7
  19. data/lib/braintree/error_codes.rb +152 -170
  20. data/lib/braintree/exceptions.rb +5 -3
  21. data/lib/braintree/gateway.rb +0 -14
  22. data/lib/braintree/{android_pay_card.rb → google_pay_card.rb} +1 -1
  23. data/lib/braintree/local_payment_completed.rb +1 -1
  24. data/lib/braintree/merchant_account_gateway.rb +2 -0
  25. data/lib/braintree/payment_instrument_type.rb +1 -4
  26. data/lib/braintree/payment_method_gateway.rb +4 -8
  27. data/lib/braintree/payment_method_parser.rb +1 -7
  28. data/lib/braintree/risk_data.rb +4 -1
  29. data/lib/braintree/subscription.rb +5 -5
  30. data/lib/braintree/successful_result.rb +0 -1
  31. data/lib/braintree/test/credit_card.rb +1 -0
  32. data/lib/braintree/test/nonce.rb +5 -20
  33. data/lib/braintree/transaction.rb +9 -73
  34. data/lib/braintree/transaction/address_details.rb +11 -0
  35. data/lib/braintree/transaction/disbursement_details.rb +1 -0
  36. data/lib/braintree/transaction/{android_pay_details.rb → google_pay_details.rb} +1 -1
  37. data/lib/braintree/transaction/paypal_details.rb +3 -0
  38. data/lib/braintree/transaction/subscription_details.rb +2 -0
  39. data/lib/braintree/transaction_gateway.rb +14 -21
  40. data/lib/braintree/transaction_search.rb +0 -1
  41. data/lib/braintree/util.rb +17 -2
  42. data/lib/braintree/version.rb +2 -2
  43. data/lib/braintree/webhook_notification.rb +0 -10
  44. data/lib/braintree/webhook_testing_gateway.rb +0 -43
  45. data/lib/braintree/xml/libxml.rb +1 -0
  46. data/lib/braintree/xml/parser.rb +11 -34
  47. data/spec/integration/braintree/address_spec.rb +2 -89
  48. data/spec/integration/braintree/client_api/spec_helper.rb +92 -66
  49. data/spec/integration/braintree/credit_card_spec.rb +20 -467
  50. data/spec/integration/braintree/credit_card_verification_spec.rb +1 -0
  51. data/spec/integration/braintree/customer_spec.rb +22 -362
  52. data/spec/integration/braintree/dispute_search_spec.rb +3 -3
  53. data/spec/integration/braintree/dispute_spec.rb +1 -2
  54. data/spec/integration/braintree/merchant_spec.rb +2 -2
  55. data/spec/integration/braintree/payment_method_spec.rb +77 -120
  56. data/spec/integration/braintree/paypal_account_spec.rb +1 -1
  57. data/spec/integration/braintree/subscription_spec.rb +11 -16
  58. data/spec/integration/braintree/transaction_search_spec.rb +3 -3
  59. data/spec/integration/braintree/transaction_spec.rb +274 -524
  60. data/spec/integration/spec_helper.rb +1 -4
  61. data/spec/spec_helper.rb +1 -11
  62. data/spec/unit/braintree/address_spec.rb +0 -8
  63. data/spec/unit/braintree/credit_card_spec.rb +28 -21
  64. data/spec/unit/braintree/credit_card_verification_spec.rb +7 -0
  65. data/spec/unit/braintree/customer_spec.rb +4 -12
  66. data/spec/unit/braintree/dispute_spec.rb +4 -12
  67. data/spec/unit/braintree/http_spec.rb +3 -3
  68. data/spec/unit/braintree/local_payment_completed_spec.rb +14 -0
  69. data/spec/unit/braintree/transaction/paypal_details_spec.rb +59 -0
  70. data/spec/unit/braintree/transaction_spec.rb +17 -37
  71. data/spec/unit/braintree/util_spec.rb +37 -3
  72. data/spec/unit/braintree/webhook_notification_spec.rb +1 -1
  73. data/spec/unit/braintree/xml/parser_spec.rb +21 -16
  74. metadata +28 -32
  75. data/lib/braintree/amex_express_checkout_card.rb +0 -38
  76. data/lib/braintree/coinbase_account.rb +0 -34
  77. data/lib/braintree/europe_bank_account.rb +0 -36
  78. data/lib/braintree/europe_bank_account_gateway.rb +0 -17
  79. data/lib/braintree/ideal_payment.rb +0 -61
  80. data/lib/braintree/ideal_payment_gateway.rb +0 -19
  81. data/lib/braintree/masterpass_card.rb +0 -81
  82. data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -21
  83. data/lib/braintree/transaction/coinbase_details.rb +0 -16
  84. data/lib/braintree/transaction/ideal_payment_details.rb +0 -19
  85. data/lib/braintree/transaction/masterpass_card_details.rb +0 -47
  86. data/lib/braintree/transparent_redirect.rb +0 -40
  87. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  88. data/lib/braintree/xml/rexml.rb +0 -71
  89. data/spec/hacks/tcp_socket.rb +0 -18
  90. data/spec/integration/braintree/coinbase_spec.rb +0 -34
  91. data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
  92. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
  93. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
  94. data/spec/unit/braintree/xml/rexml_spec.rb +0 -51
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dadf0e37290b308d07f0856ce1b98b46dd24545c7aabd504516f9a07c8d6937f
4
- data.tar.gz: 46cd35b0d94e2a48db329c7699df7288bf5db85a47bc965847db0ddb2b1794b9
3
+ metadata.gz: 8fd29c86922c84315bcc22c0318136adefa3b5023ffec6b805578ad9e9f9be0d
4
+ data.tar.gz: f35f8eef6ccc321816005117c7bd0323a3b1d1e707ddc93ea082f43597ad75e6
5
5
  SHA512:
6
- metadata.gz: c8af0480b494e769733cb03fc98813483c085fb567be2962af22dc6cae2cd162e448693047da262796b2686dd4ec0c778eef26614e93a20410660667329f7061
7
- data.tar.gz: 4f046887ad84d29b41f09f6927ae5a7d19e0710a98ea5ce31355a74c7361805c1c0d3432e273a852862d8ccb0f5506baea60241785d4c0d105592fc988b71f67
6
+ metadata.gz: a286c7e29b1f24de08aa3da6818f6061904f1ab52f581c44b7ce80e37fc7ff42a54a5bdcf39a70255c53965a3e580965d07677a56053d643652a56d39aef1f80
7
+ data.tar.gz: 7b9f4bef3725bd17dac212babe68a9382a23bde7bacb458c5ca970c2137d374792a84247c222168f5e68518f22917891efd1720d90e2786e85e3a1ba40edd6e1
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2017 Braintree, a division of PayPal, Inc.
1
+ Copyright (c) 2009-2020 Braintree, a division of PayPal, Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
@@ -3,19 +3,22 @@ require 'braintree/version'
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "braintree"
6
- s.summary = "Braintree Gateway Ruby Client Library"
7
- s.description = "Ruby library for integrating with the Braintree Gateway"
6
+ s.summary = "Braintree Ruby Server SDK"
7
+ s.description = "Resources and tools for developers to integrate Braintree's global payments platform."
8
8
  s.version = Braintree::Version::String
9
9
  s.license = "MIT"
10
10
  s.author = "Braintree"
11
11
  s.email = "code@getbraintree.com"
12
12
  s.homepage = "https://www.braintreepayments.com/"
13
13
  s.files = Dir.glob ["README.rdoc", "LICENSE", "lib/**/*.{rb,crt}", "spec/**/*", "*.gemspec"]
14
- s.add_dependency "builder", ">= 2.0.0"
14
+ s.add_dependency "builder", ">= 3.2.4"
15
+ s.add_dependency "libxml-ruby", ">= 3.2.0"
16
+ s.required_ruby_version = ">=2.5.0"
15
17
  s.metadata = {
16
18
  "bug_tracker_uri" => "https://github.com/braintree/braintree_ruby/issues",
17
19
  "changelog_uri" => "https://github.com/braintree/braintree_ruby/blob/master/CHANGELOG.md",
18
20
  "source_code_uri" => "https://github.com/braintree/braintree_ruby",
21
+ "documentation_uri" => "https://developers.braintreepayments.com/"
19
22
  }
20
23
  end
21
24
 
@@ -31,8 +31,6 @@ require "braintree/address"
31
31
  require "braintree/address/country_names"
32
32
  require "braintree/address_gateway"
33
33
  require "braintree/advanced_search"
34
- require "braintree/android_pay_card"
35
- require "braintree/amex_express_checkout_card"
36
34
  require "braintree/apple_pay"
37
35
  require "braintree/apple_pay_card"
38
36
  require "braintree/apple_pay_gateway"
@@ -41,7 +39,6 @@ require "braintree/authorization_adjustment"
41
39
  require "braintree/bin_data"
42
40
  require "braintree/client_token"
43
41
  require "braintree/client_token_gateway"
44
- require "braintree/coinbase_account"
45
42
  require "braintree/configuration"
46
43
  require "braintree/connected_merchant_status_transitioned"
47
44
  require "braintree/connected_merchant_paypal_status_changed"
@@ -62,7 +59,7 @@ require "braintree/discount_gateway"
62
59
  require "braintree/dispute"
63
60
  require "braintree/dispute_gateway"
64
61
  require "braintree/dispute/evidence"
65
- require "braintree/dispute/history_event"
62
+ require "braintree/dispute/status_history"
66
63
  require "braintree/dispute/transaction"
67
64
  require "braintree/dispute/transaction_details"
68
65
  require "braintree/document_upload"
@@ -72,9 +69,7 @@ require "braintree/error_result"
72
69
  require "braintree/errors"
73
70
  require "braintree/gateway"
74
71
  require "braintree/graphql_client"
75
- require "braintree/ideal_payment"
76
- require "braintree/ideal_payment_gateway"
77
- require "braintree/transaction/ideal_payment_details"
72
+ require "braintree/google_pay_card"
78
73
  require "braintree/local_payment_completed"
79
74
  require "braintree/transaction/local_payment_details"
80
75
  require "braintree/merchant"
@@ -108,8 +103,6 @@ require "braintree/resource_collection"
108
103
  require "braintree/revoked_payment_method_metadata"
109
104
  require "braintree/paginated_collection"
110
105
  require "braintree/paginated_result"
111
- require "braintree/europe_bank_account"
112
- require "braintree/europe_bank_account_gateway"
113
106
  require "braintree/us_bank_account"
114
107
  require "braintree/us_bank_account_verification"
115
108
  require "braintree/us_bank_account_verification_gateway"
@@ -134,12 +127,10 @@ require "braintree/transaction_line_item"
134
127
  require "braintree/test_transaction"
135
128
  require "braintree/transaction/address_details"
136
129
  require "braintree/transaction/apple_pay_details"
137
- require "braintree/transaction/android_pay_details"
138
- require "braintree/transaction/amex_express_checkout_details"
139
- require "braintree/transaction/coinbase_details"
140
130
  require "braintree/transaction/credit_card_details"
141
131
  require "braintree/transaction/customer_details"
142
132
  require "braintree/transaction/disbursement_details"
133
+ require "braintree/transaction/google_pay_details"
143
134
  require "braintree/transaction/paypal_details"
144
135
  require "braintree/transaction/paypal_here_details"
145
136
  require "braintree/transaction/subscription_details"
@@ -149,19 +140,15 @@ require "braintree/transaction_search"
149
140
  require "braintree/transaction/status_details"
150
141
  require "braintree/transaction/venmo_account_details"
151
142
  require "braintree/transaction/visa_checkout_card_details"
152
- require "braintree/transaction/masterpass_card_details"
153
143
  require "braintree/transaction/samsung_pay_card_details"
154
144
  require "braintree/unknown_payment_method"
155
145
  require "braintree/disbursement"
156
146
  require "braintree/dispute_search"
157
- require "braintree/transparent_redirect"
158
- require "braintree/transparent_redirect_gateway"
159
147
  require "braintree/validation_error"
160
148
  require "braintree/validation_error_collection"
161
149
  require "braintree/venmo_account"
162
150
  require "braintree/version"
163
151
  require "braintree/visa_checkout_card"
164
- require "braintree/masterpass_card"
165
152
  require "braintree/samsung_pay_card"
166
153
  require "braintree/webhook_notification"
167
154
  require "braintree/webhook_notification_gateway"
@@ -170,5 +157,4 @@ require "braintree/webhook_testing_gateway"
170
157
  require "braintree/xml"
171
158
  require "braintree/xml/generator"
172
159
  require "braintree/xml/libxml"
173
- require "braintree/xml/rexml"
174
160
  require "braintree/xml/parser"
@@ -53,28 +53,6 @@ module Braintree
53
53
  id == other.id && customer_id == other.customer_id
54
54
  end
55
55
 
56
- # Deprecated. Use Braintree::Address.delete
57
- def delete
58
- warn "[DEPRECATED] delete as an instance method is deprecated. Please use Address.delete"
59
- @gateway.address.delete(customer_id, self.id)
60
- end
61
-
62
- # Deprecated. Use Braintree::Address.update
63
- def update(attributes)
64
- warn "[DEPRECATED] update as an instance method is deprecated. Please use Address.update"
65
- result = @gateway.address.update(customer_id, id, attributes)
66
- if result.success?
67
- copy_instance_variables_from_object result.address
68
- end
69
- result
70
- end
71
-
72
- # Deprecated. Use Braintree::Address.update!
73
- def update!(attributes)
74
- warn "[DEPRECATED] update! as an instance method is deprecated. Please use Address.update!"
75
- return_object_or_raise(:address) { update(attributes) }
76
- end
77
-
78
56
  class << self
79
57
  protected :new
80
58
  end
@@ -76,8 +76,8 @@ module Braintree
76
76
 
77
77
  def self._shared_signature # :nodoc:
78
78
  [:company, :country_code_alpha2, :country_code_alpha3, :country_code_numeric,
79
- :country_name, :extended_address, :first_name,
80
- :last_name, :locality, :postal_code, :region, :street_address]
79
+ :country_name, :extended_address, :first_name, :last_name, :locality, :phone_number,
80
+ :postal_code, :region, :street_address]
81
81
  end
82
82
 
83
83
  def self._update_signature # :nodoc:
@@ -20,6 +20,12 @@ module Braintree
20
20
  hash.each do |key, value|
21
21
  if key == :global_id
22
22
  instance_variable_set "@graphql_id", value
23
+ elsif key == :android_pay_cards
24
+ instance_variable_set "@google_pay_cards", value
25
+ elsif key == :android_pay_card
26
+ instance_variable_set "@google_pay_card", value
27
+ elsif key == :android_pay_details
28
+ instance_variable_set "@google_pay_details", value
23
29
  end
24
30
 
25
31
  instance_variable_set "@#{key}", value
@@ -17,10 +17,17 @@ module Braintree
17
17
  end
18
18
 
19
19
  def inspect
20
- formatted_attrs = self.class._attributes.map do |attr|
20
+ formatted_attributes = self.class._attributes.map do |attr|
21
21
  "#{attr}: #{send(attr).inspect}"
22
22
  end
23
- "#<BinData #{formatted_attrs.join(", ")}>"
23
+ "#<#{self.class} #{formatted_attributes.join(", ")}>"
24
+ end
25
+
26
+ def self._attributes # :nodoc:
27
+ [
28
+ :commercial, :country_of_issuance, :debit, :durbin_regulated, :healthcare,
29
+ :issuing_bank, :payroll, :prepaid, :product_id
30
+ ]
24
31
  end
25
32
  end
26
33
  end
@@ -1,6 +1,6 @@
1
1
  module Braintree
2
2
  class Configuration
3
- API_VERSION = "5" # :nodoc:
3
+ API_VERSION = "6" # :nodoc:
4
4
  DEFAULT_ENDPOINT = "api" # :nodoc:
5
5
  GRAPHQL_API_VERSION = "2018-09-10" # :nodoc:
6
6
 
@@ -70,18 +70,6 @@ module Braintree
70
70
  Configuration.gateway.credit_card.create!(*args)
71
71
  end
72
72
 
73
- # Deprecated. Use Braintree::TransparentRedirect.url
74
- def self.create_credit_card_url
75
- warn "[DEPRECATED] CreditCard.create_credit_card_url is deprecated. Please use TransparentRedirect.url"
76
- Configuration.gateway.credit_card.create_credit_card_url
77
- end
78
-
79
- # Deprecated. Use Braintree::TransparentRedirect.confirm
80
- def self.create_from_transparent_redirect(query_string)
81
- warn "[DEPRECATED] CreditCard.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
82
- Configuration.gateway.credit_card.create_from_transparent_redirect(query_string)
83
- end
84
-
85
73
  def self.credit(token, transaction_attributes)
86
74
  Transaction.credit(transaction_attributes.merge(:payment_method_token => token))
87
75
  end
@@ -110,11 +98,6 @@ module Braintree
110
98
  Configuration.gateway.credit_card.from_nonce(*args)
111
99
  end
112
100
 
113
- # Deprecated. Use Braintree::PaymentMethod.grant
114
- def self.grant(*args)
115
- Configuration.gateway.credit_card.grant(*args)
116
- end
117
-
118
101
  def self.sale(token, transaction_attributes)
119
102
  Configuration.gateway.transaction.sale(transaction_attributes.merge(:payment_method_token => token))
120
103
  end
@@ -131,18 +114,6 @@ module Braintree
131
114
  Configuration.gateway.credit_card.update!(*args)
132
115
  end
133
116
 
134
- # Deprecated. Use Braintree::TransparentRedirect.confirm
135
- def self.update_from_transparent_redirect(query_string)
136
- warn "[DEPRECATED] CreditCard.update_via_transparent_redirect_request is deprecated. Please use TransparentRedirect.confirm"
137
- Configuration.gateway.credit_card.update_from_transparent_redirect(query_string)
138
- end
139
-
140
- # Deprecated. Use Braintree::TransparentRedirect.url
141
- def self.update_credit_card_url
142
- warn "[DEPRECATED] CreditCard.update_credit_card_url is deprecated. Please use TransparentRedirect.url"
143
- Configuration.gateway.credit_card.update_credit_card_url
144
- end
145
-
146
117
  def initialize(gateway, attributes) # :nodoc:
147
118
  @gateway = gateway
148
119
  set_instance_variables_from_hash(attributes)
@@ -156,24 +127,6 @@ module Braintree
156
127
  CreditCardVerification._new(verification) if verification
157
128
  end
158
129
 
159
- # Deprecated. Use Braintree::CreditCard.credit
160
- def credit(transaction_attributes)
161
- warn "[DEPRECATED] credit as an instance method is deprecated. Please use CreditCard.credit"
162
- @gateway.transaction.credit(transaction_attributes.merge(:payment_method_token => token))
163
- end
164
-
165
- # Deprecated. Use Braintree::CreditCard.credit!
166
- def credit!(transaction_attributes)
167
- warn "[DEPRECATED] credit! as an instance method is deprecated. Please use CreditCard.credit!"
168
- return_object_or_raise(:transaction) { credit(transaction_attributes) }
169
- end
170
-
171
- # Deprecated. Use Braintree::CreditCard.delete
172
- def delete
173
- warn "[DEPRECATED] delete as an instance method is deprecated. Please use CreditCard.delete"
174
- @gateway.credit_card.delete(token)
175
- end
176
-
177
130
  # Returns true if this credit card is the customer's default payment method.
178
131
  def default?
179
132
  @default
@@ -202,34 +155,6 @@ module Braintree
202
155
  "#{bin}******#{last_4}"
203
156
  end
204
157
 
205
- # Deprecated. Use Braintree::CreditCard.sale
206
- def sale(transaction_attributes)
207
- warn "[DEPRECATED] sale as an instance method is deprecated. Please use CreditCard.sale"
208
- @gateway.transaction.sale(transaction_attributes.merge(:payment_method_token => token))
209
- end
210
-
211
- # Deprecated. Use Braintree::CreditCard.sale!
212
- def sale!(transaction_attributes)
213
- warn "[DEPRECATED] sale! as an instance method is deprecated. Please use CreditCard.sale!"
214
- return_object_or_raise(:transaction) { sale(transaction_attributes) }
215
- end
216
-
217
- # Deprecated. Use Braintree::CreditCard.update
218
- def update(attributes)
219
- warn "[DEPRECATED] update as an instance method is deprecated. Please use CreditCard.update"
220
- result = @gateway.credit_card.update(token, attributes)
221
- if result.success?
222
- copy_instance_variables_from_object result.credit_card
223
- end
224
- result
225
- end
226
-
227
- # Deprecated. Use Braintree::CreditCard.update!
228
- def update!(attributes)
229
- warn "[DEPRECATED] update! as an instance method is deprecated. Please use CreditCard.update!"
230
- return_object_or_raise(:credit_card) { update(attributes) }
231
- end
232
-
233
158
  def nonce
234
159
  @nonce ||= PaymentMethodNonce.create(token)
235
160
  end
@@ -239,6 +164,10 @@ module Braintree
239
164
  @venmo_sdk
240
165
  end
241
166
 
167
+ def is_network_tokenized?
168
+ @is_network_tokenized
169
+ end
170
+
242
171
  class << self
243
172
  protected :new
244
173
  end
@@ -247,7 +176,7 @@ module Braintree
247
176
  [
248
177
  :billing_address, :bin, :card_type, :cardholder_name, :created_at, :customer_id, :expiration_month,
249
178
  :expiration_year, :last_4, :token, :updated_at, :prepaid, :payroll, :product_id, :commercial, :debit, :durbin_regulated,
250
- :healthcare, :country_of_issuance, :issuing_bank, :image_url
179
+ :healthcare, :country_of_issuance, :issuing_bank, :image_url, :is_network_tokenized?
251
180
  ]
252
181
  end
253
182
 
@@ -20,17 +20,6 @@ module Braintree
20
20
  return_object_or_raise(:credit_card) { create(*args) }
21
21
  end
22
22
 
23
- # Deprecated
24
- def create_credit_card_url
25
- "#{@config.base_merchant_url}/payment_methods/all/create_via_transparent_redirect_request"
26
- end
27
-
28
- # Deprecated
29
- def create_from_transparent_redirect(query_string)
30
- params = @gateway.transparent_redirect.parse_and_validate_query_string query_string
31
- _do_create("/payment_methods/all/confirm_transparent_redirect_request", :id => params[:id])
32
- end
33
-
34
23
  def credit(token, transaction_attributes)
35
24
  @gateway.transaction.credit(transaction_attributes.merge(:payment_method_token => token))
36
25
  end
@@ -71,11 +60,6 @@ module Braintree
71
60
  raise NotFoundError, "nonce #{nonce.inspect} locked, consumed, or not found"
72
61
  end
73
62
 
74
- # Deprecated in favor of PaymentMethodGateway.grant
75
- def grant(token, allow_vaulting)
76
- @gateway.payment_method.grant(token, allow_vaulting)
77
- end
78
-
79
63
  def update(token, attributes)
80
64
  Util.verify_keys(CreditCardGateway._update_signature, attributes)
81
65
  _do_update(:put, "/payment_methods/credit_card/#{token}", :credit_card => attributes)
@@ -85,19 +69,6 @@ module Braintree
85
69
  return_object_or_raise(:credit_card) { update(*args) }
86
70
  end
87
71
 
88
- # Deprecated
89
- def update_from_transparent_redirect(query_string)
90
- warn "[DEPRECATED] CreditCard.update_via_transparent_redirect_request is deprecated. Please use TransparentRedirect.confirm"
91
- params = @gateway.transparent_redirect.parse_and_validate_query_string query_string
92
- _do_update(:post, "/payment_methods/all/confirm_transparent_redirect_request", :id => params[:id])
93
- end
94
-
95
- # Deprecated
96
- def update_credit_card_url
97
- warn "[DEPRECATED] CreditCard.update_credit_card_url is deprecated. Please use TransparentRedirect.url"
98
- "#{@config.base_merchant_url}/payment_methods/all/update_via_transparent_redirect_request"
99
- end
100
-
101
72
  def self._create_signature # :nodoc:
102
73
  _signature(:create)
103
74
  end
@@ -110,9 +81,9 @@ module Braintree
110
81
  billing_address_params = AddressGateway._shared_signature
111
82
  options = [:make_default, :verification_merchant_account_id, :verify_card, :verification_amount, :venmo_sdk_session, :fail_on_duplicate_payment_method, :verification_account_type]
112
83
  signature = [
113
- :billing_address_id, :cardholder_name, :cvv, :device_session_id, :expiration_date,
114
- :expiration_month, :expiration_year, :number, :token, :venmo_sdk_payment_method_code,
115
- :device_data, :fraud_merchant_id, :payment_method_nonce,
84
+ :billing_address_id, :cardholder_name, :cvv, :expiration_date, :expiration_month,
85
+ :expiration_year, :number, :token, :venmo_sdk_payment_method_code, :device_data,
86
+ :payment_method_nonce,
116
87
  {:external_vault => [:network_transaction_id]},
117
88
  {:options => options},
118
89
  {:billing_address => billing_address_params}
@@ -3,6 +3,19 @@ module Braintree
3
3
  include BaseModule
4
4
  include Braintree::Util::IdEquality
5
5
 
6
+ module GatewayRejectionReason
7
+ ApplicationIncomplete = "application_incomplete"
8
+ AVS = "avs"
9
+ AVSAndCVV = "avs_and_cvv"
10
+ CVV = "cvv"
11
+ Duplicate = "duplicate"
12
+ Fraud = "fraud"
13
+ RiskThreshold = "risk_threshold"
14
+ ThreeDSecure = "three_d_secure"
15
+ TokenIssuance = "token_issuance"
16
+ Unrecognized = "unrecognized"
17
+ end
18
+
6
19
  module Status
7
20
  Failed = 'failed'
8
21
  GatewayRejected = 'gateway_rejected'
@@ -27,6 +40,7 @@ module Braintree
27
40
  attr_reader :merchant_account_id
28
41
  attr_reader :network_response_code
29
42
  attr_reader :network_response_text
43
+ attr_reader :network_transaction_id
30
44
  attr_reader :processor_response_code
31
45
  attr_reader :processor_response_text
32
46
  attr_reader :processor_response_type
@@ -4,10 +4,7 @@ module Braintree
4
4
  include Braintree::Util::IdEquality
5
5
 
6
6
  attr_reader :addresses
7
- attr_reader :amex_express_checkout_cards
8
- attr_reader :android_pay_cards
9
7
  attr_reader :apple_pay_cards
10
- attr_reader :coinbase_accounts
11
8
  attr_reader :company
12
9
  attr_reader :created_at
13
10
  attr_reader :credit_cards
@@ -15,10 +12,10 @@ module Braintree
15
12
  attr_reader :email
16
13
  attr_reader :fax
17
14
  attr_reader :first_name
15
+ attr_reader :google_pay_cards
18
16
  attr_reader :graphql_id
19
17
  attr_reader :id
20
18
  attr_reader :last_name
21
- attr_reader :masterpass_cards
22
19
  attr_reader :paypal_accounts
23
20
  attr_reader :phone
24
21
  attr_reader :samsung_pay_cards
@@ -40,18 +37,6 @@ module Braintree
40
37
  Configuration.gateway.customer.create!(*args)
41
38
  end
42
39
 
43
- # Deprecated. Use Braintree::TransparentRedirect.url
44
- def self.create_customer_url
45
- warn "[DEPRECATED] Customer.create_customer_url is deprecated. Please use TransparentRedirect.url"
46
- Configuration.gateway.customer.create_customer_url
47
- end
48
-
49
- # Deprecated. Use Braintree::TransparentRedirect.confirm
50
- def self.create_from_transparent_redirect(*args)
51
- warn "[DEPRECATED] Customer.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
52
- Configuration.gateway.customer.create_from_transparent_redirect(*args)
53
- end
54
-
55
40
  def self.credit(customer_id, transaction_attributes)
56
41
  Transaction.credit(transaction_attributes.merge(:customer_id => customer_id))
57
42
  end
@@ -93,32 +78,16 @@ module Braintree
93
78
  Configuration.gateway.customer.update!(*args)
94
79
  end
95
80
 
96
- # Deprecated. Use Braintree::TransparentRedirect.url
97
- def self.update_customer_url
98
- warn "[DEPRECATED] Customer.update_customer_url is deprecated. Please use TransparentRedirect.url"
99
- Configuration.gateway.customer.update_customer_url
100
- end
101
-
102
- # Deprecated. Use Braintree::TransparentRedirect.confirm
103
- def self.update_from_transparent_redirect(*args)
104
- warn "[DEPRECATED] Customer.update_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
105
- Configuration.gateway.customer.update_from_transparent_redirect(*args)
106
- end
107
-
108
81
  def initialize(gateway, attributes) # :nodoc:
109
82
  @gateway = gateway
110
83
  set_instance_variables_from_hash(attributes)
111
84
  @credit_cards = (@credit_cards || []).map { |pm| CreditCard._new gateway, pm }
112
85
  @paypal_accounts = (@paypal_accounts || []).map { |pm| PayPalAccount._new gateway, pm }
113
- @coinbase_accounts = (@coinbase_accounts || []).map { |pm| CoinbaseAccount._new gateway, pm }
114
86
  @apple_pay_cards = (@apple_pay_cards || []).map { |pm| ApplePayCard._new gateway, pm }
115
- @europe_bank_accounts = (@europe_bank_Accounts || []).map { |pm| EuropeBankAccount._new gateway, pm }
116
- @android_pay_cards = (@android_pay_cards || []).map { |pm| AndroidPayCard._new gateway, pm }
117
- @amex_express_checkout_cards = (@amex_express_checkout_cards || []).map { |pm| AmexExpressCheckoutCard._new gateway, pm }
87
+ @google_pay_cards = (@google_pay_cards || []).map { |pm| GooglePayCard._new gateway, pm }
118
88
  @venmo_accounts = (@venmo_accounts || []).map { |pm| VenmoAccount._new gateway, pm }
119
89
  @us_bank_accounts = (@us_bank_accounts || []).map { |pm| UsBankAccount._new gateway, pm }
120
90
  @visa_checkout_cards = (@visa_checkout_cards|| []).map { |pm| VisaCheckoutCard._new gateway, pm }
121
- @masterpass_cards = (@masterpass_cards|| []).map { |pm| MasterpassCard._new gateway, pm }
122
91
  @samsung_pay_cards = (@samsung_pay_cards|| []).map { |pm| SamsungPayCard._new gateway, pm }
123
92
  @addresses = (@addresses || []).map { |addr| Address._new gateway, addr }
124
93
  @custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
@@ -132,14 +101,6 @@ module Braintree
132
101
  return_object_or_raise(:transaction) { credit(transaction_attributes) }
133
102
  end
134
103
 
135
- # Deprecated. Use Braintree::Customer.default_payment_method
136
- #
137
- # Returns the customer's default credit card.
138
- def default_credit_card
139
- warn "[DEPRECATED] Customer#default_credit_card is deprecated. Please use Customer#default_payment_method"
140
- @credit_cards.find { |credit_card| credit_card.default? }
141
- end
142
-
143
104
  # Returns the customer's default payment method.
144
105
  def default_payment_method
145
106
  payment_methods.find { |payment_instrument| payment_instrument.default? }
@@ -154,9 +115,7 @@ module Braintree
154
115
  @credit_cards +
155
116
  @paypal_accounts +
156
117
  @apple_pay_cards +
157
- @coinbase_accounts +
158
- @android_pay_cards +
159
- @amex_express_checkout_cards +
118
+ @google_pay_cards +
160
119
  @venmo_accounts +
161
120
  @us_bank_accounts +
162
121
  @visa_checkout_cards +
@@ -173,39 +132,11 @@ module Braintree
173
132
  "#<#{self.class} #{nice_attributes.join(', ')}>"
174
133
  end
175
134
 
176
- # Deprecated. Use Braintree::Customer.sale
177
- def sale(transaction_attributes)
178
- warn "[DEPRECATED] sale as an instance method is deprecated. Please use Customer.sale"
179
- @gateway.transaction.sale(transaction_attributes.merge(:customer_id => id))
180
- end
181
-
182
- # Deprecated. Use Braintree::Customer.sale!
183
- def sale!(transaction_attributes)
184
- warn "[DEPRECATED] sale! as an instance method is deprecated. Please use Customer.sale!"
185
- return_object_or_raise(:transaction) { sale(transaction_attributes) }
186
- end
187
-
188
135
  # Returns a ResourceCollection of transactions for the customer.
189
136
  def transactions(options = {})
190
137
  @gateway.customer.transactions(id, options)
191
138
  end
192
139
 
193
- # Deprecated. Use Braintree::Customer.update
194
- def update(attributes)
195
- warn "[DEPRECATED] update as an instance method is deprecated. Please use Customer.update"
196
- result = @gateway.customer.update(id, attributes)
197
- if result.success?
198
- copy_instance_variables_from_object result.customer
199
- end
200
- result
201
- end
202
-
203
- # Deprecated. Use Braintree::Customer.update!
204
- def update!(attributes)
205
- warn "[DEPRECATED] update! as an instance method is deprecated. Please use Customer.update!"
206
- return_object_or_raise(:customer) { update(attributes) }
207
- end
208
-
209
140
  class << self
210
141
  protected :new
211
142
  end