braintree 2.103.0 → 3.2.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 -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 +1 -0
- 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 -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 +5 -9
- data/lib/braintree/payment_method_parser.rb +1 -7
- data/lib/braintree/resource_collection.rb +8 -3
- 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 -20
- data/lib/braintree/transaction.rb +12 -74
- 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 +3 -0
- data/lib/braintree/transaction/subscription_details.rb +2 -0
- data/lib/braintree/transaction_gateway.rb +14 -20
- 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 +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/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 +300 -534
- data/spec/integration/braintree/transaction_us_bank_account_spec.rb +12 -6
- data/spec/integration/spec_helper.rb +1 -4
- 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/customer_spec.rb +2 -13
- data/spec/unit/braintree/dispute_spec.rb +3 -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/transaction/installment_spec.rb +25 -0
- data/spec/unit/braintree/transaction/paypal_details_spec.rb +59 -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 +30 -30
- 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
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,15 +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
|
-
|
|
6
|
+
GooglePayCard = 'android_pay_card'
|
|
9
7
|
VenmoAccount = 'venmo_account'
|
|
10
8
|
UsBankAccount = 'us_bank_account'
|
|
11
9
|
VisaCheckoutCard = 'visa_checkout_card'
|
|
12
|
-
MasterpassCard = 'masterpass_card'
|
|
13
10
|
SamsungPayCard = 'samsung_pay_card'
|
|
14
11
|
LocalPayment = 'local_payment'
|
|
15
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,16 +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
|
-
|
|
50
|
+
GooglePayCard._new(@gateway, response[:android_pay_card])
|
|
56
51
|
elsif response.has_key?(:venmo_account)
|
|
57
52
|
VenmoAccount._new(@gateway, response[:venmo_account])
|
|
58
53
|
else
|
|
@@ -156,6 +151,7 @@ module Braintree
|
|
|
156
151
|
:make_default, :verification_merchant_account_id, :verify_card, :venmo_sdk_session,
|
|
157
152
|
:verification_amount, :us_bank_account_verification_method,
|
|
158
153
|
:verification_account_type,
|
|
154
|
+
:verification_currency_iso_code,
|
|
159
155
|
:paypal => [
|
|
160
156
|
:payee_email,
|
|
161
157
|
:order_id,
|
|
@@ -166,9 +162,9 @@ module Braintree
|
|
|
166
162
|
],
|
|
167
163
|
]
|
|
168
164
|
signature = [
|
|
169
|
-
:billing_address_id, :cardholder_name, :cvv, :
|
|
170
|
-
:
|
|
171
|
-
:
|
|
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,
|
|
172
168
|
{:options => options},
|
|
173
169
|
{:billing_address => billing_address_params}
|
|
174
170
|
]
|
|
@@ -6,22 +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
|
-
elsif attributes[:amex_express_checkout_card]
|
|
18
|
-
AmexExpressCheckoutCard._new(gateway, attributes[:amex_express_checkout_card])
|
|
14
|
+
GooglePayCard._new(gateway, attributes[:android_pay_card])
|
|
19
15
|
elsif attributes[:venmo_account]
|
|
20
16
|
VenmoAccount._new(gateway, attributes[:venmo_account])
|
|
21
17
|
elsif attributes[:visa_checkout_card]
|
|
22
18
|
VisaCheckoutCard._new(gateway, attributes[:visa_checkout_card])
|
|
23
|
-
elsif attributes[:masterpass_card]
|
|
24
|
-
MasterpassCard._new(gateway, attributes[:masterpass_card])
|
|
25
19
|
elsif attributes[:samsung_pay_card]
|
|
26
20
|
SamsungPayCard._new(gateway, attributes[:samsung_pay_card])
|
|
27
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
|
|
@@ -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,12 +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
|
-
AndroidPayAmEx = "fake-android-pay-amex-nonce"
|
|
20
|
-
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"
|
|
21
19
|
VenmoAccount = "fake-venmo-account-nonce"
|
|
22
20
|
VenmoAccountTokenIssuanceError = "fake-token-issuance-error-venmo-account-nonce"
|
|
23
21
|
ThreeDSecureVisaFullAuthentication = "fake-three-d-secure-visa-full-authentication-nonce"
|
|
@@ -60,13 +58,8 @@ module Braintree
|
|
|
60
58
|
ProcessorFailureJCB = "fake-processor-failure-jcb-nonce"
|
|
61
59
|
LuhnInvalid = "fake-luhn-invalid-nonce"
|
|
62
60
|
PayPalFuturePaymentRefreshToken = "fake-paypal-future-refresh-token-nonce"
|
|
63
|
-
SEPA = "fake-sepa-bank-account-nonce"
|
|
64
61
|
GatewayRejectedFraud = "fake-gateway-rejected-fraud-nonce"
|
|
65
62
|
GatewayRejectedRiskThresholds = "fake-gateway-rejected-risk-thresholds-nonce"
|
|
66
|
-
MasterpassAmEx = "fake-masterpass-amex-nonce"
|
|
67
|
-
MasterpassDiscover = "fake-masterpass-discover-nonce"
|
|
68
|
-
MasterpassMasterCard = "fake-masterpass-mastercard-nonce"
|
|
69
|
-
MasterpassVisa = "fake-masterpass-visa-nonce"
|
|
70
63
|
VisaCheckoutAmEx = "fake-visa-checkout-amex-nonce"
|
|
71
64
|
VisaCheckoutDiscover = "fake-visa-checkout-discover-nonce"
|
|
72
65
|
VisaCheckoutMasterCard = "fake-visa-checkout-mastercard-nonce"
|
|
@@ -75,15 +68,6 @@ module Braintree
|
|
|
75
68
|
SamsungPayDiscover = "tokensam_fake_discover"
|
|
76
69
|
SamsungPayMasterCard = "tokensam_fake_mastercard"
|
|
77
70
|
SamsungPayVisa = "tokensam_fake_visa"
|
|
78
|
-
|
|
79
|
-
def self.const_missing(const_name)
|
|
80
|
-
if const_name == :AndroidPay
|
|
81
|
-
warn "[DEPRECATED] Braintree::Test::Nonce::AndroidPay is deprecated. Use a card-specific nonce, e.g. Braintree::Test::Nonce::AndroidPayMasterCard"
|
|
82
|
-
"fake-android-pay-nonce"
|
|
83
|
-
else
|
|
84
|
-
super
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
71
|
end
|
|
88
72
|
end
|
|
89
73
|
end
|
|
@@ -90,11 +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
|
-
attr_reader :amex_express_checkout_details
|
|
96
96
|
attr_reader :amount
|
|
97
|
-
attr_reader :android_pay_details
|
|
98
97
|
attr_reader :apple_pay_details
|
|
99
98
|
attr_reader :authorization_adjustments
|
|
100
99
|
attr_reader :authorization_expires_at
|
|
@@ -104,7 +103,6 @@ module Braintree
|
|
|
104
103
|
attr_reader :avs_street_address_response_code
|
|
105
104
|
attr_reader :billing_details
|
|
106
105
|
attr_reader :channel
|
|
107
|
-
attr_reader :coinbase_details
|
|
108
106
|
attr_reader :created_at
|
|
109
107
|
attr_reader :credit_card_details
|
|
110
108
|
attr_reader :currency_iso_code
|
|
@@ -120,13 +118,12 @@ module Braintree
|
|
|
120
118
|
attr_reader :facilitated_details
|
|
121
119
|
attr_reader :facilitator_details
|
|
122
120
|
attr_reader :gateway_rejection_reason
|
|
121
|
+
attr_reader :google_pay_details
|
|
123
122
|
attr_reader :graphql_id
|
|
124
123
|
attr_reader :id
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
attr_reader :ideal_payment_details
|
|
124
|
+
attr_reader :installment_count
|
|
125
|
+
attr_reader :installments
|
|
128
126
|
attr_reader :local_payment_details
|
|
129
|
-
attr_reader :masterpass_card_details
|
|
130
127
|
attr_reader :merchant_account_id
|
|
131
128
|
attr_reader :network_response_code # Response code from the card network
|
|
132
129
|
attr_reader :network_response_text # Response text from the card network
|
|
@@ -148,8 +145,11 @@ module Braintree
|
|
|
148
145
|
attr_reader :recurring
|
|
149
146
|
attr_reader :refund_ids
|
|
150
147
|
attr_reader :refunded_transaction_id
|
|
148
|
+
attr_reader :refunded_installments
|
|
149
|
+
attr_reader :retrieval_reference_number
|
|
151
150
|
attr_reader :risk_data
|
|
152
151
|
attr_reader :samsung_pay_card_details
|
|
152
|
+
attr_reader :sca_exemption_requested
|
|
153
153
|
attr_reader :service_fee_amount
|
|
154
154
|
attr_reader :settlement_batch_id
|
|
155
155
|
attr_reader :shipping_amount
|
|
@@ -168,7 +168,6 @@ module Braintree
|
|
|
168
168
|
attr_reader :venmo_account_details
|
|
169
169
|
attr_reader :visa_checkout_card_details
|
|
170
170
|
attr_reader :voice_referral_number
|
|
171
|
-
attr_reader :retrieval_reference_number
|
|
172
171
|
|
|
173
172
|
def self.create(*args)
|
|
174
173
|
Configuration.gateway.transaction.create(*args)
|
|
@@ -194,18 +193,6 @@ module Braintree
|
|
|
194
193
|
Configuration.gateway.transaction.clone_transaction!(*args)
|
|
195
194
|
end
|
|
196
195
|
|
|
197
|
-
# Deprecated. Use Braintree::TransparentRedirect.confirm
|
|
198
|
-
def self.create_from_transparent_redirect(*args)
|
|
199
|
-
warn "[DEPRECATED] Transaction.create_from_transparent_redirect is deprecated. Please use TransparentRedirect.confirm"
|
|
200
|
-
Configuration.gateway.transaction.create_from_transparent_redirect(*args)
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
# Deprecated. Use Braintree::TransparentRedirect.url
|
|
204
|
-
def self.create_transaction_url
|
|
205
|
-
warn "[DEPRECATED] Transaction.create_transaction_url is deprecated. Please use TransparentRedirect.url"
|
|
206
|
-
Configuration.gateway.transaction.create_transaction_url
|
|
207
|
-
end
|
|
208
|
-
|
|
209
196
|
def self.credit(*args)
|
|
210
197
|
Configuration.gateway.transaction.credit(*args)
|
|
211
198
|
end
|
|
@@ -308,10 +295,8 @@ module Braintree
|
|
|
308
295
|
@paypal_details = PayPalDetails.new(@paypal)
|
|
309
296
|
@paypal_here_details = PayPalHereDetails.new(@paypal_here)
|
|
310
297
|
@apple_pay_details = ApplePayDetails.new(@apple_pay)
|
|
311
|
-
@
|
|
312
|
-
@amex_express_checkout_details = AmexExpressCheckoutDetails.new(@amex_express_checkout_card)
|
|
298
|
+
@google_pay_details = GooglePayDetails.new(@google_pay_card)
|
|
313
299
|
@venmo_account_details = VenmoAccountDetails.new(@venmo_account)
|
|
314
|
-
@coinbase_details = CoinbaseDetails.new(@coinbase_account)
|
|
315
300
|
disputes.map! { |attrs| Dispute._new(attrs) } if disputes
|
|
316
301
|
@custom_fields = attributes[:custom_fields].is_a?(Hash) ? attributes[:custom_fields] : {}
|
|
317
302
|
add_ons.map! { |attrs| AddOn._new(attrs) } if add_ons
|
|
@@ -322,11 +307,13 @@ module Braintree
|
|
|
322
307
|
@facilitator_details = FacilitatorDetails.new(attributes[:facilitator_details]) if attributes[:facilitator_details]
|
|
323
308
|
@three_d_secure_info = ThreeDSecureInfo.new(attributes[:three_d_secure_info]) if attributes[:three_d_secure_info]
|
|
324
309
|
@us_bank_account_details = UsBankAccountDetails.new(attributes[:us_bank_account]) if attributes[:us_bank_account]
|
|
325
|
-
@ideal_payment_details = IdealPaymentDetails.new(attributes[:ideal_payment]) if attributes[:ideal_payment]
|
|
326
310
|
@visa_checkout_card_details = VisaCheckoutCardDetails.new(attributes[:visa_checkout_card])
|
|
327
|
-
@masterpass_card_details = MasterpassCardDetails.new(attributes[:masterpass_card])
|
|
328
311
|
@samsung_pay_card_details = SamsungPayCardDetails.new(attributes[:samsung_pay_card])
|
|
312
|
+
@sca_exemption_requested = attributes[:sca_exemption_requested]
|
|
329
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
|
|
330
317
|
end
|
|
331
318
|
|
|
332
319
|
def inspect # :nodoc:
|
|
@@ -346,18 +333,6 @@ module Braintree
|
|
|
346
333
|
@gateway.transaction_line_item.find_all(id)
|
|
347
334
|
end
|
|
348
335
|
|
|
349
|
-
# Deprecated. Use Braintree::Transaction.refund
|
|
350
|
-
def refund(amount = nil)
|
|
351
|
-
warn "[DEPRECATED] refund as an instance method is deprecated. Please use Transaction.refund"
|
|
352
|
-
result = @gateway.transaction.refund(id, amount)
|
|
353
|
-
|
|
354
|
-
if result.success?
|
|
355
|
-
SuccessfulResult.new(:new_transaction => result.transaction)
|
|
356
|
-
else
|
|
357
|
-
result
|
|
358
|
-
end
|
|
359
|
-
end
|
|
360
|
-
|
|
361
336
|
# Returns true if the transaction has been refunded. False otherwise.
|
|
362
337
|
def refunded?
|
|
363
338
|
!@refund_id.nil?
|
|
@@ -368,27 +343,6 @@ module Braintree
|
|
|
368
343
|
@disbursement_details.valid?
|
|
369
344
|
end
|
|
370
345
|
|
|
371
|
-
def refund_id
|
|
372
|
-
warn "[DEPRECATED] Transaction.refund_id is deprecated. Please use Transaction.refund_ids"
|
|
373
|
-
@refund_id
|
|
374
|
-
end
|
|
375
|
-
|
|
376
|
-
# Deprecated. Use Braintree::Transaction.submit_for_settlement
|
|
377
|
-
def submit_for_settlement(amount = nil)
|
|
378
|
-
warn "[DEPRECATED] submit_for_settlement as an instance method is deprecated. Please use Transaction.submit_for_settlement"
|
|
379
|
-
result = @gateway.transaction.submit_for_settlement(id, amount)
|
|
380
|
-
if result.success?
|
|
381
|
-
copy_instance_variables_from_object result.transaction
|
|
382
|
-
end
|
|
383
|
-
result
|
|
384
|
-
end
|
|
385
|
-
|
|
386
|
-
# Deprecated. Use Braintree::Transaction.submit_for_settlement!
|
|
387
|
-
def submit_for_settlement!(amount = nil)
|
|
388
|
-
warn "[DEPRECATED] submit_for_settlement! as an instance method is deprecated. Please use Transaction.submit_for_settlement!"
|
|
389
|
-
return_object_or_raise(:transaction) { submit_for_settlement(amount) }
|
|
390
|
-
end
|
|
391
|
-
|
|
392
346
|
# If this transaction was stored in the vault, or created from vault records,
|
|
393
347
|
# vault_billing_address will return the associated Braintree::Address. Because the
|
|
394
348
|
# vault billing address can be updated after the transaction was created, the attributes
|
|
@@ -425,22 +379,6 @@ module Braintree
|
|
|
425
379
|
@gateway.address.find(customer_details.id, shipping_details.id)
|
|
426
380
|
end
|
|
427
381
|
|
|
428
|
-
# Deprecated. Use Braintree::Transaction.void
|
|
429
|
-
def void
|
|
430
|
-
warn "[DEPRECATED] void as an instance method is deprecated. Please use Transaction.void"
|
|
431
|
-
result = @gateway.transaction.void(id)
|
|
432
|
-
if result.success?
|
|
433
|
-
copy_instance_variables_from_object result.transaction
|
|
434
|
-
end
|
|
435
|
-
result
|
|
436
|
-
end
|
|
437
|
-
|
|
438
|
-
# Deprecated. Use Braintree::Transaction.void!
|
|
439
|
-
def void!
|
|
440
|
-
warn "[DEPRECATED] void! as an instance method is deprecated. Please use Transaction.void!"
|
|
441
|
-
return_object_or_raise(:transaction) { void }
|
|
442
|
-
end
|
|
443
|
-
|
|
444
382
|
def processed_with_network_token?
|
|
445
383
|
@processed_with_network_token
|
|
446
384
|
end
|