braintree 2.104.0 → 3.3.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 +5 -17
- data/lib/braintree/address.rb +0 -22
- 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 +0 -75
- data/lib/braintree/credit_card_gateway.rb +4 -33
- 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 +144 -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/local_payment_completed.rb +1 -1
- 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 +5 -10
- data/lib/braintree/payment_method_parser.rb +1 -8
- data/lib/braintree/resource_collection.rb +8 -3
- data/lib/braintree/risk_data.rb +3 -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 +4 -23
- data/lib/braintree/three_d_secure_info.rb +22 -12
- data/lib/braintree/transaction.rb +12 -80
- 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/installment.rb +28 -0
- data/lib/braintree/transaction/installment/adjustment.rb +33 -0
- data/lib/braintree/transaction/paypal_details.rb +1 -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 +0 -26
- data/spec/integration/braintree/credit_card_spec.rb +13 -476
- data/spec/integration/braintree/customer_spec.rb +189 -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 +254 -120
- data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +8 -4
- 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 +324 -550
- data/spec/integration/braintree/transaction_us_bank_account_spec.rb +12 -6
- data/spec/integration/spec_helper.rb +8 -5
- data/spec/spec_helper.rb +2 -11
- data/spec/unit/braintree/address_spec.rb +0 -8
- data/spec/unit/braintree/credit_card_spec.rb +3 -22
- data/spec/unit/braintree/credit_card_verification_spec.rb +6 -2
- data/spec/unit/braintree/customer_spec.rb +2 -13
- data/spec/unit/braintree/dispute_spec.rb +1 -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/resource_collection_spec.rb +29 -0
- data/spec/unit/braintree/risk_data_spec.rb +9 -5
- data/spec/unit/braintree/three_d_secure_info_spec.rb +32 -14
- data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
- data/spec/unit/braintree/transaction/paypal_details_spec.rb +2 -0
- 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 +29 -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
|
@@ -9,7 +9,7 @@ module Braintree
|
|
9
9
|
|
10
10
|
def initialize(attributes) # :nodoc:
|
11
11
|
set_instance_variables_from_hash(attributes)
|
12
|
-
@transaction = Transaction._new(Configuration.gateway, transaction)
|
12
|
+
@transaction = Transaction._new(Configuration.gateway, transaction) unless transaction.nil?
|
13
13
|
end
|
14
14
|
|
15
15
|
class << self
|
@@ -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'
|
@@ -19,7 +19,6 @@ module Braintree
|
|
19
19
|
|
20
20
|
def _do_create(path, params=nil) # :nodoc:
|
21
21
|
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
22
|
-
|
23
22
|
if response[:api_error_response]
|
24
23
|
ErrorResult.new(@gateway, response[:api_error_response])
|
25
24
|
elsif response
|
@@ -43,17 +42,12 @@ module Braintree
|
|
43
42
|
CreditCard._new(@gateway, response[:credit_card])
|
44
43
|
elsif response.has_key?(:paypal_account)
|
45
44
|
PayPalAccount._new(@gateway, response[:paypal_account])
|
46
|
-
elsif response[:coinbase_account]
|
47
|
-
SuccessfulResult.new(:payment_method => CoinbaseAccount._new(@gateway, response[:coinbase_account]))
|
48
45
|
elsif response.has_key?(:us_bank_account)
|
49
46
|
UsBankAccount._new(@gateway, response[:us_bank_account])
|
50
|
-
elsif response.has_key?(:europe_bank_account)
|
51
|
-
EuropeBankAccount._new(@gateway, response[:europe_bank_account])
|
52
47
|
elsif response.has_key?(:apple_pay_card)
|
53
48
|
ApplePayCard._new(@gateway, response[:apple_pay_card])
|
54
49
|
elsif response.has_key?(:android_pay_card)
|
55
|
-
|
56
|
-
AndroidPayCard._new(@gateway, response[:android_pay_card])
|
50
|
+
GooglePayCard._new(@gateway, response[:android_pay_card])
|
57
51
|
elsif response.has_key?(:venmo_account)
|
58
52
|
VenmoAccount._new(@gateway, response[:venmo_account])
|
59
53
|
else
|
@@ -157,6 +151,7 @@ module Braintree
|
|
157
151
|
:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session,
|
158
152
|
:verification_amount, :us_bank_account_verification_method,
|
159
153
|
:verification_account_type,
|
154
|
+
:verification_currency_iso_code,
|
160
155
|
:paypal => [
|
161
156
|
:payee_email,
|
162
157
|
:order_id,
|
@@ -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
|
@@ -22,9 +22,14 @@ module Braintree
|
|
22
22
|
@ids.empty?
|
23
23
|
end
|
24
24
|
|
25
|
-
# Returns the first
|
26
|
-
def first
|
27
|
-
@
|
25
|
+
# Returns the first or the first N items in the collection or nil if the collection is empty
|
26
|
+
def first(amount = 1)
|
27
|
+
return nil if @ids.empty?
|
28
|
+
return @paging_block.call([@ids.first]).first if amount == 1
|
29
|
+
|
30
|
+
@ids.first(amount).each_slice(@page_size).flat_map do |page_of_ids|
|
31
|
+
@paging_block.call(page_of_ids)
|
32
|
+
end
|
28
33
|
end
|
29
34
|
|
30
35
|
# Only the maximum size of a resource collection can be determined since the data on the server can change while
|
data/lib/braintree/risk_data.rb
CHANGED
@@ -6,16 +6,18 @@ module Braintree
|
|
6
6
|
attr_reader :customer_location_zip
|
7
7
|
attr_reader :customer_tenure
|
8
8
|
attr_reader :decision
|
9
|
+
attr_reader :decision_reasons
|
9
10
|
attr_reader :device_data_captured
|
10
11
|
attr_reader :fraud_service_provider
|
11
12
|
attr_reader :id
|
13
|
+
attr_reader :transaction_risk_score
|
12
14
|
|
13
15
|
def initialize(attributes)
|
14
16
|
set_instance_variables_from_hash attributes unless attributes.nil?
|
15
17
|
end
|
16
18
|
|
17
19
|
def inspect
|
18
|
-
attr_order = [:id, :decision, :device_data_captured, :fraud_service_provider]
|
20
|
+
attr_order = [:id, :decision, :decision_reasons, :device_data_captured, :fraud_service_provider, :transaction_risk_score]
|
19
21
|
formatted_attrs = attr_order.map do |attr|
|
20
22
|
"#{attr}: #{send(attr).inspect}"
|
21
23
|
end
|
@@ -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
|
@@ -2,16 +2,21 @@ module Braintree
|
|
2
2
|
class ThreeDSecureInfo # :nodoc:
|
3
3
|
include BaseModule
|
4
4
|
|
5
|
+
attr_reader :acs_transaction_id
|
6
|
+
attr_reader :cavv
|
7
|
+
attr_reader :ds_transaction_id
|
8
|
+
attr_reader :eci_flag
|
5
9
|
attr_reader :enrolled
|
6
|
-
attr_reader :liability_shifted
|
7
10
|
attr_reader :liability_shift_possible
|
11
|
+
attr_reader :liability_shifted
|
12
|
+
attr_reader :pares_status
|
8
13
|
attr_reader :status
|
9
|
-
attr_reader :cavv
|
10
|
-
attr_reader :xid
|
11
|
-
attr_reader :eci_flag
|
12
|
-
attr_reader :three_d_secure_version
|
13
|
-
attr_reader :ds_transaction_id
|
14
14
|
attr_reader :three_d_secure_authentication_id
|
15
|
+
attr_reader :three_d_secure_transaction_id
|
16
|
+
attr_reader :three_d_secure_version
|
17
|
+
attr_reader :xid
|
18
|
+
attr_reader :lookup
|
19
|
+
attr_reader :authentication
|
15
20
|
|
16
21
|
alias_method :liability_shifted?, :liability_shifted
|
17
22
|
alias_method :liability_shift_possible?, :liability_shift_possible
|
@@ -22,16 +27,21 @@ module Braintree
|
|
22
27
|
|
23
28
|
def inspect
|
24
29
|
attr_order = [
|
30
|
+
:acs_transaction_id,
|
31
|
+
:authentication,
|
32
|
+
:cavv,
|
33
|
+
:ds_transaction_id,
|
34
|
+
:eci_flag,
|
25
35
|
:enrolled,
|
26
|
-
:liability_shifted,
|
27
36
|
:liability_shift_possible,
|
37
|
+
:liability_shifted,
|
38
|
+
:lookup,
|
39
|
+
:pares_status,
|
28
40
|
:status,
|
29
|
-
:cavv,
|
30
|
-
:xid,
|
31
|
-
:eci_flag,
|
32
|
-
:three_d_secure_version,
|
33
|
-
:ds_transaction_id,
|
34
41
|
:three_d_secure_authentication_id,
|
42
|
+
:three_d_secure_transaction_id,
|
43
|
+
:three_d_secure_version,
|
44
|
+
:xid
|
35
45
|
]
|
36
46
|
|
37
47
|
formatted_attrs = attr_order.map do |attr|
|
@@ -90,14 +90,10 @@ module Braintree
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
+
attr_reader :acquirer_reference_number
|
93
94
|
attr_reader :add_ons
|
94
95
|
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
96
|
attr_reader :amount
|
99
|
-
# NEXT_MAJOR_VERSION rename Android Pay to Google Pay
|
100
|
-
attr_reader :android_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
|
@@ -123,15 +118,12 @@ module Braintree
|
|
123
118
|
attr_reader :facilitated_details
|
124
119
|
attr_reader :facilitator_details
|
125
120
|
attr_reader :gateway_rejection_reason
|
121
|
+
attr_reader :google_pay_details
|
126
122
|
attr_reader :graphql_id
|
127
123
|
attr_reader :id
|
128
|
-
|
129
|
-
|
130
|
-
attr_reader :ideal_payment_details
|
124
|
+
attr_reader :installment_count
|
125
|
+
attr_reader :installments
|
131
126
|
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
127
|
attr_reader :merchant_account_id
|
136
128
|
attr_reader :network_response_code # Response code from the card network
|
137
129
|
attr_reader :network_response_text # Response text from the card network
|
@@ -153,8 +145,11 @@ module Braintree
|
|
153
145
|
attr_reader :recurring
|
154
146
|
attr_reader :refund_ids
|
155
147
|
attr_reader :refunded_transaction_id
|
148
|
+
attr_reader :refunded_installments
|
149
|
+
attr_reader :retrieval_reference_number
|
156
150
|
attr_reader :risk_data
|
157
151
|
attr_reader :samsung_pay_card_details
|
152
|
+
attr_reader :sca_exemption_requested
|
158
153
|
attr_reader :service_fee_amount
|
159
154
|
attr_reader :settlement_batch_id
|
160
155
|
attr_reader :shipping_amount
|
@@ -173,7 +168,6 @@ module Braintree
|
|
173
168
|
attr_reader :venmo_account_details
|
174
169
|
attr_reader :visa_checkout_card_details
|
175
170
|
attr_reader :voice_referral_number
|
176
|
-
attr_reader :retrieval_reference_number
|
177
171
|
|
178
172
|
def self.create(*args)
|
179
173
|
Configuration.gateway.transaction.create(*args)
|
@@ -199,18 +193,6 @@ module Braintree
|
|
199
193
|
Configuration.gateway.transaction.clone_transaction!(*args)
|
200
194
|
end
|
201
195
|
|
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
196
|
def self.credit(*args)
|
215
197
|
Configuration.gateway.transaction.credit(*args)
|
216
198
|
end
|
@@ -313,11 +295,8 @@ module Braintree
|
|
313
295
|
@paypal_details = PayPalDetails.new(@paypal)
|
314
296
|
@paypal_here_details = PayPalHereDetails.new(@paypal_here)
|
315
297
|
@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)
|
298
|
+
@google_pay_details = GooglePayDetails.new(@google_pay_card)
|
319
299
|
@venmo_account_details = VenmoAccountDetails.new(@venmo_account)
|
320
|
-
@coinbase_details = CoinbaseDetails.new(@coinbase_account)
|
321
300
|
disputes.map! { |attrs| Dispute._new(attrs) } if disputes
|
322
301
|
@custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
|
323
302
|
add_ons.map! { |attrs| AddOn._new(attrs) } if add_ons
|
@@ -328,11 +307,13 @@ module Braintree
|
|
328
307
|
@facilitator_details = FacilitatorDetails.new(attributes[:facilitator_details]) if attributes[:facilitator_details]
|
329
308
|
@three_d_secure_info = ThreeDSecureInfo.new(attributes[:three_d_secure_info]) if attributes[:three_d_secure_info]
|
330
309
|
@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
310
|
@visa_checkout_card_details = VisaCheckoutCardDetails.new(attributes[:visa_checkout_card])
|
333
|
-
@masterpass_card_details = MasterpassCardDetails.new(attributes[:masterpass_card])
|
334
311
|
@samsung_pay_card_details = SamsungPayCardDetails.new(attributes[:samsung_pay_card])
|
312
|
+
@sca_exemption_requested = attributes[:sca_exemption_requested]
|
335
313
|
authorization_adjustments.map! { |attrs| AuthorizationAdjustment._new(attrs) } if authorization_adjustments
|
314
|
+
|
315
|
+
installments.map! { |attrs| Installment.new(attrs) } if installments
|
316
|
+
refunded_installments.map! { |attrs| Installment.new(attrs) } if refunded_installments
|
336
317
|
end
|
337
318
|
|
338
319
|
def inspect # :nodoc:
|
@@ -352,18 +333,6 @@ module Braintree
|
|
352
333
|
@gateway.transaction_line_item.find_all(id)
|
353
334
|
end
|
354
335
|
|
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
336
|
# Returns true if the transaction has been refunded. False otherwise.
|
368
337
|
def refunded?
|
369
338
|
!@refund_id.nil?
|
@@ -374,27 +343,6 @@ module Braintree
|
|
374
343
|
@disbursement_details.valid?
|
375
344
|
end
|
376
345
|
|
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
346
|
# If this transaction was stored in the vault, or created from vault records,
|
399
347
|
# vault_billing_address will return the associated Braintree::Address. Because the
|
400
348
|
# vault billing address can be updated after the transaction was created, the attributes
|
@@ -431,22 +379,6 @@ module Braintree
|
|
431
379
|
@gateway.address.find(customer_details.id, shipping_details.id)
|
432
380
|
end
|
433
381
|
|
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
382
|
def processed_with_network_token?
|
451
383
|
@processed_with_network_token
|
452
384
|
end
|