braintree 2.104.0 → 3.3.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.
- 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
|