braintree 2.102.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/braintree.gemspec +6 -3
- data/lib/braintree.rb +3 -17
- data/lib/braintree/address.rb +0 -22
- data/lib/braintree/address_gateway.rb +2 -2
- data/lib/braintree/base_module.rb +6 -0
- data/lib/braintree/bin_data.rb +9 -2
- data/lib/braintree/configuration.rb +1 -1
- data/lib/braintree/credit_card.rb +5 -76
- data/lib/braintree/credit_card_gateway.rb +3 -32
- data/lib/braintree/credit_card_verification.rb +14 -0
- data/lib/braintree/customer.rb +3 -72
- data/lib/braintree/customer_gateway.rb +0 -23
- data/lib/braintree/dispute.rb +1 -7
- data/lib/braintree/dispute/{history_event.rb → status_history.rb} +3 -1
- data/lib/braintree/dispute/transaction.rb +2 -0
- data/lib/braintree/dispute_gateway.rb +2 -7
- data/lib/braintree/error_codes.rb +152 -170
- data/lib/braintree/exceptions.rb +5 -3
- data/lib/braintree/gateway.rb +0 -14
- data/lib/braintree/{android_pay_card.rb → google_pay_card.rb} +1 -1
- data/lib/braintree/local_payment_completed.rb +1 -1
- data/lib/braintree/merchant_account_gateway.rb +2 -0
- data/lib/braintree/payment_instrument_type.rb +1 -4
- data/lib/braintree/payment_method_gateway.rb +4 -8
- data/lib/braintree/payment_method_parser.rb +1 -7
- data/lib/braintree/risk_data.rb +4 -1
- data/lib/braintree/subscription.rb +5 -5
- data/lib/braintree/successful_result.rb +0 -1
- data/lib/braintree/test/credit_card.rb +1 -0
- data/lib/braintree/test/nonce.rb +5 -20
- data/lib/braintree/transaction.rb +9 -73
- data/lib/braintree/transaction/address_details.rb +11 -0
- data/lib/braintree/transaction/disbursement_details.rb +1 -0
- data/lib/braintree/transaction/{android_pay_details.rb → google_pay_details.rb} +1 -1
- data/lib/braintree/transaction/paypal_details.rb +3 -0
- data/lib/braintree/transaction/subscription_details.rb +2 -0
- data/lib/braintree/transaction_gateway.rb +14 -21
- data/lib/braintree/transaction_search.rb +0 -1
- data/lib/braintree/util.rb +17 -2
- data/lib/braintree/version.rb +2 -2
- data/lib/braintree/webhook_notification.rb +0 -10
- data/lib/braintree/webhook_testing_gateway.rb +0 -43
- data/lib/braintree/xml/libxml.rb +1 -0
- data/lib/braintree/xml/parser.rb +11 -34
- data/spec/integration/braintree/address_spec.rb +2 -89
- data/spec/integration/braintree/client_api/spec_helper.rb +92 -66
- data/spec/integration/braintree/credit_card_spec.rb +20 -467
- data/spec/integration/braintree/credit_card_verification_spec.rb +1 -0
- data/spec/integration/braintree/customer_spec.rb +22 -362
- data/spec/integration/braintree/dispute_search_spec.rb +3 -3
- data/spec/integration/braintree/dispute_spec.rb +1 -2
- data/spec/integration/braintree/merchant_spec.rb +2 -2
- data/spec/integration/braintree/payment_method_spec.rb +77 -120
- data/spec/integration/braintree/paypal_account_spec.rb +1 -1
- data/spec/integration/braintree/subscription_spec.rb +11 -16
- data/spec/integration/braintree/transaction_search_spec.rb +3 -3
- data/spec/integration/braintree/transaction_spec.rb +274 -524
- data/spec/integration/spec_helper.rb +1 -4
- data/spec/spec_helper.rb +1 -11
- data/spec/unit/braintree/address_spec.rb +0 -8
- data/spec/unit/braintree/credit_card_spec.rb +28 -21
- data/spec/unit/braintree/credit_card_verification_spec.rb +7 -0
- data/spec/unit/braintree/customer_spec.rb +4 -12
- data/spec/unit/braintree/dispute_spec.rb +4 -12
- data/spec/unit/braintree/http_spec.rb +3 -3
- data/spec/unit/braintree/local_payment_completed_spec.rb +14 -0
- data/spec/unit/braintree/transaction/paypal_details_spec.rb +59 -0
- data/spec/unit/braintree/transaction_spec.rb +17 -37
- data/spec/unit/braintree/util_spec.rb +37 -3
- data/spec/unit/braintree/webhook_notification_spec.rb +1 -1
- data/spec/unit/braintree/xml/parser_spec.rb +21 -16
- metadata +28 -32
- data/lib/braintree/amex_express_checkout_card.rb +0 -38
- data/lib/braintree/coinbase_account.rb +0 -34
- data/lib/braintree/europe_bank_account.rb +0 -36
- data/lib/braintree/europe_bank_account_gateway.rb +0 -17
- data/lib/braintree/ideal_payment.rb +0 -61
- data/lib/braintree/ideal_payment_gateway.rb +0 -19
- data/lib/braintree/masterpass_card.rb +0 -81
- data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -21
- data/lib/braintree/transaction/coinbase_details.rb +0 -16
- data/lib/braintree/transaction/ideal_payment_details.rb +0 -19
- data/lib/braintree/transaction/masterpass_card_details.rb +0 -47
- data/lib/braintree/transparent_redirect.rb +0 -40
- data/lib/braintree/transparent_redirect_gateway.rb +0 -105
- data/lib/braintree/xml/rexml.rb +0 -71
- data/spec/hacks/tcp_socket.rb +0 -18
- data/spec/integration/braintree/coinbase_spec.rb +0 -34
- data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
- data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
- data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fd29c86922c84315bcc22c0318136adefa3b5023ffec6b805578ad9e9f9be0d
|
4
|
+
data.tar.gz: f35f8eef6ccc321816005117c7bd0323a3b1d1e707ddc93ea082f43597ad75e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a286c7e29b1f24de08aa3da6818f6061904f1ab52f581c44b7ce80e37fc7ff42a54a5bdcf39a70255c53965a3e580965d07677a56053d643652a56d39aef1f80
|
7
|
+
data.tar.gz: 7b9f4bef3725bd17dac212babe68a9382a23bde7bacb458c5ca970c2137d374792a84247c222168f5e68518f22917891efd1720d90e2786e85e3a1ba40edd6e1
|
data/LICENSE
CHANGED
data/braintree.gemspec
CHANGED
@@ -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
|
7
|
-
s.description = "
|
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.
|
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
|
|
data/lib/braintree.rb
CHANGED
@@ -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/
|
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/
|
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"
|
data/lib/braintree/address.rb
CHANGED
@@ -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
|
-
:
|
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
|
data/lib/braintree/bin_data.rb
CHANGED
@@ -17,10 +17,17 @@ module Braintree
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def inspect
|
20
|
-
|
20
|
+
formatted_attributes = self.class._attributes.map do |attr|
|
21
21
|
"#{attr}: #{send(attr).inspect}"
|
22
22
|
end
|
23
|
-
"
|
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
|
@@ -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, :
|
114
|
-
:
|
115
|
-
:
|
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
|
data/lib/braintree/customer.rb
CHANGED
@@ -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
|
-
@
|
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
|
-
@
|
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
|