braintree 4.25.0 → 4.27.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/lib/braintree/apple_pay_card.rb +1 -0
- data/lib/braintree/bin_data.rb +2 -1
- data/lib/braintree/configuration.rb +1 -1
- data/lib/braintree/credit_card.rb +6 -5
- data/lib/braintree/error_codes.rb +46 -104
- data/lib/braintree/gateway.rb +4 -0
- data/lib/braintree/google_pay_card.rb +1 -0
- data/lib/braintree/merchant_account.rb +1 -25
- data/lib/braintree/merchant_account_gateway.rb +0 -81
- data/lib/braintree/meta_checkout_card.rb +6 -5
- data/lib/braintree/meta_checkout_token.rb +6 -5
- data/lib/braintree/paypal_payment_resource.rb +22 -0
- data/lib/braintree/paypal_payment_resource_gateway.rb +36 -0
- data/lib/braintree/test/credit_card.rb +1 -0
- data/lib/braintree/transaction/apple_pay_details.rb +1 -0
- data/lib/braintree/transaction/credit_card_details.rb +12 -10
- data/lib/braintree/transaction/google_pay_details.rb +11 -10
- data/lib/braintree/transaction/meta_checkout_card_details.rb +5 -2
- data/lib/braintree/transaction/meta_checkout_token_details.rb +6 -2
- data/lib/braintree/transaction/visa_checkout_card_details.rb +5 -2
- data/lib/braintree/transaction.rb +0 -26
- data/lib/braintree/transaction_gateway.rb +9 -20
- data/lib/braintree/version.rb +1 -1
- data/lib/braintree/visa_checkout_card.rb +5 -5
- data/lib/braintree/webhook_notification.rb +0 -4
- data/lib/braintree/webhook_testing_gateway.rb +0 -33
- data/lib/braintree.rb +2 -3
- data/spec/integration/braintree/credit_card_spec.rb +12 -0
- data/spec/integration/braintree/credit_card_verification_spec.rb +24 -0
- data/spec/integration/braintree/customer_spec.rb +22 -6
- data/spec/integration/braintree/disbursement_spec.rb +1 -1
- data/spec/integration/braintree/merchant_account_spec.rb +0 -342
- data/spec/integration/braintree/payment_method_nonce_spec.rb +11 -0
- data/spec/integration/braintree/payment_method_spec.rb +3 -3
- data/spec/integration/braintree/paypal_payment_resource_spec.rb +141 -0
- data/spec/integration/braintree/transaction_payment_facilitator_spec.rb +119 -0
- data/spec/integration/braintree/transaction_spec.rb +16 -305
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/braintree/apple_pay_card_spec.rb +1 -0
- data/spec/unit/braintree/configuration_spec.rb +1 -1
- data/spec/unit/braintree/credit_card_spec.rb +5 -0
- data/spec/unit/braintree/google_pay_card_spec.rb +8 -0
- data/spec/unit/braintree/meta_checkout_card_spec.rb +53 -51
- data/spec/unit/braintree/meta_checkout_token_spec.rb +3 -1
- data/spec/unit/braintree/payment_method_nonce_spec.rb +4 -1
- data/spec/unit/braintree/paypal_payment_resource_spec.rb +125 -0
- data/spec/unit/braintree/transaction/apple_pay_details_spec.rb +8 -0
- data/spec/unit/braintree/transaction/credit_card_details_spec.rb +2 -1
- data/spec/unit/braintree/transaction/google_pay_details_spec.rb +8 -0
- data/spec/unit/braintree/transaction/meta_checkout_card_details_spec.rb +8 -0
- data/spec/unit/braintree/transaction/meta_checkout_token_details_spec.rb +8 -0
- data/spec/unit/braintree/transaction/visa_checkout_card_details_spec.rb +8 -0
- data/spec/unit/braintree/transaction_gateway_spec.rb +19 -0
- data/spec/unit/braintree/transaction_spec.rb +2 -0
- data/spec/unit/braintree/visa_checkout_card_spec.rb +8 -0
- data/spec/unit/braintree/webhook_notification_spec.rb +0 -53
- data/spec/unit/credit_card_details_spec.rb +8 -0
- metadata +15 -7
- data/lib/braintree/merchant_account/business_details.rb +0 -17
- data/lib/braintree/merchant_account/funding_details.rb +0 -18
- data/lib/braintree/merchant_account/individual_details.rb +0 -20
- data/spec/unit/braintree/disbursement_spec.rb +0 -131
- data/spec/unit/braintree/merchant_account_spec.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4cf859b9e9cd1dc488cbebf8b754be0a5657e76202688385526c3e83aae6510a
|
4
|
+
data.tar.gz: 71cfdbfa882a2e5e6bbb21cdd09bbf2c60b64b73956dd54a641c97cc8f3c2bee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7df6373d9bfa7fcb80d6d828cdfe36e044e194ff5a7e63bfb561cd52e946e61d564ddbc63f4194680a69642ef4a8e8a681b88eb90e03d43348660ca10a9b41cb
|
7
|
+
data.tar.gz: bd194236bbf640da0e0765819468e12b0358b292a66a042482c7869abe3ee786c5f2e92b59dc3a00f22c6ccd85a94f94cecae1b99008e9923712a848f4aaec1e
|
data/lib/braintree/bin_data.rb
CHANGED
@@ -10,6 +10,7 @@ module Braintree
|
|
10
10
|
attr_reader :issuing_bank
|
11
11
|
attr_reader :payroll
|
12
12
|
attr_reader :prepaid
|
13
|
+
attr_reader :prepaid_reloadable
|
13
14
|
attr_reader :product_id
|
14
15
|
|
15
16
|
def initialize(attributes)
|
@@ -26,7 +27,7 @@ module Braintree
|
|
26
27
|
def self._attributes
|
27
28
|
[
|
28
29
|
:commercial, :country_of_issuance, :debit, :durbin_regulated, :healthcare,
|
29
|
-
:issuing_bank, :payroll, :prepaid, :product_id
|
30
|
+
:issuing_bank, :payroll, :prepaid, :prepaid_reloadable, :product_id
|
30
31
|
]
|
31
32
|
end
|
32
33
|
end
|
@@ -45,8 +45,8 @@ module Braintree
|
|
45
45
|
Unknown = "Unknown"
|
46
46
|
end
|
47
47
|
|
48
|
-
Commercial = Debit = DurbinRegulated = Healthcare =
|
49
|
-
IssuingBank =
|
48
|
+
Commercial = CountryOfIssuance = Debit = DurbinRegulated = Healthcare =
|
49
|
+
IssuingBank = Payroll = Prepaid = PrepaidReloadable = ProductId = CardTypeIndicator
|
50
50
|
|
51
51
|
attr_reader :billing_address
|
52
52
|
attr_reader :bin
|
@@ -66,6 +66,7 @@ module Braintree
|
|
66
66
|
attr_reader :last_4
|
67
67
|
attr_reader :payroll
|
68
68
|
attr_reader :prepaid
|
69
|
+
attr_reader :prepaid_reloadable
|
69
70
|
attr_reader :product_id
|
70
71
|
attr_reader :subscriptions
|
71
72
|
attr_reader :token
|
@@ -199,9 +200,9 @@ module Braintree
|
|
199
200
|
|
200
201
|
def self._attributes
|
201
202
|
[
|
202
|
-
:billing_address, :bin, :card_type, :cardholder_name, :
|
203
|
-
:
|
204
|
-
:
|
203
|
+
:billing_address, :bin, :card_type, :cardholder_name, :commercial, :country_of_issuance, :created_at, :customer_id,
|
204
|
+
:debit, :durbin_regulated, :expiration_month, :expiration_year, :healthcare, :image_url, :is_network_tokenized?,
|
205
|
+
:issuing_bank, :last_4, :payroll, :prepaid, :prepaid_reloadable, :product_id, :token, :updated_at
|
205
206
|
]
|
206
207
|
end
|
207
208
|
|
@@ -116,7 +116,6 @@ module Braintree
|
|
116
116
|
VerificationAmountFormatIsInvalid = "91740"
|
117
117
|
VerificationAmountIsTooLarge = "91752"
|
118
118
|
VerificationAmountNotSupportedByProcessor = "91741"
|
119
|
-
VerificationMerchantAccountCannotBeSubMerchantAccount = "91755"
|
120
119
|
VerificationMerchantAccountIdIsInvalid = "91728"
|
121
120
|
VerificationMerchantAccountIsForbidden = "91743"
|
122
121
|
VerificationMerchantAccountIsSuspended = "91742"
|
@@ -191,6 +190,10 @@ module Braintree
|
|
191
190
|
AndroidPayCardsAreNotAccepted = "83708"
|
192
191
|
end
|
193
192
|
|
193
|
+
module PaymentFacilitator
|
194
|
+
PaymentFacilitatorNotApplicable = "97405"
|
195
|
+
end
|
196
|
+
|
194
197
|
module PayPalAccount
|
195
198
|
AuthExpired = "92911"
|
196
199
|
CannotHaveBothAccessTokenAndConsentCode = "82903"
|
@@ -210,6 +213,47 @@ module Braintree
|
|
210
213
|
TokenIsInUse = "92906"
|
211
214
|
end
|
212
215
|
|
216
|
+
module PayPalPaymentResource
|
217
|
+
NonceExpired = "97301"
|
218
|
+
IdNotSupported = "97302"
|
219
|
+
NonceRequired = "97303"
|
220
|
+
InvalidEmail = "97304"
|
221
|
+
EmailTooLong = "97305"
|
222
|
+
ExpectedLineItemCollection = "97306"
|
223
|
+
ExpectedLineItemHash = "97307"
|
224
|
+
ExpectedLineItemDebit = "97308"
|
225
|
+
InvalidUnitAmount = "97309"
|
226
|
+
InvalidUnitTaxAmount = "97310"
|
227
|
+
IsoCodeRequired = "97311"
|
228
|
+
IsoCodeUnsupported = "97312"
|
229
|
+
ShippingFieldsMissing = "97313"
|
230
|
+
InvalidAmountBreakdown = "97314"
|
231
|
+
ExpectedShippingOptionCollection = "97315"
|
232
|
+
ShippingOptionsRequired = "97316"
|
233
|
+
ShippingOptionFieldsMissing = "97317"
|
234
|
+
InvalidShippingOptionType = "97318"
|
235
|
+
ShippingOptionIdReused = "97319"
|
236
|
+
TooManyShippingOptionsSelected = "97320"
|
237
|
+
ShippingOptionMustMatchBreakdown = "97321"
|
238
|
+
LineItemsShouldMatchTotal = "97322"
|
239
|
+
LineItemsTaxShouldMatchTotal = "97323"
|
240
|
+
PatchCallFailed = "97324"
|
241
|
+
InvalidAmount = "97325"
|
242
|
+
ShippingIdTooLong = "97326"
|
243
|
+
ShippingLabelTooLong = "97327"
|
244
|
+
ShippingFullNameTooLong = "97328"
|
245
|
+
ShippingAddressTooLong = "97329"
|
246
|
+
ShippingExtendedAddressTooLong = "97330"
|
247
|
+
ShippingLocalityTooLong = "97331"
|
248
|
+
ShippingRegionTooLong = "97332"
|
249
|
+
CountryCodeTooLong = "97333"
|
250
|
+
NationalNumberTooLong = "97334"
|
251
|
+
PostalCodeTooLong = "97335"
|
252
|
+
DescriptionTooLong = "97336"
|
253
|
+
CustomFieldTooLong = "97337"
|
254
|
+
OrderIdTooLong = "97338"
|
255
|
+
end
|
256
|
+
|
213
257
|
module SepaDirectDebitAccount
|
214
258
|
SepaDebitAccountPaymentMethodMandateTypeIsNotSupported = "87115"
|
215
259
|
SepaDebitAccountPaymentMethodCustomerIdIsInvalid = "87116"
|
@@ -296,21 +340,16 @@ module Braintree
|
|
296
340
|
BillingAddressConflict = "91530"
|
297
341
|
BillingPhoneNumberIsInvalid = "915206"
|
298
342
|
CannotBeVoided = "91504"
|
299
|
-
CannotCancelRelease = "91562"
|
300
343
|
CannotCloneCredit = "91543"
|
301
|
-
CannotCloneMarketplaceTransaction = "915137"
|
302
344
|
CannotCloneTransactionWithPayPalAccount = "91573"
|
303
345
|
CannotCloneTransactionWithVaultCreditCard = "91540"
|
304
346
|
CannotCloneUnsuccessfulTransaction = "91542"
|
305
347
|
CannotCloneVoiceAuthorizations = "91541"
|
306
|
-
CannotHoldInEscrow = "91560"
|
307
|
-
CannotPartiallyRefundEscrowedTransaction = "91563"
|
308
348
|
CannotRefundCredit = "91505"
|
309
349
|
CannotRefundSettlingTransaction = "91574"
|
310
350
|
CannotRefundUnlessSettled = "91506"
|
311
351
|
CannotRefundWithPendingMerchantAccount = "91559"
|
312
352
|
CannotRefundWithSuspendedMerchantAccount = "91538"
|
313
|
-
CannotReleaseFromEscrow = "91561"
|
314
353
|
CannotSimulateTransactionSettlement = "91575"
|
315
354
|
CannotSubmitForSettlement = "91507"
|
316
355
|
CannotUpdateTransactionDetailsNotSubmittedForSettlement = "915129"
|
@@ -393,7 +432,6 @@ module Braintree
|
|
393
432
|
ShipsFromPostalCodeInvalidCharacters = "915167"
|
394
433
|
ShipsFromPostalCodeIsInvalid = "915166"
|
395
434
|
ShipsFromPostalCodeIsTooLong = "915165"
|
396
|
-
SubMerchantAccountRequiresServiceFeeAmount = "91553"
|
397
435
|
SubscriptionDoesNotBelongToCustomer = "91529"
|
398
436
|
SubscriptionIdIsInvalid = "91528"
|
399
437
|
SubscriptionStatusMustBePastDue = "91531"
|
@@ -427,6 +465,7 @@ module Braintree
|
|
427
465
|
UsBankAccountNonceMustBePlaidVerified = "915171"
|
428
466
|
UsBankAccountNotVerified = "915172"
|
429
467
|
|
468
|
+
|
430
469
|
module Options
|
431
470
|
SubmitForSettlementIsRequiredForCloning = "91544"
|
432
471
|
SubmitForSettlementIsRequiredForPayPalUnilateral = "91582"
|
@@ -598,110 +637,14 @@ module Braintree
|
|
598
637
|
end
|
599
638
|
|
600
639
|
module MerchantAccount
|
601
|
-
CannotBeUpdated = "82674"
|
602
|
-
Declined = "82626"
|
603
|
-
DeclinedFailedKYC = "82623"
|
604
|
-
DeclinedMasterCardMatch = "82622"
|
605
|
-
DeclinedOFAC = "82621"
|
606
|
-
DeclinedSsnInvalid = "82624"
|
607
|
-
DeclinedSsnMatchesDeceased = "82625"
|
608
|
-
IdCannotBeUpdated = "82675"
|
609
|
-
IdFormatIsInvalid = "82603"
|
610
|
-
IdIsInUse = "82604"
|
611
|
-
IdIsNotAllowed = "82605"
|
612
|
-
IdIsTooLong = "82602"
|
613
|
-
MasterMerchantAccountIdCannotBeUpdated = "82676"
|
614
|
-
MasterMerchantAccountIdIsInvalid = "82607"
|
615
|
-
MasterMerchantAccountIdIsRequired = "82606"
|
616
|
-
MasterMerchantAccountMustBeActive = "82608"
|
617
|
-
TosAcceptedIsRequired = "82610"
|
618
640
|
|
619
641
|
module ApplicantDetails
|
620
|
-
AccountNumberIsInvalid = "82670"
|
621
|
-
AccountNumberIsRequired = "82614"
|
622
|
-
CompanyNameIsInvalid = "82631"
|
623
|
-
CompanyNameIsRequiredWithTaxId = "82633"
|
624
|
-
DateOfBirthIsInvalid = "82663"
|
625
|
-
DateOfBirthIsRequired = "82612"
|
626
642
|
Declined = "82626" # Keep for backwards compatibility
|
627
643
|
DeclinedFailedKYC = "82623" # Keep for backwards compatibility
|
628
644
|
DeclinedMasterCardMatch = "82622" # Keep for backwards compatibility
|
629
645
|
DeclinedOFAC = "82621" # Keep for backwards compatibility
|
630
646
|
DeclinedSsnInvalid = "82624" # Keep for backwards compatibility
|
631
647
|
DeclinedSsnMatchesDeceased = "82625" # Keep for backwards compatibility
|
632
|
-
EmailAddressIsInvalid = "82616"
|
633
|
-
EmailAddressIsRequired = "82665"
|
634
|
-
FirstNameIsInvalid = "82627"
|
635
|
-
FirstNameIsRequired = "82609"
|
636
|
-
LastNameIsInvalid = "82628"
|
637
|
-
LastNameIsRequired = "82611"
|
638
|
-
PhoneIsInvalid = "82636"
|
639
|
-
RoutingNumberIsInvalid = "82635"
|
640
|
-
RoutingNumberIsRequired = "82613"
|
641
|
-
SsnIsInvalid = "82615"
|
642
|
-
TaxIdIsInvalid = "82632"
|
643
|
-
TaxIdIsRequiredWithCompanyName = "82634"
|
644
|
-
TaxIdMustBeBlank = "82673"
|
645
|
-
|
646
|
-
module Address
|
647
|
-
LocalityIsRequired = "82618"
|
648
|
-
PostalCodeIsInvalid = "82630"
|
649
|
-
PostalCodeIsRequired = "82619"
|
650
|
-
RegionIsInvalid = "82664"
|
651
|
-
RegionIsRequired = "82620"
|
652
|
-
StreetAddressIsInvalid = "82629"
|
653
|
-
StreetAddressIsRequired = "82617"
|
654
|
-
end
|
655
|
-
end
|
656
|
-
|
657
|
-
module Individual
|
658
|
-
DateOfBirthIsInvalid = "82666"
|
659
|
-
DateOfBirthIsRequired = "82639"
|
660
|
-
EmailIsInvalid = "82643"
|
661
|
-
EmailIsRequired = "82667"
|
662
|
-
FirstNameIsInvalid = "82644"
|
663
|
-
FirstNameIsRequired = "82637"
|
664
|
-
LastNameIsInvalid = "82645"
|
665
|
-
LastNameIsRequired = "82638"
|
666
|
-
PhoneIsInvalid = "82656"
|
667
|
-
SsnIsInvalid = "82642"
|
668
|
-
|
669
|
-
module Address
|
670
|
-
LocalityIsRequired = "82658"
|
671
|
-
PostalCodeIsInvalid = "82662"
|
672
|
-
PostalCodeIsRequired = "82659"
|
673
|
-
RegionIsInvalid = "82668"
|
674
|
-
RegionIsRequired = "82660"
|
675
|
-
StreetAddressIsInvalid = "82661"
|
676
|
-
StreetAddressIsRequired = "82657"
|
677
|
-
end
|
678
|
-
end
|
679
|
-
|
680
|
-
module Business
|
681
|
-
DbaNameIsInvalid = "82646"
|
682
|
-
LegalNameIsInvalid = "82677"
|
683
|
-
LegalNameIsRequiredWithTaxId = "82669"
|
684
|
-
TaxIdIsInvalid = "82647"
|
685
|
-
TaxIdIsRequiredWithLegalName = "82648"
|
686
|
-
TaxIdMustBeBlank = "82672"
|
687
|
-
module Address
|
688
|
-
PostalCodeIsInvalid = "82686"
|
689
|
-
RegionIsInvalid = "82684"
|
690
|
-
StreetAddressIsInvalid = "82685"
|
691
|
-
end
|
692
|
-
end
|
693
|
-
|
694
|
-
module Funding
|
695
|
-
AccountNumberIsInvalid = "82671"
|
696
|
-
AccountNumberIsRequired = "82641"
|
697
|
-
DestinationIsInvalid = "82679"
|
698
|
-
DestinationIsRequired = "82678"
|
699
|
-
EmailIsInvalid = "82681"
|
700
|
-
EmailIsRequired = "82680"
|
701
|
-
MobilePhoneIsInvalid = "82683"
|
702
|
-
MobilePhoneIsRequired = "82682"
|
703
|
-
RoutingNumberIsInvalid = "82649"
|
704
|
-
RoutingNumberIsRequired = "82640"
|
705
648
|
end
|
706
649
|
end
|
707
650
|
|
@@ -767,7 +710,6 @@ module Braintree
|
|
767
710
|
AmountFormatIsInvalid = "94202"
|
768
711
|
AmountIsTooLarge = "94207"
|
769
712
|
AmountNotSupportedByProcessor = "94203"
|
770
|
-
MerchantAccountCannotBeSubMerchantAccount = "94208"
|
771
713
|
MerchantAccountIdIsInvalid = "94204"
|
772
714
|
MerchantAccountIsForbidden = "94206"
|
773
715
|
MerchantAccountIsSuspended = "94205"
|
data/lib/braintree/gateway.rb
CHANGED
@@ -18,44 +18,20 @@ module Braintree
|
|
18
18
|
include Braintree::MerchantAccount::FundingDestination
|
19
19
|
end
|
20
20
|
|
21
|
-
attr_reader :business_details
|
22
21
|
attr_reader :currency_iso_code
|
23
22
|
attr_reader :default
|
24
|
-
attr_reader :funding_details
|
25
23
|
attr_reader :id
|
26
|
-
attr_reader :individual_details
|
27
|
-
attr_reader :master_merchant_account
|
28
24
|
attr_reader :status
|
29
25
|
|
30
26
|
alias_method :default?, :default
|
31
27
|
|
32
|
-
def self.create(*args)
|
33
|
-
Configuration.gateway.merchant_account.create(*args)
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.create!(*args)
|
37
|
-
Configuration.gateway.merchant_account.create!(*args)
|
38
|
-
end
|
39
|
-
|
40
28
|
def self.find(*args)
|
41
29
|
Configuration.gateway.merchant_account.find(*args)
|
42
30
|
end
|
43
31
|
|
44
|
-
def self.update(*args)
|
45
|
-
Configuration.gateway.merchant_account.update(*args)
|
46
|
-
end
|
47
|
-
|
48
|
-
def self.update!(*args)
|
49
|
-
Configuration.gateway.merchant_account.update!(*args)
|
50
|
-
end
|
51
|
-
|
52
32
|
def initialize(gateway, attributes)
|
53
33
|
@gateway = gateway
|
54
34
|
set_instance_variables_from_hash(attributes)
|
55
|
-
@individual_details = IndividualDetails.new(@individual)
|
56
|
-
@business_details = BusinessDetails.new(@business)
|
57
|
-
@funding_details = FundingDetails.new(@funding)
|
58
|
-
@master_merchant_account = MerchantAccount._new(@gateway, attributes.delete(:master_merchant_account)) if attributes[:master_merchant_account]
|
59
35
|
end
|
60
36
|
|
61
37
|
class << self
|
@@ -66,7 +42,7 @@ module Braintree
|
|
66
42
|
end
|
67
43
|
|
68
44
|
def inspect
|
69
|
-
order = [:id, :status
|
45
|
+
order = [:id, :status]
|
70
46
|
nice_attributes = order.map do |attr|
|
71
47
|
"#{attr}: #{send(attr).inspect}"
|
72
48
|
end
|
@@ -20,16 +20,6 @@ module Braintree
|
|
20
20
|
PaginatedResult.new(body[:total_items], body[:page_size], merchant_accounts)
|
21
21
|
end
|
22
22
|
|
23
|
-
def create(attributes)
|
24
|
-
signature = MerchantAccountGateway._detect_signature(attributes)
|
25
|
-
Util.verify_keys(signature, attributes)
|
26
|
-
_do_create "/merchant_accounts/create_via_api", :merchant_account => attributes
|
27
|
-
end
|
28
|
-
|
29
|
-
def create!(*args)
|
30
|
-
return_object_or_raise(:merchant_account) { create(*args) }
|
31
|
-
end
|
32
|
-
|
33
23
|
def find(merchant_account_id)
|
34
24
|
raise ArgumentError if merchant_account_id.nil? || merchant_account_id.to_s.strip == ""
|
35
25
|
response = @config.http.get("#{@config.base_merchant_path}/merchant_accounts/#{merchant_account_id}")
|
@@ -38,37 +28,10 @@ module Braintree
|
|
38
28
|
raise NotFoundError, "Merchant account with id #{merchant_account_id} not found"
|
39
29
|
end
|
40
30
|
|
41
|
-
def update(merchant_account_id, attributes)
|
42
|
-
Util.verify_keys(MerchantAccountGateway._update_signature, attributes)
|
43
|
-
_do_update "/merchant_accounts/#{merchant_account_id}/update_via_api", :merchant_account => attributes
|
44
|
-
end
|
45
|
-
|
46
|
-
def update!(*args)
|
47
|
-
return_object_or_raise(:merchant_account) { update(*args) }
|
48
|
-
end
|
49
|
-
|
50
31
|
def create_for_currency(params)
|
51
32
|
_create_for_currency(params)
|
52
33
|
end
|
53
34
|
|
54
|
-
def _do_create(path, params=nil)
|
55
|
-
response = @config.http.post("#{@config.base_merchant_path}#{path}", params)
|
56
|
-
if response[:api_error_response]
|
57
|
-
ErrorResult.new(@gateway, response[:api_error_response])
|
58
|
-
else
|
59
|
-
SuccessfulResult.new(:merchant_account => MerchantAccount._new(@gateway, response[:merchant_account]))
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def _do_update(path, params=nil)
|
64
|
-
response = @config.http.put("#{@config.base_merchant_path}#{path}", params)
|
65
|
-
if response[:api_error_response]
|
66
|
-
ErrorResult.new(@gateway, response[:api_error_response])
|
67
|
-
else
|
68
|
-
SuccessfulResult.new(:merchant_account => MerchantAccount._new(@gateway, response[:merchant_account]))
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
35
|
def _create_for_currency(params)
|
73
36
|
response = @config.http.post("#{@config.base_merchant_path}/merchant_accounts/create_for_currency", :merchant_account => params)
|
74
37
|
|
@@ -82,49 +45,5 @@ module Braintree
|
|
82
45
|
raise UnexpectedError, "expected :merchant or :api_error_response"
|
83
46
|
end
|
84
47
|
end
|
85
|
-
|
86
|
-
# NEXT_MAJOR_VERSION this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
87
|
-
def self._detect_signature(attributes)
|
88
|
-
if attributes.has_key?(:applicant_details)
|
89
|
-
warn "[DEPRECATED] Passing :applicant_details to create is deprecated. Please use :individual, :business, and :funding."
|
90
|
-
MerchantAccountGateway._deprecated_create_signature
|
91
|
-
else
|
92
|
-
MerchantAccountGateway._create_signature
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# NEXT_MAJOR_VERSION this is part of Marketplace and shouldn't be removed unless we're removing all Marketplace code
|
97
|
-
def self._deprecated_create_signature
|
98
|
-
[
|
99
|
-
{:applicant_details => [
|
100
|
-
:first_name, :last_name, :email, :date_of_birth, :ssn, :routing_number,
|
101
|
-
:account_number, :tax_id, :company_name, :phone,
|
102
|
-
{:address => [:street_address, :postal_code, :locality, :region]}]
|
103
|
-
},
|
104
|
-
:tos_accepted, :master_merchant_account_id, :id
|
105
|
-
]
|
106
|
-
end
|
107
|
-
|
108
|
-
def self._signature
|
109
|
-
[
|
110
|
-
{:individual => [
|
111
|
-
:first_name, :last_name, :email, :date_of_birth, :ssn, :phone,
|
112
|
-
{:address => [:street_address, :locality, :region, :postal_code]}]
|
113
|
-
},
|
114
|
-
{:business => [
|
115
|
-
:dba_name, :legal_name, :tax_id,
|
116
|
-
{:address => [:street_address, :locality, :region, :postal_code]}]
|
117
|
-
},
|
118
|
-
{:funding => [:destination, :email, :mobile_phone, :routing_number, :account_number, :descriptor]}
|
119
|
-
]
|
120
|
-
end
|
121
|
-
|
122
|
-
def self._create_signature
|
123
|
-
_signature + [:tos_accepted, :master_merchant_account_id, :id]
|
124
|
-
end
|
125
|
-
|
126
|
-
def self._update_signature
|
127
|
-
_signature
|
128
|
-
end
|
129
48
|
end
|
130
49
|
end
|
@@ -22,6 +22,7 @@ module Braintree
|
|
22
22
|
attr_reader :last_4
|
23
23
|
attr_reader :payroll
|
24
24
|
attr_reader :prepaid
|
25
|
+
attr_reader :prepaid_reloadable
|
25
26
|
attr_reader :product_id
|
26
27
|
attr_reader :subscriptions
|
27
28
|
attr_reader :token
|
@@ -74,11 +75,11 @@ module Braintree
|
|
74
75
|
|
75
76
|
def self._attributes # :nodoc:
|
76
77
|
[
|
77
|
-
:bin, :card_type, :cardholder_name, :
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
81
|
-
:
|
78
|
+
:bin, :card_type, :cardholder_name, :commercial,
|
79
|
+
:container_id, :country_of_issuance, :created_at, :customer_id,
|
80
|
+
:customer_location, :debit, :durbin_regulated, :expiration_month,
|
81
|
+
:expiration_year, :healthcare, :image_url, :issuing_bank, :last_4, :payroll, :prepaid,
|
82
|
+
:prepaid_reloadable, :product_id, :token, :updated_at
|
82
83
|
]
|
83
84
|
end
|
84
85
|
|
@@ -24,6 +24,7 @@ module Braintree
|
|
24
24
|
attr_reader :last_4
|
25
25
|
attr_reader :payroll
|
26
26
|
attr_reader :prepaid
|
27
|
+
attr_reader :prepaid_reloadable
|
27
28
|
attr_reader :product_id
|
28
29
|
attr_reader :token
|
29
30
|
attr_reader :unique_number_identifier
|
@@ -73,11 +74,11 @@ module Braintree
|
|
73
74
|
|
74
75
|
def self._attributes # :nodoc:
|
75
76
|
[
|
76
|
-
:bin, :card_type, :cardholder_name, :
|
77
|
-
:customer_id, :customer_location, :
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
77
|
+
:bin, :card_type, :cardholder_name, :commercial, :container_id, :country_of_issuance,
|
78
|
+
:created_at, :cryptogram, :customer_id, :customer_location, :debit, :durbin_regulated,
|
79
|
+
:ecommerce_indicator, :expiration_month, :expiration_year, :healthcare, :image_url,
|
80
|
+
:issuing_bank, :last_4, :payroll, :prepaid, :prepaid_reloadable, :product_id, :token,
|
81
|
+
:updated_at
|
81
82
|
]
|
82
83
|
end
|
83
84
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Braintree
|
2
|
+
class PayPalPaymentResource
|
3
|
+
include BaseModule
|
4
|
+
|
5
|
+
def self.update(*args)
|
6
|
+
Configuration.gateway.paypal_payment_resource.update(*args)
|
7
|
+
end
|
8
|
+
|
9
|
+
class << self
|
10
|
+
protected :new
|
11
|
+
def _new(*args)
|
12
|
+
self.new(*args)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(gateway, attributes)
|
17
|
+
@gateway = gateway
|
18
|
+
set_instance_variables_from_hash(attributes)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Braintree
|
2
|
+
class PayPalPaymentResourceGateway
|
3
|
+
include BaseModule
|
4
|
+
|
5
|
+
def initialize(gateway)
|
6
|
+
@gateway = gateway
|
7
|
+
@config = gateway.config
|
8
|
+
@config.assert_has_access_token_or_keys
|
9
|
+
end
|
10
|
+
|
11
|
+
def update(attributes)
|
12
|
+
Util.verify_keys(PayPalPaymentResourceGateway._update_signature, attributes)
|
13
|
+
response = @config.http.put("#{@config.base_merchant_path}/paypal/payment_resource", :paypal_payment_resource => attributes)
|
14
|
+
if response[:payment_method_nonce]
|
15
|
+
SuccessfulResult.new(:payment_method_nonce => PaymentMethodNonce._new(@gateway, response[:payment_method_nonce]))
|
16
|
+
elsif response[:api_error_response]
|
17
|
+
ErrorResult.new(@gateway, response[:api_error_response])
|
18
|
+
else
|
19
|
+
raise UnexpectedError, "expected :paypal_payment_resource or :api_error_response"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self._update_signature
|
24
|
+
[
|
25
|
+
:amount,
|
26
|
+
{:amount_breakdown => [:discount, :handling, :insurance, :item_total, :shipping, :shipping_discount, :tax_total]},
|
27
|
+
:currency_iso_code, :custom_field, :description,
|
28
|
+
{:line_items => [:description, :image_url, :kind, :name, :product_code, :quantity, :total_amount, :unit_amount, :unit_tax_amount, :url]},
|
29
|
+
:order_id, :payee_email, :payment_method_nonce,
|
30
|
+
{:shipping => [:country_name, :country_code_alpha2, :country_code_alpha3, :country_code_numeric, :extended_address, :first_name, {:international_phone => [:country_code, :national_number]},
|
31
|
+
:last_name, :locality, :postal_code, :region, :street_address]},
|
32
|
+
{:shipping_options => [:amount, :id, :label, :selected, :type]}
|
33
|
+
]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -20,6 +20,7 @@ module Braintree
|
|
20
20
|
attr_reader :last_4
|
21
21
|
attr_reader :payroll
|
22
22
|
attr_reader :prepaid
|
23
|
+
attr_reader :prepaid_reloadable
|
23
24
|
attr_reader :product_id
|
24
25
|
attr_reader :token
|
25
26
|
attr_reader :unique_number_identifier
|
@@ -34,23 +35,24 @@ module Braintree
|
|
34
35
|
|
35
36
|
def inspect
|
36
37
|
attr_order = [
|
37
|
-
:token,
|
38
38
|
:bin,
|
39
|
-
:last_4,
|
40
39
|
:card_type,
|
41
|
-
:expiration_date,
|
42
40
|
:cardholder_name,
|
41
|
+
:commercial,
|
42
|
+
:country_of_issuance,
|
43
43
|
:customer_location,
|
44
|
-
:prepaid,
|
45
|
-
:healthcare,
|
46
|
-
:durbin_regulated,
|
47
44
|
:debit,
|
48
|
-
:
|
45
|
+
:durbin_regulated,
|
46
|
+
:expiration_date,
|
47
|
+
:healthcare,
|
48
|
+
:image_url,
|
49
|
+
:issuing_bank,
|
50
|
+
:last_4,
|
49
51
|
:payroll,
|
52
|
+
:prepaid,
|
53
|
+
:prepaid_reloadable,
|
50
54
|
:product_id,
|
51
|
-
:
|
52
|
-
:issuing_bank,
|
53
|
-
:image_url,
|
55
|
+
:token,
|
54
56
|
:unique_number_identifier,
|
55
57
|
]
|
56
58
|
|