braintree 2.104.1 → 3.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.
- 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/base_module.rb +6 -0
- data/lib/braintree/configuration.rb +1 -1
- data/lib/braintree/credit_card.rb +0 -75
- data/lib/braintree/credit_card_gateway.rb +3 -32
- data/lib/braintree/credit_card_verification.rb +13 -0
- data/lib/braintree/customer.rb +3 -74
- 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_gateway.rb +2 -7
- data/lib/braintree/error_codes.rb +139 -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 -2
- data/lib/braintree/merchant_account_gateway.rb +2 -0
- data/lib/braintree/payment_instrument_type.rb +1 -5
- data/lib/braintree/payment_method_gateway.rb +4 -9
- data/lib/braintree/payment_method_parser.rb +1 -8
- data/lib/braintree/subscription.rb +5 -5
- data/lib/braintree/successful_result.rb +0 -1
- data/lib/braintree/test/nonce.rb +4 -23
- data/lib/braintree/transaction.rb +2 -79
- 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/subscription_details.rb +2 -0
- data/lib/braintree/transaction_gateway.rb +12 -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 +0 -26
- data/spec/integration/braintree/credit_card_spec.rb +6 -471
- data/spec/integration/braintree/customer_spec.rb +22 -362
- data/spec/integration/braintree/dispute_search_spec.rb +2 -2
- data/spec/integration/braintree/dispute_spec.rb +1 -2
- data/spec/integration/braintree/payment_method_spec.rb +77 -120
- 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 +83 -511
- 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 +1 -20
- data/spec/unit/braintree/customer_spec.rb +0 -12
- data/spec/unit/braintree/dispute_spec.rb +1 -12
- data/spec/unit/braintree/http_spec.rb +3 -3
- data/spec/unit/braintree/transaction_spec.rb +1 -35
- 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 +26 -30
- data/lib/braintree/amex_express_checkout_card.rb +0 -40
- 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 -83
- 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 -49
- 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
data/lib/braintree/exceptions.rb
CHANGED
@@ -8,9 +8,7 @@ module Braintree # :nodoc:
|
|
8
8
|
|
9
9
|
class ConfigurationError < BraintreeError; end
|
10
10
|
|
11
|
-
class
|
12
|
-
|
13
|
-
class ForgedQueryString < BraintreeError; end
|
11
|
+
class GatewayTimeoutError < BraintreeError; end
|
14
12
|
|
15
13
|
class InvalidSignature < BraintreeError; end
|
16
14
|
|
@@ -18,8 +16,12 @@ module Braintree # :nodoc:
|
|
18
16
|
|
19
17
|
class NotFoundError < BraintreeError; end
|
20
18
|
|
19
|
+
class RequestTimeoutError < BraintreeError; end
|
20
|
+
|
21
21
|
class ServerError < BraintreeError; end
|
22
22
|
|
23
|
+
class ServiceUnavailableError < BraintreeError; end
|
24
|
+
|
23
25
|
class SSLCertificateError < BraintreeError; end
|
24
26
|
|
25
27
|
class TooManyRequestsError < BraintreeError; end
|
data/lib/braintree/gateway.rb
CHANGED
@@ -74,12 +74,6 @@ module Braintree
|
|
74
74
|
UsBankAccountGateway.new(self)
|
75
75
|
end
|
76
76
|
|
77
|
-
# NEXT_MAJOR_VERSION Remove this class as legacy Ideal has been removed/disabled in the Braintree Gateway
|
78
|
-
# DEPRECATED If you're looking to accept iDEAL as a payment method contact accounts@braintreepayments.com for a solution.
|
79
|
-
def ideal_payment
|
80
|
-
IdealPaymentGateway.new(self)
|
81
|
-
end
|
82
|
-
|
83
77
|
def merchant
|
84
78
|
MerchantGateway.new(self)
|
85
79
|
end
|
@@ -88,10 +82,6 @@ module Braintree
|
|
88
82
|
MerchantAccountGateway.new(self)
|
89
83
|
end
|
90
84
|
|
91
|
-
def europe_bank_account
|
92
|
-
EuropeBankAccountGateway.new(self)
|
93
|
-
end
|
94
|
-
|
95
85
|
def settlement_batch_summary
|
96
86
|
SettlementBatchSummaryGateway.new(self)
|
97
87
|
end
|
@@ -100,10 +90,6 @@ module Braintree
|
|
100
90
|
SubscriptionGateway.new(self)
|
101
91
|
end
|
102
92
|
|
103
|
-
def transparent_redirect
|
104
|
-
TransparentRedirectGateway.new(self)
|
105
|
-
end
|
106
|
-
|
107
93
|
def transaction
|
108
94
|
TransactionGateway.new(self)
|
109
95
|
end
|
@@ -83,6 +83,7 @@ module Braintree
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
86
|
+
# this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
86
87
|
def self._detect_signature(attributes)
|
87
88
|
if attributes.has_key?(:applicant_details)
|
88
89
|
warn "[DEPRECATED] Passing :applicant_details to create is deprecated. Please use :individual, :business, and :funding."
|
@@ -92,6 +93,7 @@ module Braintree
|
|
92
93
|
end
|
93
94
|
end
|
94
95
|
|
96
|
+
# this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
95
97
|
def self._deprecated_create_signature # :nodoc:
|
96
98
|
[
|
97
99
|
{:applicant_details => [
|
@@ -1,16 +1,12 @@
|
|
1
1
|
module Braintree
|
2
2
|
module PaymentInstrumentType
|
3
3
|
PayPalAccount = 'paypal_account'
|
4
|
-
EuropeBankAccount = 'europe_bank_account'
|
5
4
|
CreditCard = 'credit_card'
|
6
|
-
CoinbaseAccount = 'coinbase_account'
|
7
5
|
ApplePayCard = 'apple_pay_card'
|
8
|
-
|
9
|
-
AndroidPayCard = 'android_pay_card'
|
6
|
+
GooglePayCard = 'android_pay_card'
|
10
7
|
VenmoAccount = 'venmo_account'
|
11
8
|
UsBankAccount = 'us_bank_account'
|
12
9
|
VisaCheckoutCard = 'visa_checkout_card'
|
13
|
-
MasterpassCard = 'masterpass_card' # Deprecated
|
14
10
|
SamsungPayCard = 'samsung_pay_card'
|
15
11
|
LocalPayment = 'local_payment'
|
16
12
|
PayPalHere = 'paypal_here'
|
@@ -43,17 +43,12 @@ module Braintree
|
|
43
43
|
CreditCard._new(@gateway, response[:credit_card])
|
44
44
|
elsif response.has_key?(:paypal_account)
|
45
45
|
PayPalAccount._new(@gateway, response[:paypal_account])
|
46
|
-
elsif response[:coinbase_account]
|
47
|
-
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
48
46
|
elsif response.has_key?(:us_bank_account)
|
49
47
|
UsBankAccount._new(@gateway, response[:us_bank_account])
|
50
|
-
elsif response.has_key?(:europe_bank_account)
|
51
|
-
EuropeBankAccount._new(@gateway, response[:europe_bank_account])
|
52
48
|
elsif response.has_key?(:apple_pay_card)
|
53
49
|
ApplePayCard._new(@gateway, response[:apple_pay_card])
|
54
50
|
elsif response.has_key?(:android_pay_card)
|
55
|
-
|
56
|
-
AndroidPayCard._new(@gateway, response[:android_pay_card])
|
51
|
+
GooglePayCard._new(@gateway, response[:android_pay_card])
|
57
52
|
elsif response.has_key?(:venmo_account)
|
58
53
|
VenmoAccount._new(@gateway, response[:venmo_account])
|
59
54
|
else
|
@@ -167,9 +162,9 @@ module Braintree
|
|
167
162
|
],
|
168
163
|
]
|
169
164
|
signature = [
|
170
|
-
:billing_address_id, :cardholder_name, :cvv, :
|
171
|
-
:
|
172
|
-
:
|
165
|
+
:billing_address_id, :cardholder_name, :cvv, :expiration_date, :expiration_month,
|
166
|
+
:expiration_year, :number, :token, :venmo_sdk_payment_method_code, :device_data,
|
167
|
+
:payment_method_nonce,
|
173
168
|
{:options => options},
|
174
169
|
{:billing_address => billing_address_params}
|
175
170
|
]
|
@@ -6,23 +6,16 @@ module Braintree
|
|
6
6
|
CreditCard._new(gateway, attributes[:credit_card])
|
7
7
|
elsif attributes[:paypal_account]
|
8
8
|
PayPalAccount._new(gateway, attributes[:paypal_account])
|
9
|
-
elsif attributes[:coinbase_account]
|
10
|
-
CoinbaseAccount._new(gateway, attributes[:coinbase_account])
|
11
9
|
elsif attributes[:us_bank_account]
|
12
10
|
UsBankAccount._new(gateway, attributes[:us_bank_account])
|
13
11
|
elsif attributes[:apple_pay_card]
|
14
12
|
ApplePayCard._new(gateway, attributes[:apple_pay_card])
|
15
13
|
elsif attributes[:android_pay_card]
|
16
|
-
|
17
|
-
AndroidPayCard._new(gateway, attributes[:android_pay_card])
|
18
|
-
elsif attributes[:amex_express_checkout_card]
|
19
|
-
AmexExpressCheckoutCard._new(gateway, attributes[:amex_express_checkout_card])
|
14
|
+
GooglePayCard._new(gateway, attributes[:android_pay_card])
|
20
15
|
elsif attributes[:venmo_account]
|
21
16
|
VenmoAccount._new(gateway, attributes[:venmo_account])
|
22
17
|
elsif attributes[:visa_checkout_card]
|
23
18
|
VisaCheckoutCard._new(gateway, attributes[:visa_checkout_card])
|
24
|
-
elsif attributes[:masterpass_card]
|
25
|
-
MasterpassCard._new(gateway, attributes[:masterpass_card])
|
26
19
|
elsif attributes[:samsung_pay_card]
|
27
20
|
SamsungPayCard._new(gateway, attributes[:samsung_pay_card])
|
28
21
|
else
|
@@ -101,11 +101,11 @@ module Braintree
|
|
101
101
|
add_ons.map! { |attrs| AddOn._new(attrs) }
|
102
102
|
discounts.map! { |attrs| Discount._new(attrs) }
|
103
103
|
@status_history = attributes[:status_history] ? attributes[:status_history].map { |s| StatusDetails.new(s) } : []
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
@
|
104
|
+
@first_billing_date = Date.parse(first_billing_date) unless first_billing_date.nil?
|
105
|
+
@next_billing_date = Date.parse(next_billing_date) unless next_billing_date.nil?
|
106
|
+
@billing_period_start_date = Date.parse(billing_period_start_date) unless billing_period_start_date.nil?
|
107
|
+
@billing_period_end_date = Date.parse(billing_period_end_date) unless billing_period_end_date.nil?
|
108
|
+
@paid_through_date = Date.parse(paid_through_date) unless paid_through_date.nil?
|
109
109
|
end
|
110
110
|
|
111
111
|
def never_expires?
|
data/lib/braintree/test/nonce.rb
CHANGED
@@ -12,14 +12,10 @@ module Braintree
|
|
12
12
|
ApplePayAmEx = "fake-apple-pay-amex-nonce"
|
13
13
|
AbstractTransactable = "fake-abstract-transactable-nonce"
|
14
14
|
Europe = "fake-europe-bank-account-nonce"
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
AndroidPayMasterCard = "fake-android-pay-mastercard-nonce"
|
20
|
-
AndroidPayAmEx = "fake-android-pay-amex-nonce"
|
21
|
-
# NEXT_MAJOR_VERSION Remove AmexExpressCheckout test nonces
|
22
|
-
AmexExpressCheckout = "fake-amex-express-checkout-nonce"
|
15
|
+
GooglePayDiscover = "fake-android-pay-discover-nonce"
|
16
|
+
GooglePayVisa = "fake-android-pay-visa-nonce"
|
17
|
+
GooglePayMasterCard = "fake-android-pay-mastercard-nonce"
|
18
|
+
GooglePayAmEx = "fake-android-pay-amex-nonce"
|
23
19
|
VenmoAccount = "fake-venmo-account-nonce"
|
24
20
|
VenmoAccountTokenIssuanceError = "fake-token-issuance-error-venmo-account-nonce"
|
25
21
|
ThreeDSecureVisaFullAuthentication = "fake-three-d-secure-visa-full-authentication-nonce"
|
@@ -62,14 +58,8 @@ module Braintree
|
|
62
58
|
ProcessorFailureJCB = "fake-processor-failure-jcb-nonce"
|
63
59
|
LuhnInvalid = "fake-luhn-invalid-nonce"
|
64
60
|
PayPalFuturePaymentRefreshToken = "fake-paypal-future-refresh-token-nonce"
|
65
|
-
SEPA = "fake-sepa-bank-account-nonce"
|
66
61
|
GatewayRejectedFraud = "fake-gateway-rejected-fraud-nonce"
|
67
62
|
GatewayRejectedRiskThresholds = "fake-gateway-rejected-risk-thresholds-nonce"
|
68
|
-
# NEXT_MAJOR_VERSION Remove Masterpass test nonces
|
69
|
-
MasterpassAmEx = "fake-masterpass-amex-nonce"
|
70
|
-
MasterpassDiscover = "fake-masterpass-discover-nonce"
|
71
|
-
MasterpassMasterCard = "fake-masterpass-mastercard-nonce"
|
72
|
-
MasterpassVisa = "fake-masterpass-visa-nonce"
|
73
63
|
VisaCheckoutAmEx = "fake-visa-checkout-amex-nonce"
|
74
64
|
VisaCheckoutDiscover = "fake-visa-checkout-discover-nonce"
|
75
65
|
VisaCheckoutMasterCard = "fake-visa-checkout-mastercard-nonce"
|
@@ -78,15 +68,6 @@ module Braintree
|
|
78
68
|
SamsungPayDiscover = "tokensam_fake_discover"
|
79
69
|
SamsungPayMasterCard = "tokensam_fake_mastercard"
|
80
70
|
SamsungPayVisa = "tokensam_fake_visa"
|
81
|
-
|
82
|
-
def self.const_missing(const_name)
|
83
|
-
if const_name == :AndroidPay
|
84
|
-
warn "[DEPRECATED] Braintree::Test::Nonce::AndroidPay is deprecated. Use a card-specific nonce, e.g. Braintree::Test::Nonce::AndroidPayMasterCard"
|
85
|
-
"fake-android-pay-nonce"
|
86
|
-
else
|
87
|
-
super
|
88
|
-
end
|
89
|
-
end
|
90
71
|
end
|
91
72
|
end
|
92
73
|
end
|
@@ -92,12 +92,8 @@ module Braintree
|
|
92
92
|
|
93
93
|
attr_reader :add_ons
|
94
94
|
attr_reader :additional_processor_response # The raw response from the processor.
|
95
|
-
# NEXT_MAJOR_VERSION Remove this class.
|
96
|
-
# DEPRECATED The American Express Checkout payment method is deprecated.
|
97
|
-
attr_reader :amex_express_checkout_details
|
98
95
|
attr_reader :amount
|
99
|
-
|
100
|
-
attr_reader :android_pay_details
|
96
|
+
attr_reader :google_pay_details
|
101
97
|
attr_reader :apple_pay_details
|
102
98
|
attr_reader :authorization_adjustments
|
103
99
|
attr_reader :authorization_expires_at
|
@@ -107,7 +103,6 @@ module Braintree
|
|
107
103
|
attr_reader :avs_street_address_response_code
|
108
104
|
attr_reader :billing_details
|
109
105
|
attr_reader :channel
|
110
|
-
attr_reader :coinbase_details
|
111
106
|
attr_reader :created_at
|
112
107
|
attr_reader :credit_card_details
|
113
108
|
attr_reader :currency_iso_code
|
@@ -125,13 +120,7 @@ module Braintree
|
|
125
120
|
attr_reader :gateway_rejection_reason
|
126
121
|
attr_reader :graphql_id
|
127
122
|
attr_reader :id
|
128
|
-
# NEXT_MAJOR_VERSION Remove this class as legacy Ideal has been removed/disabled in the Braintree Gateway
|
129
|
-
# DEPRECATED If you're looking to accept iDEAL as a payment method contact accounts@braintreepayments.com for a solution.
|
130
|
-
attr_reader :ideal_payment_details
|
131
123
|
attr_reader :local_payment_details
|
132
|
-
# NEXT_MAJOR_VERSION Remove this class.
|
133
|
-
# DEPRECATED The Masterpass Card payment method is deprecated.
|
134
|
-
attr_reader :masterpass_card_details
|
135
124
|
attr_reader :merchant_account_id
|
136
125
|
attr_reader :network_response_code # Response code from the card network
|
137
126
|
attr_reader :network_response_text # Response text from the card network
|
@@ -199,18 +188,6 @@ module Braintree
|
|
199
188
|
Configuration.gateway.transaction.clone_transaction!(*args)
|
200
189
|
end
|
201
190
|
|
202
|
-
# Deprecated. Use Braintree::TransparentRedirect.confirm
|
203
|
-
def self.create_from_transparent_redirect(*args)
|
204
|
-
warn "[DEPRECATED] Transaction.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
|
205
|
-
Configuration.gateway.transaction.create_from_transparent_redirect(*args)
|
206
|
-
end
|
207
|
-
|
208
|
-
# Deprecated. Use Braintree::TransparentRedirect.url
|
209
|
-
def self.create_transaction_url
|
210
|
-
warn "[DEPRECATED] Transaction.create_transaction_url is deprecated. Please use TransparentRedirect.url"
|
211
|
-
Configuration.gateway.transaction.create_transaction_url
|
212
|
-
end
|
213
|
-
|
214
191
|
def self.credit(*args)
|
215
192
|
Configuration.gateway.transaction.credit(*args)
|
216
193
|
end
|
@@ -313,11 +290,8 @@ module Braintree
|
|
313
290
|
@paypal_details = PayPalDetails.new(@paypal)
|
314
291
|
@paypal_here_details = PayPalHereDetails.new(@paypal_here)
|
315
292
|
@apple_pay_details = ApplePayDetails.new(@apple_pay)
|
316
|
-
|
317
|
-
@android_pay_details = AndroidPayDetails.new(@android_pay_card)
|
318
|
-
@amex_express_checkout_details = AmexExpressCheckoutDetails.new(@amex_express_checkout_card)
|
293
|
+
@google_pay_details = GooglePayDetails.new(@google_pay_card)
|
319
294
|
@venmo_account_details = VenmoAccountDetails.new(@venmo_account)
|
320
|
-
@coinbase_details = CoinbaseDetails.new(@coinbase_account)
|
321
295
|
disputes.map! { |attrs| Dispute._new(attrs) } if disputes
|
322
296
|
@custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
|
323
297
|
add_ons.map! { |attrs| AddOn._new(attrs) } if add_ons
|
@@ -328,9 +302,7 @@ module Braintree
|
|
328
302
|
@facilitator_details = FacilitatorDetails.new(attributes[:facilitator_details]) if attributes[:facilitator_details]
|
329
303
|
@three_d_secure_info = ThreeDSecureInfo.new(attributes[:three_d_secure_info]) if attributes[:three_d_secure_info]
|
330
304
|
@us_bank_account_details = UsBankAccountDetails.new(attributes[:us_bank_account]) if attributes[:us_bank_account]
|
331
|
-
@ideal_payment_details = IdealPaymentDetails.new(attributes[:ideal_payment]) if attributes[:ideal_payment]
|
332
305
|
@visa_checkout_card_details = VisaCheckoutCardDetails.new(attributes[:visa_checkout_card])
|
333
|
-
@masterpass_card_details = MasterpassCardDetails.new(attributes[:masterpass_card])
|
334
306
|
@samsung_pay_card_details = SamsungPayCardDetails.new(attributes[:samsung_pay_card])
|
335
307
|
authorization_adjustments.map! { |attrs| AuthorizationAdjustment._new(attrs) } if authorization_adjustments
|
336
308
|
end
|
@@ -352,18 +324,6 @@ module Braintree
|
|
352
324
|
@gateway.transaction_line_item.find_all(id)
|
353
325
|
end
|
354
326
|
|
355
|
-
# Deprecated. Use Braintree::Transaction.refund
|
356
|
-
def refund(amount = nil)
|
357
|
-
warn "[DEPRECATED] refund as an instance method is deprecated. Please use Transaction.refund"
|
358
|
-
result = @gateway.transaction.refund(id, amount)
|
359
|
-
|
360
|
-
if result.success?
|
361
|
-
SuccessfulResult.new(:new_transaction => result.transaction)
|
362
|
-
else
|
363
|
-
result
|
364
|
-
end
|
365
|
-
end
|
366
|
-
|
367
327
|
# Returns true if the transaction has been refunded. False otherwise.
|
368
328
|
def refunded?
|
369
329
|
!@refund_id.nil?
|
@@ -374,27 +334,6 @@ module Braintree
|
|
374
334
|
@disbursement_details.valid?
|
375
335
|
end
|
376
336
|
|
377
|
-
def refund_id
|
378
|
-
warn "[DEPRECATED] Transaction.refund_id is deprecated. Please use Transaction.refund_ids"
|
379
|
-
@refund_id
|
380
|
-
end
|
381
|
-
|
382
|
-
# Deprecated. Use Braintree::Transaction.submit_for_settlement
|
383
|
-
def submit_for_settlement(amount = nil)
|
384
|
-
warn "[DEPRECATED] submit_for_settlement as an instance method is deprecated. Please use Transaction.submit_for_settlement"
|
385
|
-
result = @gateway.transaction.submit_for_settlement(id, amount)
|
386
|
-
if result.success?
|
387
|
-
copy_instance_variables_from_object result.transaction
|
388
|
-
end
|
389
|
-
result
|
390
|
-
end
|
391
|
-
|
392
|
-
# Deprecated. Use Braintree::Transaction.submit_for_settlement!
|
393
|
-
def submit_for_settlement!(amount = nil)
|
394
|
-
warn "[DEPRECATED] submit_for_settlement! as an instance method is deprecated. Please use Transaction.submit_for_settlement!"
|
395
|
-
return_object_or_raise(:transaction) { submit_for_settlement(amount) }
|
396
|
-
end
|
397
|
-
|
398
337
|
# If this transaction was stored in the vault, or created from vault records,
|
399
338
|
# vault_billing_address will return the associated Braintree::Address. Because the
|
400
339
|
# vault billing address can be updated after the transaction was created, the attributes
|
@@ -431,22 +370,6 @@ module Braintree
|
|
431
370
|
@gateway.address.find(customer_details.id, shipping_details.id)
|
432
371
|
end
|
433
372
|
|
434
|
-
# Deprecated. Use Braintree::Transaction.void
|
435
|
-
def void
|
436
|
-
warn "[DEPRECATED] void as an instance method is deprecated. Please use Transaction.void"
|
437
|
-
result = @gateway.transaction.void(id)
|
438
|
-
if result.success?
|
439
|
-
copy_instance_variables_from_object result.transaction
|
440
|
-
end
|
441
|
-
result
|
442
|
-
end
|
443
|
-
|
444
|
-
# Deprecated. Use Braintree::Transaction.void!
|
445
|
-
def void!
|
446
|
-
warn "[DEPRECATED] void! as an instance method is deprecated. Please use Transaction.void!"
|
447
|
-
return_object_or_raise(:transaction) { void }
|
448
|
-
end
|
449
|
-
|
450
373
|
def processed_with_network_token?
|
451
374
|
@processed_with_network_token
|
452
375
|
end
|
@@ -8,6 +8,8 @@ module Braintree
|
|
8
8
|
|
9
9
|
def initialize(attributes)
|
10
10
|
set_instance_variables_from_hash attributes unless attributes.nil?
|
11
|
+
@billing_period_start_date = Date.parse(billing_period_start_date) unless billing_period_start_date.nil?
|
12
|
+
@billing_period_end_date = Date.parse(billing_period_end_date) unless billing_period_end_date.nil?
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
@@ -52,17 +52,6 @@ module Braintree
|
|
52
52
|
return_object_or_raise(:transaction) { clone_transaction(*args) }
|
53
53
|
end
|
54
54
|
|
55
|
-
# Deprecated
|
56
|
-
def create_from_transparent_redirect(query_string)
|
57
|
-
params = @gateway.transparent_redirect.parse_and_validate_query_string query_string
|
58
|
-
_do_create("/transactions/all/confirm_transparent_redirect_request", :id => params[:id])
|
59
|
-
end
|
60
|
-
|
61
|
-
def create_transaction_url
|
62
|
-
warn "[DEPRECATED] Transaction.create_transaction_url is deprecated. Please use TransparentRedirect.url"
|
63
|
-
"#{@config.base_merchant_url}/transactions/all/create_via_transparent_redirect_request"
|
64
|
-
end
|
65
|
-
|
66
55
|
def credit(attributes)
|
67
56
|
create(attributes.merge(:type => 'credit'))
|
68
57
|
end
|
@@ -124,7 +113,7 @@ module Braintree
|
|
124
113
|
if response.has_key?(:search_results)
|
125
114
|
ResourceCollection.new(response) { |ids| _fetch_transactions(search, ids) }
|
126
115
|
else
|
127
|
-
raise
|
116
|
+
raise UnexpectedError, "expected :search_results"
|
128
117
|
end
|
129
118
|
end
|
130
119
|
|
@@ -184,13 +173,13 @@ module Braintree
|
|
184
173
|
|
185
174
|
def self._create_signature # :nodoc:
|
186
175
|
[
|
187
|
-
:amount, :
|
188
|
-
:
|
189
|
-
:
|
190
|
-
:
|
191
|
-
:
|
192
|
-
:
|
193
|
-
:
|
176
|
+
:amount, :billing_address_id, :channel, :customer_id, :device_data, :discount_amount,
|
177
|
+
:merchant_account_id, :order_id, :payment_method_nonce, :payment_method_token,
|
178
|
+
:product_sku, :purchase_order_number, :service_fee_amount, :shared_billing_address_id,
|
179
|
+
:shared_customer_id, :shared_payment_method_nonce, :shared_payment_method_token,
|
180
|
+
:shared_shipping_address_id, :shipping_address_id, :shipping_amount,
|
181
|
+
:ships_from_postal_code, :tax_amount, :tax_exempt, :three_d_secure_authentication_id,
|
182
|
+
:three_d_secure_token, :transaction_source, :type, :venmo_sdk_payment_method_code,
|
194
183
|
{:line_items => [:quantity, :name, :description, :kind, :unit_amount, :unit_tax_amount, :total_amount, :discount_amount, :tax_amount, :unit_of_measure, :product_code, :commodity_code, :url]},
|
195
184
|
{:risk_data => [:customer_browser, :customer_device_id, :customer_ip, :customer_location_zip, :customer_tenure]},
|
196
185
|
{:credit_card => [:token, :cardholder_name, :cvv, :expiration_date, :expiration_month, :expiration_year, :number]},
|
@@ -256,8 +245,7 @@ module Braintree
|
|
256
245
|
]},
|
257
246
|
]},
|
258
247
|
{:apple_pay_card => [:number, :cardholder_name, :cryptogram, :expiration_month, :expiration_year, :eci_indicator]},
|
259
|
-
|
260
|
-
{:android_pay_card => [:number, :cryptogram, :google_transaction_id, :expiration_month, :expiration_year, :source_card_type, :source_card_last_four, :eci_indicator]}
|
248
|
+
{:google_pay_card => [:number, :cryptogram, :google_transaction_id, :expiration_month, :expiration_year, :source_card_type, :source_card_last_four, :eci_indicator]}
|
261
249
|
]
|
262
250
|
end
|
263
251
|
|
@@ -291,6 +279,9 @@ module Braintree
|
|
291
279
|
end
|
292
280
|
|
293
281
|
def _do_create(path, params=nil) # :nodoc:
|
282
|
+
if !params.nil?
|
283
|
+
params = Util.replace_key(params, :google_pay_card, :android_pay_card)
|
284
|
+
end
|
294
285
|
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
295
286
|
_handle_transaction_response(response)
|
296
287
|
end
|