braintree 4.15.0 → 4.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +4 -4
  2. data/lib/braintree/account_updater_daily_report.rb +3 -3
  3. data/lib/braintree/ach_mandate.rb +1 -1
  4. data/lib/braintree/add_on_gateway.rb +1 -1
  5. data/lib/braintree/address.rb +4 -4
  6. data/lib/braintree/address_gateway.rb +5 -5
  7. data/lib/braintree/advanced_search.rb +10 -10
  8. data/lib/braintree/apple_pay.rb +3 -3
  9. data/lib/braintree/apple_pay_card.rb +3 -3
  10. data/lib/braintree/apple_pay_options.rb +3 -3
  11. data/lib/braintree/authorization_adjustment.rb +3 -3
  12. data/lib/braintree/base_module.rb +1 -1
  13. data/lib/braintree/bin_data.rb +2 -2
  14. data/lib/braintree/client_token_gateway.rb +1 -1
  15. data/lib/braintree/configuration.rb +22 -22
  16. data/lib/braintree/connected_merchant_paypal_status_changed.rb +1 -1
  17. data/lib/braintree/connected_merchant_status_transitioned.rb +1 -1
  18. data/lib/braintree/credit_card.rb +9 -9
  19. data/lib/braintree/credit_card_gateway.rb +8 -8
  20. data/lib/braintree/credit_card_verification.rb +3 -3
  21. data/lib/braintree/credit_card_verification_gateway.rb +28 -11
  22. data/lib/braintree/credit_card_verification_search.rb +1 -1
  23. data/lib/braintree/customer.rb +5 -9
  24. data/lib/braintree/customer_gateway.rb +7 -7
  25. data/lib/braintree/customer_search.rb +1 -1
  26. data/lib/braintree/descriptor.rb +1 -1
  27. data/lib/braintree/digest.rb +1 -1
  28. data/lib/braintree/disbursement.rb +5 -5
  29. data/lib/braintree/discount_gateway.rb +1 -1
  30. data/lib/braintree/dispute/evidence.rb +1 -1
  31. data/lib/braintree/dispute/paypal_message.rb +1 -1
  32. data/lib/braintree/dispute/status_history.rb +1 -1
  33. data/lib/braintree/dispute/transaction.rb +1 -1
  34. data/lib/braintree/dispute/transaction_details.rb +1 -1
  35. data/lib/braintree/dispute.rb +3 -3
  36. data/lib/braintree/dispute_gateway.rb +1 -1
  37. data/lib/braintree/dispute_search.rb +1 -1
  38. data/lib/braintree/document_upload.rb +2 -2
  39. data/lib/braintree/document_upload_gateway.rb +3 -3
  40. data/lib/braintree/enriched_customer_data.rb +2 -2
  41. data/lib/braintree/error_result.rb +2 -3
  42. data/lib/braintree/errors.rb +3 -3
  43. data/lib/braintree/exceptions.rb +1 -2
  44. data/lib/braintree/exchange_rate.rb +2 -2
  45. data/lib/braintree/exchange_rate_quote.rb +3 -3
  46. data/lib/braintree/exchange_rate_quote_gateway.rb +1 -1
  47. data/lib/braintree/exchange_rate_quote_input.rb +3 -3
  48. data/lib/braintree/exchange_rate_quote_request.rb +3 -3
  49. data/lib/braintree/exchange_rate_quote_response.rb +3 -3
  50. data/lib/braintree/facilitated_details.rb +1 -1
  51. data/lib/braintree/facilitator_details.rb +1 -1
  52. data/lib/braintree/google_pay_card.rb +3 -3
  53. data/lib/braintree/granted_payment_instrument_update.rb +1 -1
  54. data/lib/braintree/graphql_client.rb +1 -1
  55. data/lib/braintree/http.rb +5 -5
  56. data/lib/braintree/local_payment_completed.rb +2 -2
  57. data/lib/braintree/local_payment_expired.rb +2 -2
  58. data/lib/braintree/local_payment_funded.rb +2 -2
  59. data/lib/braintree/local_payment_reversed.rb +2 -2
  60. data/lib/braintree/merchant.rb +3 -3
  61. data/lib/braintree/merchant_account.rb +2 -2
  62. data/lib/braintree/merchant_account_gateway.rb +9 -9
  63. data/lib/braintree/meta_checkout_card.rb +89 -0
  64. data/lib/braintree/meta_checkout_token.rb +88 -0
  65. data/lib/braintree/modification.rb +3 -3
  66. data/lib/braintree/oauth_credentials.rb +3 -3
  67. data/lib/braintree/paginated_collection.rb +2 -2
  68. data/lib/braintree/paginated_result.rb +1 -1
  69. data/lib/braintree/payment_instrument_type.rb +2 -0
  70. data/lib/braintree/payment_method_customer_data_updated_metadata.rb +2 -2
  71. data/lib/braintree/payment_method_gateway.rb +8 -7
  72. data/lib/braintree/payment_method_nonce.rb +4 -4
  73. data/lib/braintree/payment_method_nonce_details.rb +1 -1
  74. data/lib/braintree/payment_method_nonce_details_payer_info.rb +1 -1
  75. data/lib/braintree/payment_method_nonce_gateway.rb +1 -1
  76. data/lib/braintree/paypal_account.rb +1 -2
  77. data/lib/braintree/paypal_account_gateway.rb +5 -5
  78. data/lib/braintree/plan.rb +1 -1
  79. data/lib/braintree/plan_gateway.rb +2 -2
  80. data/lib/braintree/resource_collection.rb +2 -2
  81. data/lib/braintree/revoked_payment_method_metadata.rb +1 -1
  82. data/lib/braintree/risk_data.rb +1 -1
  83. data/lib/braintree/samsung_pay_card.rb +5 -5
  84. data/lib/braintree/sepa_direct_debit_account.rb +2 -2
  85. data/lib/braintree/sepa_direct_debit_account_nonce_details.rb +1 -1
  86. data/lib/braintree/settlement_batch_summary_gateway.rb +1 -1
  87. data/lib/braintree/sha256_digest.rb +1 -1
  88. data/lib/braintree/subscription/status_details.rb +1 -1
  89. data/lib/braintree/subscription.rb +2 -2
  90. data/lib/braintree/subscription_gateway.rb +6 -6
  91. data/lib/braintree/subscription_search.rb +1 -1
  92. data/lib/braintree/successful_result.rb +2 -2
  93. data/lib/braintree/test/credit_card.rb +7 -10
  94. data/lib/braintree/test/merchant_account.rb +1 -1
  95. data/lib/braintree/test/nonce.rb +3 -0
  96. data/lib/braintree/test/transaction_amounts.rb +2 -3
  97. data/lib/braintree/testing_gateway.rb +1 -1
  98. data/lib/braintree/three_d_secure_info.rb +1 -1
  99. data/lib/braintree/transaction/address_details.rb +2 -1
  100. data/lib/braintree/transaction/credit_card_details.rb +1 -1
  101. data/lib/braintree/transaction/customer_details.rb +1 -1
  102. data/lib/braintree/transaction/disbursement_details.rb +1 -1
  103. data/lib/braintree/transaction/meta_checkout_card_details.rb +52 -0
  104. data/lib/braintree/transaction/meta_checkout_token_details.rb +54 -0
  105. data/lib/braintree/transaction/samsung_pay_card_details.rb +1 -1
  106. data/lib/braintree/transaction/sepa_direct_debit_account_details.rb +1 -1
  107. data/lib/braintree/transaction/status_details.rb +1 -1
  108. data/lib/braintree/transaction/subscription_details.rb +1 -1
  109. data/lib/braintree/transaction/us_bank_account_details.rb +1 -1
  110. data/lib/braintree/transaction/visa_checkout_card_details.rb +1 -1
  111. data/lib/braintree/transaction.rb +22 -16
  112. data/lib/braintree/transaction_gateway.rb +9 -10
  113. data/lib/braintree/transaction_line_item.rb +2 -2
  114. data/lib/braintree/transaction_line_item_gateway.rb +1 -1
  115. data/lib/braintree/transaction_review.rb +1 -1
  116. data/lib/braintree/transaction_search.rb +1 -1
  117. data/lib/braintree/unknown_payment_method.rb +1 -1
  118. data/lib/braintree/us_bank_account.rb +2 -2
  119. data/lib/braintree/us_bank_account_verification.rb +23 -15
  120. data/lib/braintree/us_bank_account_verification_search.rb +1 -1
  121. data/lib/braintree/util.rb +3 -3
  122. data/lib/braintree/validation_error.rb +1 -1
  123. data/lib/braintree/validation_error_collection.rb +3 -3
  124. data/lib/braintree/venmo_account.rb +3 -3
  125. data/lib/braintree/venmo_profile_data.rb +6 -4
  126. data/lib/braintree/version.rb +1 -1
  127. data/lib/braintree/visa_checkout_card.rb +7 -7
  128. data/lib/braintree/webhook_notification.rb +2 -2
  129. data/lib/braintree/webhook_notification_gateway.rb +4 -4
  130. data/lib/braintree/webhook_testing.rb +1 -1
  131. data/lib/braintree/webhook_testing_gateway.rb +1 -1
  132. data/lib/braintree/xml/generator.rb +1 -1
  133. data/lib/braintree/xml/libxml.rb +1 -1
  134. data/lib/braintree/xml/parser.rb +3 -3
  135. data/lib/braintree/xml/rexml.rb +2 -2
  136. data/lib/braintree/xml.rb +1 -1
  137. data/lib/braintree.rb +4 -1
  138. data/spec/integration/braintree/client_api/spec_helper.rb +2 -2
  139. data/spec/integration/braintree/credit_card_verification_spec.rb +45 -0
  140. data/spec/integration/braintree/dispute_search_spec.rb +0 -1
  141. data/spec/integration/braintree/payment_method_nonce_spec.rb +20 -0
  142. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +72 -0
  143. data/spec/integration/braintree/transaction_search_spec.rb +27 -0
  144. data/spec/integration/braintree/transaction_spec.rb +192 -66
  145. data/spec/unit/braintree/base_module_spec.rb +1 -1
  146. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +13 -8
  147. data/spec/unit/braintree/enriched_customer_data_spec.rb +9 -0
  148. data/spec/unit/braintree/http_spec.rb +1 -1
  149. data/spec/unit/braintree/meta_checkout_card_details_spec.rb +60 -0
  150. data/spec/unit/braintree/meta_checkout_card_spec.rb +60 -0
  151. data/spec/unit/braintree/meta_checkout_token_details_spec.rb +63 -0
  152. data/spec/unit/braintree/meta_checkout_token_spec.rb +63 -0
  153. data/spec/unit/braintree/transaction_gateway_spec.rb +30 -1
  154. data/spec/unit/braintree/us_bank_account_verification_spec.rb +5 -0
  155. data/spec/unit/braintree/venmo_profile_data_spec.rb +11 -0
  156. metadata +10 -2
@@ -0,0 +1,63 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::Transaction::MetaCheckoutTokenDetails do
4
+ let(:attributes) do {
5
+ :bin => "abc1234",
6
+ :container_id => "a-container-id",
7
+ :card_type => "Visa",
8
+ :cardholder_name => "Meta Checkout Card CardHolder",
9
+ :commercial => "NO",
10
+ :country_of_issuance => "US",
11
+ :created_at => "2023-05-05T21:28:37Z",
12
+ :debit => "NO",
13
+ :durbin_regulated => "NO",
14
+ :expiration_month => "05",
15
+ :expiration_year => "2024",
16
+ :healthcare => "NO",
17
+ :last_4 => "1234",
18
+ :payroll => "NO",
19
+ :prepaid => "NO",
20
+ :token => "token1",
21
+ :unique_number_identifier => "abc1234",
22
+ :updated_at => "2023-05-05T21:28:37Z",
23
+ :cryptogram => "AlhlvxmN2ZKuAAESNFZ4GoABFA==",
24
+ :ecommerce_indicator => "07"
25
+ }
26
+ end
27
+
28
+ describe "unit tests" do
29
+ it "initializes with the correct attributes" do
30
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
31
+
32
+ card.bin.should == "abc1234"
33
+ card.container_id.should == "a-container-id"
34
+ card.card_type.should == "Visa"
35
+ card.cardholder_name.should == "Meta Checkout Card CardHolder"
36
+ card.commercial == "NO"
37
+ card.country_of_issuance == "US"
38
+ card.created_at == "2023-05-05T21:28:37Z"
39
+ card.updated_at == "2023-05-05T21:28:37Z"
40
+ card.debit == "NO"
41
+ card.payroll == "NO"
42
+ card.prepaid == "NO"
43
+ card.healthcare == "NO"
44
+ card.token == "token1"
45
+ card.unique_number_identifier == "abc1234"
46
+ card.expiration_month.should == "05"
47
+ card.expiration_year.should == "2024"
48
+ card.last_4.should == "1234"
49
+ card.cryptogram == "AlhlvxmN2ZKuAAESNFZ4GoABFA=="
50
+ card.ecommerce_indicator == "07"
51
+ end
52
+
53
+ it "sets expiration date correctly" do
54
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
55
+ card.expiration_date.should == "05/2024"
56
+ end
57
+
58
+ it "masks the card number correctly" do
59
+ card = Braintree::Transaction::MetaCheckoutTokenDetails.new(attributes)
60
+ card.masked_number.should == "abc1234******1234"
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,63 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/../spec_helper")
2
+
3
+ describe Braintree::MetaCheckoutToken do
4
+ let(:attributes) do {
5
+ :bin => "abc1234",
6
+ :container_id => "a-container-id",
7
+ :card_type => "Visa",
8
+ :cardholder_name => "Meta Checkout Card CardHolder",
9
+ :commercial => "NO",
10
+ :country_of_issuance => "US",
11
+ :created_at => "2023-05-05T21:28:37Z",
12
+ :debit => "NO",
13
+ :durbin_regulated => "NO",
14
+ :expiration_month => "05",
15
+ :expiration_year => "2024",
16
+ :healthcare => "NO",
17
+ :last_4 => "1234",
18
+ :payroll => "NO",
19
+ :prepaid => "NO",
20
+ :token => "token1",
21
+ :unique_number_identifier => "abc1234",
22
+ :updated_at => "2023-05-05T21:28:37Z",
23
+ :cryptogram => "AlhlvxmN2ZKuAAESNFZ4GoABFA==",
24
+ :ecommerce_indicator => "07"
25
+ }
26
+ end
27
+
28
+ describe "unit tests" do
29
+ it "initializes with the correct attributes" do
30
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
31
+
32
+ card.bin.should == "abc1234"
33
+ card.container_id.should == "a-container-id"
34
+ card.card_type.should == "Visa"
35
+ card.cardholder_name.should == "Meta Checkout Card CardHolder"
36
+ card.commercial == "NO"
37
+ card.country_of_issuance == "US"
38
+ card.created_at == "2023-05-05T21:28:37Z"
39
+ card.updated_at == "2023-05-05T21:28:37Z"
40
+ card.debit == "NO"
41
+ card.payroll == "NO"
42
+ card.prepaid == "NO"
43
+ card.healthcare == "NO"
44
+ card.token == "token1"
45
+ card.unique_number_identifier == "abc1234"
46
+ card.expiration_month.should == "05"
47
+ card.expiration_year.should == "2024"
48
+ card.last_4.should == "1234"
49
+ card.cryptogram == "AlhlvxmN2ZKuAAESNFZ4GoABFA=="
50
+ card.ecommerce_indicator == "07"
51
+ end
52
+
53
+ it "sets expiration date correctly" do
54
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
55
+ card.expiration_date.should == "05/2024"
56
+ end
57
+
58
+ it "masks the card number correctly" do
59
+ card = Braintree::MetaCheckoutToken._new(:gateway, attributes)
60
+ card.masked_number.should == "abc1234******1234"
61
+ end
62
+ end
63
+ end
@@ -94,7 +94,7 @@ describe Braintree::TransactionGateway do
94
94
  {:industry => [
95
95
  :industry_type,
96
96
  {:data => [
97
- :folio_number, :check_in_date, :check_out_date, :travel_package, :lodging_check_in_date, :lodging_check_out_date, :departure_date, :lodging_name, :room_rate, :room_tax,
97
+ :country_code, :date_of_birth, :folio_number, :check_in_date, :check_out_date, :travel_package, :lodging_check_in_date, :lodging_check_out_date, :departure_date, :lodging_name, :room_rate, :room_tax,
98
98
  :passenger_first_name, :passenger_last_name, :passenger_middle_initial, :passenger_title, :issued_date, :travel_agency_name, :travel_agency_code, :ticket_number,
99
99
  :issuing_carrier_code, :customer_code, :fare_amount, :fee_amount, :tax_amount, :restricted_ticket, :no_show, :advanced_deposit, :fire_safe, :property_phone, :ticket_issuer_address, :arrival_date,
100
100
  {:legs => [
@@ -111,5 +111,34 @@ describe Braintree::TransactionGateway do
111
111
  {:installments => [:count]},
112
112
  ])
113
113
  end
114
+
115
+ it "creates a transaction gateway submit for settlement signature" do
116
+ expect(Braintree::TransactionGateway._submit_for_settlement_signature).to match([
117
+ :order_id,
118
+ {:descriptor => [:name, :phone, :url]},
119
+ {:industry => [
120
+ :industry_type,
121
+ {:data => [
122
+ :country_code, :date_of_birth, :folio_number, :check_in_date, :check_out_date, :travel_package, :lodging_check_in_date, :lodging_check_out_date, :departure_date, :lodging_name, :room_rate, :room_tax,
123
+ :passenger_first_name, :passenger_last_name, :passenger_middle_initial, :passenger_title, :issued_date, :travel_agency_name, :travel_agency_code, :ticket_number,
124
+ :issuing_carrier_code, :customer_code, :fare_amount, :fee_amount, :tax_amount, :restricted_ticket, :no_show, :advanced_deposit, :fire_safe, :property_phone, :ticket_issuer_address, :arrival_date,
125
+ {:legs => [
126
+ :conjunction_ticket, :exchange_ticket, :coupon_number, :service_class, :carrier_code, :fare_basis_code, :flight_number, :departure_date, :departure_airport_code, :departure_time,
127
+ :arrival_airport_code, :arrival_time, :stopover_permitted, :fare_amount, :fee_amount, :tax_amount, :endorsement_or_restrictions,
128
+ ]},
129
+ {:additional_charges => [
130
+ :kind, :amount,
131
+ ]},
132
+ ]},
133
+ ]},
134
+ :purchase_order_number,
135
+ :tax_amount,
136
+ :tax_exempt,
137
+ :discount_amount,
138
+ :shipping_amount,
139
+ :ships_from_postal_code,
140
+ :line_items => [:commodity_code, :description, :discount_amount, :kind, :name, :product_code, :quantity, :tax_amount, :total_amount, :unit_amount, :unit_of_measure, :unit_tax_amount, :url, :tax_amount],
141
+ ])
142
+ end
114
143
  end
115
144
  end
@@ -8,12 +8,17 @@ describe Braintree::UsBankAccountVerification do
8
8
  :status => Braintree::UsBankAccountVerification::Status::Verified,
9
9
  :verification_method => Braintree::UsBankAccountVerification::VerificationMethod::IndependentCheck,
10
10
  :verification_determined_at => "2018-02-28T12:01:01Z",
11
+ :additional_processor_response => "some_invalid_processor_response",
11
12
  )
12
13
  end
13
14
 
14
15
  it "has a status" do
15
16
  expect(verification.status).to eq(Braintree::UsBankAccountVerification::Status::Verified)
16
17
  end
18
+
19
+ it "has additional processor response" do
20
+ expect(verification.additional_processor_response).to eq("some_invalid_processor_response")
21
+ end
17
22
  end
18
23
 
19
24
  describe "self.confirm_micro_transfer_amounts" do
@@ -12,12 +12,21 @@ describe Braintree::VenmoProfileData do
12
12
  describe "self._new" do
13
13
  it "initializes the object with the appropriate attributes set" do
14
14
 
15
+ address = {
16
+ street_address: "a-street-address",
17
+ extended_address: "an-extended-address",
18
+ locality: "a-locality",
19
+ region: "a-region",
20
+ postal_code: "a-postal-code"
21
+ }
15
22
  params = {
16
23
  username: "a-username",
17
24
  first_name: "a-first-name",
18
25
  last_name: "a-last-name",
19
26
  phone_number: "12312312343",
20
27
  email: "a-email",
28
+ billing_address: address,
29
+ shipping_address: address
21
30
  }
22
31
 
23
32
  payment_method_customer_data_updated = Braintree::VenmoProfileData._new(params)
@@ -27,6 +36,8 @@ describe Braintree::VenmoProfileData do
27
36
  expect(payment_method_customer_data_updated.last_name).to eq("a-last-name")
28
37
  expect(payment_method_customer_data_updated.phone_number).to eq("12312312343")
29
38
  expect(payment_method_customer_data_updated.email).to eq("a-email")
39
+ expect(payment_method_customer_data_updated.billing_address).to eq(address)
40
+ expect(payment_method_customer_data_updated.shipping_address).to eq(address)
30
41
  end
31
42
  end
32
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: braintree
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.15.0
4
+ version: 4.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Braintree
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-18 00:00:00.000000000 Z
11
+ date: 2023-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder
@@ -122,6 +122,8 @@ files:
122
122
  - lib/braintree/merchant_account/individual_details.rb
123
123
  - lib/braintree/merchant_account_gateway.rb
124
124
  - lib/braintree/merchant_gateway.rb
125
+ - lib/braintree/meta_checkout_card.rb
126
+ - lib/braintree/meta_checkout_token.rb
125
127
  - lib/braintree/modification.rb
126
128
  - lib/braintree/oauth_credentials.rb
127
129
  - lib/braintree/oauth_gateway.rb
@@ -177,6 +179,8 @@ files:
177
179
  - lib/braintree/transaction/installment.rb
178
180
  - lib/braintree/transaction/installment/adjustment.rb
179
181
  - lib/braintree/transaction/local_payment_details.rb
182
+ - lib/braintree/transaction/meta_checkout_card_details.rb
183
+ - lib/braintree/transaction/meta_checkout_token_details.rb
180
184
  - lib/braintree/transaction/payment_receipt.rb
181
185
  - lib/braintree/transaction/payment_receipt/card_present_data.rb
182
186
  - lib/braintree/transaction/payment_receipt/merchant_address.rb
@@ -302,6 +306,10 @@ files:
302
306
  - spec/unit/braintree/local_payment_expired_spec.rb
303
307
  - spec/unit/braintree/local_payment_funded_spec.rb
304
308
  - spec/unit/braintree/merchant_account_spec.rb
309
+ - spec/unit/braintree/meta_checkout_card_details_spec.rb
310
+ - spec/unit/braintree/meta_checkout_card_spec.rb
311
+ - spec/unit/braintree/meta_checkout_token_details_spec.rb
312
+ - spec/unit/braintree/meta_checkout_token_spec.rb
305
313
  - spec/unit/braintree/modification_spec.rb
306
314
  - spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb
307
315
  - spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb