spree_braintree_vzero 3.5.1

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.
Files changed (169) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +15 -0
  3. data/.gitignore +19 -0
  4. data/.rspec +1 -0
  5. data/.travis.yml +63 -0
  6. data/Appraisals +45 -0
  7. data/CONTRIBUTING.md +28 -0
  8. data/Gemfile +14 -0
  9. data/LICENSE +26 -0
  10. data/README.md +83 -0
  11. data/Rakefile +21 -0
  12. data/app/assets/images/credit_cards/icons/jcb.png +0 -0
  13. data/app/assets/javascripts/spree/backend/payments.js +19 -0
  14. data/app/assets/javascripts/spree/backend/spree_braintree_vzero.js +81 -0
  15. data/app/assets/javascripts/spree/frontend/spree_braintree_vzero.js +68 -0
  16. data/app/assets/stylesheets/spree/backend/spree_braintree_vzero.css +5 -0
  17. data/app/controllers/spree/admin/payments_controller_decorator.rb +43 -0
  18. data/app/controllers/spree/api/v1/braintree_client_token_controller.rb +31 -0
  19. data/app/controllers/spree/checkout_controller_decorator.rb +38 -0
  20. data/app/controllers/spree/orders_controller_decorator.rb +62 -0
  21. data/app/controllers/spree/user_sessions_controller_decorator.rb +15 -0
  22. data/app/helpers/spree/admin/decorated_navigation_helper.rb +10 -0
  23. data/app/helpers/spree/admin/payment_methods_helper.rb +101 -0
  24. data/app/helpers/spree/braintree_helper.rb +27 -0
  25. data/app/models/braintree/successful_result_decorator.rb +21 -0
  26. data/app/models/spree/address_decorator.rb +18 -0
  27. data/app/models/spree/braintree_checkout.rb +105 -0
  28. data/app/models/spree/gateway/braintree_vzero_base.rb +168 -0
  29. data/app/models/spree/gateway/braintree_vzero_base/address.rb +33 -0
  30. data/app/models/spree/gateway/braintree_vzero_base/braintree_user.rb +25 -0
  31. data/app/models/spree/gateway/braintree_vzero_base/purchase_data.rb +48 -0
  32. data/app/models/spree/gateway/braintree_vzero_base/transaction.rb +39 -0
  33. data/app/models/spree/gateway/braintree_vzero_base/utils.rb +108 -0
  34. data/app/models/spree/gateway/braintree_vzero_drop_in_ui.rb +24 -0
  35. data/app/models/spree/gateway/braintree_vzero_hosted_fields.rb +28 -0
  36. data/app/models/spree/gateway/braintree_vzero_paypal_express.rb +36 -0
  37. data/app/models/spree/order_decorator.rb +153 -0
  38. data/app/models/spree/payment_decorator.rb +10 -0
  39. data/app/models/spree/payment_processing_decorator.rb +61 -0
  40. data/app/models/spree/preferences/preferable_decorator.rb +54 -0
  41. data/app/overrides/spree/admin/orders/customer_details/_form.rb +8 -0
  42. data/app/overrides/spree/admin/payment_methods/_form.rb +10 -0
  43. data/app/overrides/spree/admin/shared/_order_summary.rb +23 -0
  44. data/app/overrides/spree/admin/shared/_refunds.rb +13 -0
  45. data/app/overrides/spree/checkout/_new_user.rb +6 -0
  46. data/app/overrides/spree/checkout/_payment.rb +20 -0
  47. data/app/overrides/spree/checkout/registration.rb +6 -0
  48. data/app/overrides/spree/orders/edit.rb +6 -0
  49. data/app/overrides/spree/shared/_order_details.rb +13 -0
  50. data/app/overrides/spree/shared/_payment.rb +28 -0
  51. data/app/views/spree/admin/payment_methods/_braintree_vzero_form.html.erb +83 -0
  52. data/app/views/spree/admin/payments/source_forms/_braintree_vzero_dropin_ui.html.erb +1 -0
  53. data/app/views/spree/admin/payments/source_forms/_braintree_vzero_hosted_fields.html.erb +1 -0
  54. data/app/views/spree/admin/payments/source_forms/_braintree_vzero_paypal_express.html.erb +1 -0
  55. data/app/views/spree/admin/payments/source_forms/braintree_vzero/_payments.html.erb +87 -0
  56. data/app/views/spree/admin/payments/source_views/_braintree_vzero_dropin_ui.html.erb +1 -0
  57. data/app/views/spree/admin/payments/source_views/_braintree_vzero_hosted_fields.html.erb +1 -0
  58. data/app/views/spree/admin/payments/source_views/_braintree_vzero_paypal_express.html.erb +1 -0
  59. data/app/views/spree/admin/payments/source_views/braintree_vzero/_payment.html.erb +17 -0
  60. data/app/views/spree/braintree_vzero/_paypal_checkout.html.erb +87 -0
  61. data/app/views/spree/checkout/payment/_braintree_vzero_dropin_ui.html.erb +4 -0
  62. data/app/views/spree/checkout/payment/_braintree_vzero_hosted_fields.html.erb +4 -0
  63. data/app/views/spree/checkout/payment/_braintree_vzero_paypal_express.html.erb +4 -0
  64. data/app/views/spree/checkout/payment/braintree_vzero/_buttons.html.erb +11 -0
  65. data/app/views/spree/checkout/payment/braintree_vzero/_dropin_on_error_callback.js.erb +3 -0
  66. data/app/views/spree/checkout/payment/braintree_vzero/_dropin_on_ready_callback.js.erb +1 -0
  67. data/app/views/spree/checkout/payment/braintree_vzero/_hosted_fields_on_field_event_callback.js.erb +12 -0
  68. data/app/views/spree/checkout/payment/braintree_vzero/_hosted_fields_styles.js.erb +29 -0
  69. data/app/views/spree/checkout/payment/braintree_vzero/_payment.html.erb +84 -0
  70. data/app/views/spree/checkout/payment/braintree_vzero/_three_d_secure.html.erb +218 -0
  71. data/app/views/spree/shared/braintree_vzero/_dropin.js.erb +70 -0
  72. data/app/views/spree/shared/braintree_vzero/_hosted.js.erb +66 -0
  73. data/app/views/spree/shared/braintree_vzero/_paypal.js.erb +39 -0
  74. data/bin/rails +7 -0
  75. data/config/initializers/extend_spree_permitted_checkout_attributes.rb +5 -0
  76. data/config/initializers/prepend_helpers.rb +1 -0
  77. data/config/locales/en.yml +79 -0
  78. data/config/routes.rb +7 -0
  79. data/db/migrate/20150904143013_create_spree_braintree_checkouts.rb +9 -0
  80. data/db/migrate/20151002094655_add_braintree_id_to_spree_addresses.rb +5 -0
  81. data/db/migrate/20151018123907_add_braintree_token_and_nonce_to_spree_payments.rb +6 -0
  82. data/db/migrate/20151027135109_add_paypal_email_to_spree_braintree_checkout.rb +5 -0
  83. data/db/migrate/20151028095515_add_advanced_fraud_data_to_spree_braintree_checkout.rb +5 -0
  84. data/db/migrate/20151202095956_add_risk_id_and_risk_decision_to_spree_braintree_checkouts.rb +6 -0
  85. data/db/migrate/20151211100203_add_braintree_last_digits_and_braintree_card_type_to_spree_braintree_checkouts.rb +6 -0
  86. data/db/migrate/20160112153422_add_admin_payment_to_spree_braintree_checkout.rb +5 -0
  87. data/gemfiles/spree_3_5.gemfile +12 -0
  88. data/gemfiles/spree_3_5_spree_auth_devise.gemfile +13 -0
  89. data/gemfiles/spree_3_7.gemfile +12 -0
  90. data/gemfiles/spree_3_7_spree_auth_devise.gemfile +13 -0
  91. data/gemfiles/spree_4_0.gemfile +11 -0
  92. data/gemfiles/spree_4_0_spree_auth_devise.gemfile +12 -0
  93. data/gemfiles/spree_master.gemfile +11 -0
  94. data/gemfiles/spree_master_spree_auth_devise.gemfile +12 -0
  95. data/lib/generators/spree_braintree_vzero/install/install_generator.rb +34 -0
  96. data/lib/spree_braintree_vzero.rb +6 -0
  97. data/lib/spree_braintree_vzero/engine.rb +28 -0
  98. data/lib/spree_braintree_vzero/factories.rb +10 -0
  99. data/lib/spree_braintree_vzero/railtie.rb +8 -0
  100. data/lib/spree_braintree_vzero/version.rb +17 -0
  101. data/lib/tasks/spree_braintree_vzero.rake +6 -0
  102. data/spec/controllers/spree/api/v1/braintree_client_token_controller_spec.rb +49 -0
  103. data/spec/controllers/spree/checkout_controller_spec.rb +85 -0
  104. data/spec/controllers/spree/orders_controller_spec.rb +97 -0
  105. data/spec/factories/braintree_checkout_factory.rb +7 -0
  106. data/spec/factories/braintree_gateway_factory.rb +35 -0
  107. data/spec/factories/payment_factory_decorator.rb +28 -0
  108. data/spec/features/spree/admin/log_entries_spec.rb +63 -0
  109. data/spec/models/gateway/braintree_vzero_base/address_spec.rb +28 -0
  110. data/spec/models/gateway/braintree_vzero_base/purchase_data_spec.rb +57 -0
  111. data/spec/models/gateway/braintree_vzero_base_spec.rb +346 -0
  112. data/spec/models/gateway/braintree_vzero_dropin_ui_spec.rb +35 -0
  113. data/spec/models/gateway/braintree_vzero_hosted_fields_spec.rb +35 -0
  114. data/spec/models/spree/order_spec.rb +186 -0
  115. data/spec/spec_helper.rb +100 -0
  116. data/spec/support/vcr.rb +10 -0
  117. data/spec/vcr/Log_entries/with_a_failed_log_entry/shows_a_failed_attempt.yml +91 -0
  118. data/spec/vcr/Log_entries/with_a_successful_log_entry/shows_a_successful_attempt.yml +113 -0
  119. data/spec/vcr/Spree_Api_V1_BraintreeClientTokenController/POST_create/guest_checkout/returns_proper_json_data_when_gateway_not_specified.yml +90 -0
  120. data/spec/vcr/Spree_Api_V1_BraintreeClientTokenController/POST_create/guest_checkout/returns_proper_json_data_when_gateway_specified.yml +90 -0
  121. data/spec/vcr/Spree_Api_V1_BraintreeClientTokenController/POST_create/user_checkout/returns_proper_json_data_when_gateway_not_specified.yml +191 -0
  122. data/spec/vcr/Spree_Api_V1_BraintreeClientTokenController/POST_create/user_checkout/returns_proper_json_data_when_gateway_specified.yml +191 -0
  123. data/spec/vcr/Spree_CheckoutController/_update/braintree_payment/advanced_fraud_data_in_source_should_be_updated.yml +71 -0
  124. data/spec/vcr/Spree_CheckoutController/_update/braintree_payment/when_token_credit_card_data_in_source_should_be_updated_from_Braintree_Vault.yml +139 -0
  125. data/spec/vcr/Spree_CheckoutController/_update/braintree_paypal_express_payment/amount_in_payment_should_be_updated.yml +280 -0
  126. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_capture/captures_authorized_amount/updates_Payment_state.yml +206 -0
  127. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_credit/with_refundable_state/should_be_a_success.yml +211 -0
  128. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_credit/with_unrefundable_state/should_not_be_a_success.yml +177 -0
  129. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/data_from_admin_panel/should_include_only_essential_data.yml +78 -0
  130. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/does_not_store_Transaction_in_Vault_by_default.yml +111 -0
  131. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/returns_false_with_invalid_nonce.yml +88 -0
  132. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/returns_false_with_invalid_token.yml +88 -0
  133. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/returns_success_with_valid_token.yml +113 -0
  134. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/returns_suceess_with_valid_nonce.yml +111 -0
  135. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/using_Vault/saves_Braintree_Address_id_to_Spree_Address_when_address_is_being_saved.yml +130 -0
  136. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/using_Vault/saves_unique_Braintree_Addresses_ids.yml +143 -0
  137. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/using_Vault/sends_empty_address_id_when_address_is_already_in_vault.yml +553 -0
  138. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/using_Vault/stores_Transaction.yml +181 -0
  139. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/with_3DSecure_option_turned_on/performs_3DSecure_check.yml +112 -0
  140. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/with_3DSecure_option_turned_on/returns_error.yml +112 -0
  141. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/with_advanced_fraud_tool_enabled/returns_fraud_data.yml +111 -0
  142. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_purchase/with_advanced_fraud_tool_enabled/returns_success.yml +111 -0
  143. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_settle/settles_authorized_amount/does_not_update_Order_payment_state.yml +204 -0
  144. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_settle/settles_authorized_amount/prepares_Checkout_for_status_updating.yml +204 -0
  145. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_settle/settles_authorized_amount/submits_Transaction_for_settlement.yml +377 -0
  146. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_settle/settles_authorized_amount/updates_Payment_state.yml +203 -0
  147. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_update_states/does_not_update_completed_Checkout_on_subsequent_runs.yml +202 -0
  148. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_update_states/updates_Order_payment_state_when_Checkout_is_updated.yml +202 -0
  149. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_update_states/updates_Payment_state_when_Checkout_is_updated.yml +202 -0
  150. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_update_states/updates_payment_State.yml +202 -0
  151. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_void/with_unvoidable_state/should_not_change_payment_source_state.yml +178 -0
  152. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/_void/with_voidable_state/should_change_payment_source_state_to_voided.yml +199 -0
  153. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/generates_token_for_User_registered_in_Braintree.yml +356 -0
  154. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/generates_token_for_new_User.yml +189 -0
  155. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/valid_credentials/generates_token_without_User.yml +89 -0
  156. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase/with_invalid_credentials/raises_Braintree_error.yml +62 -0
  157. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase_Address/_create/creates_Braintree_Address.yml +84 -0
  158. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase_Address/_create/deletes_Braintree_Address.yml +141 -0
  159. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase_Address/_create/finds_Braintree_Address.yml +148 -0
  160. data/spec/vcr/Spree_Gateway_BraintreeVzeroBase_Address/_create/updates_Braintree_Address.yml +154 -0
  161. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/with_auto_capture/should_complete_payment.yml +116 -0
  162. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/with_auto_capture/should_update_payment_s_response_code.yml +111 -0
  163. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/with_auto_capture/should_update_payment_s_source_state_and_transaction_id.yml +111 -0
  164. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/without_auto_capture/should_pend_payment.yml +111 -0
  165. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/without_auto_capture/should_update_payment_s_response_code.yml +111 -0
  166. data/spec/vcr/Spree_Order/complete_with_braintree_vzero_standard_payment/without_auto_capture/should_update_payment_s_source_state_and_transaction_id.yml +110 -0
  167. data/spree_braintree_vzero.gemspec +52 -0
  168. data/vendor/assets/javascripts/maskedinput/jquery.maskedinput.min.js +7 -0
  169. metadata +643 -0
@@ -0,0 +1,78 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.braintreegateway.com/merchants//transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <customer>
12
+ </customer>
13
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
14
+ <amount>100.0</amount>
15
+ <order-id>R151383932</order-id>
16
+ <descriptor>
17
+ <name></name>
18
+ </descriptor>
19
+ <options>
20
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
21
+ <add-billing-address-to-payment-method type="boolean">false</add-billing-address-to-payment-method>
22
+ <three-d-secure>
23
+ <required type="boolean">false</required>
24
+ </three-d-secure>
25
+ <store-in-vault type="boolean">false</store-in-vault>
26
+ </options>
27
+ <type>sale</type>
28
+ </transaction>
29
+ headers:
30
+ Accept-Encoding:
31
+ - gzip
32
+ Accept:
33
+ - application/xml
34
+ User-Agent:
35
+ - Braintree Ruby Gem 2.56.0
36
+ X-Apiversion:
37
+ - '4'
38
+ Content-Type:
39
+ - application/xml
40
+ response:
41
+ status:
42
+ code: 404
43
+ message: Not Found
44
+ headers:
45
+ Date:
46
+ - Wed, 13 Jan 2016 09:25:11 GMT
47
+ Content-Type:
48
+ - application/xml; charset=utf-8
49
+ Transfer-Encoding:
50
+ - chunked
51
+ Connection:
52
+ - close
53
+ X-Frame-Options:
54
+ - SAMEORIGIN
55
+ - SAMEORIGIN
56
+ X-Xss-Protection:
57
+ - 1; mode=block
58
+ X-Content-Type-Options:
59
+ - nosniff
60
+ Vary:
61
+ - Accept-Encoding
62
+ Content-Encoding:
63
+ - gzip
64
+ Cache-Control:
65
+ - no-cache
66
+ X-Request-Id:
67
+ - 8c4678e6-b559-46fd-b44a-1015bc5cdb2f
68
+ X-Runtime:
69
+ - '0.008884'
70
+ Strict-Transport-Security:
71
+ - max-age=31536000; includeSubDomains
72
+ body:
73
+ encoding: ASCII-8BIT
74
+ string: !binary |-
75
+ H4sIAPcXllYAAwAAAP//AwAAAAAAAAAAAA==
76
+ http_version:
77
+ recorded_at: Wed, 13 Jan 2016 09:25:10 GMT
78
+ recorded_with: VCR 3.0.1
@@ -0,0 +1,111 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://yd57hn7c4r5bhp8g:1cc8b0097ef43165847630438f864834@api.sandbox.braintreegateway.com/merchants/yccdpmn3cvtjbgnr/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <customer>
12
+ </customer>
13
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
14
+ <amount>20.00</amount>
15
+ <order-id>R539131889</order-id>
16
+ <descriptor>
17
+ <name></name>
18
+ </descriptor>
19
+ <options>
20
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
21
+ <add-billing-address-to-payment-method type="boolean">false</add-billing-address-to-payment-method>
22
+ <three-d-secure>
23
+ <required type="boolean">false</required>
24
+ </three-d-secure>
25
+ <store-in-vault type="boolean">false</store-in-vault>
26
+ </options>
27
+ <type>sale</type>
28
+ </transaction>
29
+ headers:
30
+ Accept-Encoding:
31
+ - gzip
32
+ Accept:
33
+ - application/xml
34
+ User-Agent:
35
+ - Braintree Ruby Gem 2.49.0
36
+ X-Apiversion:
37
+ - '4'
38
+ Content-Type:
39
+ - application/xml
40
+ response:
41
+ status:
42
+ code: 201
43
+ message: Created
44
+ headers:
45
+ Date:
46
+ - Tue, 20 Oct 2015 10:58:44 GMT
47
+ Content-Type:
48
+ - application/xml; charset=utf-8
49
+ Transfer-Encoding:
50
+ - chunked
51
+ Connection:
52
+ - close
53
+ X-Authentication:
54
+ - basic_auth
55
+ X-User:
56
+ - 97syg9czj6hrdzyn
57
+ Vary:
58
+ - Accept-Encoding
59
+ Content-Encoding:
60
+ - gzip
61
+ X-Ua-Compatible:
62
+ - IE=Edge,chrome=1
63
+ Etag:
64
+ - '"c9937b50319607a9634a61b73ccc306c"'
65
+ Cache-Control:
66
+ - max-age=0, private, must-revalidate
67
+ X-Request-Id:
68
+ - 2abcdc94da1325b164109115dbef940d
69
+ X-Runtime:
70
+ - '0.780345'
71
+ X-Frame-Options:
72
+ - SAMEORIGIN
73
+ Strict-Transport-Security:
74
+ - max-age=31536000; includeSubDomains
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: !binary |-
78
+ H4sIAGQeJlYAA+RYS2/jNhC+768wfGdkO8nWCRQFW6BPYItFdlMUuQSUOLJY
79
+ S6RKUo69v75DiXpFVJIe+gB6s2Y+DjkPznx0eHss8sUBlOZS3CzXZ6vlAkQi
80
+ GRe7m+X9l+/JdnkbvQuNokLTxCAqerdYhJxF75N0c8XCAH9aiTbUVDrSVVxw
81
+ Y4A9plI9ajAmhwKECQMHsFhzKiHSNIcwqH9aWVIphTufCNeS4AEg+u7+Lgym
82
+ YgumhayEiTars9UqDNyXVRSgkowKQ2iSWCHB0+mSqr2WeWVPr3X5Vcow8AGt
83
+ AakYKPtxd3l+tT5fb7dXYdAJ64MqoOgfoWZhD3+zZPhpeAFLPM/6kqxXZLP6
84
+ sl5dX26vL84f0IVuQb2+KtlfW98vcIHSRuLx7UediYXg+c3SqAqWgROmXGlD
85
+ BC3Ao8zpvC6RRUnFyaOBgvLcI3+CWHPjs1VmUvjkKT0+l9o8916FMc9zLMB/
86
+ 2ENtFAAWBGMKtPaF4GhAMJuJWUguE5pz4zOvYIf154uTxKuRN8V9dbFefRMG
87
+ Q1F7bCxSdZr3qlHbFYTmZUY3b0Kdv4YSFSaFJ9OEDXKErqWVYGSaqF6jXbFT
88
+ pehppMR4DrqLzwjeX8MxHH03ebbCZ5xWJpOKf33d/MBsTE2SeTEZL8v/ZUm+
89
+ UCD/mVocZsf1R5JyyJl2tXDQBJSSimCMShwC4HWtxg1cH6OjjzhpXgS0JsZZ
90
+ ewb6qbHyIqZ243CY7j8VWugOx8MTPaHmd2iqHCeOniY2LJVMcDeMQ3s7aA2v
91
+ LV389rB9/wP2npdAYyvjo6xXdhjPaWdWGqzg6EOJmgMw7+oaUYeWMW5PgsGf
92
+ wia+HiRPbIJSTDyuwNqJQU0jUlkagLs0I34GZeiRNCTDq4IjFGU7zWMpc6Bi
93
+ GaU015bgdICWPaAXJKGKuRI3cg++OxhzEV2s1pvt1jZbMewjFxHyknUYuA93
94
+ VdAkqenUr1xTrJXuu20VJVdNKgspTBatN2EwEU6wJ6AKiclmNQLXUrevm9zE
95
+ NpqaIN5/7ud5L+1Pmcm8Dra/ffCC7oBUKo8yY0p9HQRUY4vWZ7GiXNhr4+r9
96
+ DPtmUNKT7dyPBWCtssdc7mRwQP/PSrG7BXHgSgoLuNFUsFgeka929l2vU1BS
97
+ 5Ha/SFt+ze9GkwHNTYYnhuhe7IV8EmEwkDUgBjE3vb75dKpKYeKwBndVbhnc
98
+ APVc0w0Cy0tx1vXQgcydl56UzAeIVuDCp3WFrRBHmdj3mJF03FplSqyWigTd
99
+ /PzB7jhVtKGSrEpqrtzv3ssaUCX4HxW4q4RiDD7HZjy5VfaOgigk0Ww/c3c6
100
+ veOI47vjnhwk41hq6jTiAN38rBGAhlxS7IVDro2Konwj/+7wnQX3lOkpxvB1
101
+ UyPmHihNhDTy3IKmHLm9bom8PdiAp2iJnQkiWiLII2/cC6b+/c0uv+V5928G
102
+ oJO4omiafE79xK+KdaJ4OUsMB/quKdesl5RIRCQjyL2IjaW3fY+QeCxlvFg8
103
+ 8rN97KQjONQ8rJZxXV9Prw4aK7LtzDMNdu5dhi1xeraxUWSM9kGOfs3c2E7f
104
+ DDt8YQuYWsWcH+x0TgHm5qrdVj6RJpsTLYYhrpRuSDsDg09T3TbdkcqfmwHj
105
+ 928/xkz+g3gjHI42ADhslP8Y9vWDlYo81WewShIPoceMzPhuPS8rA77ScFOS
106
+ cIG8s2peUJYZNB310XbUMJgDjZnbwNExwRuSt1nQ67ZquvearY4TKq73Nsu0
107
+ e5hF5+tPSETvfvz487cP7b9T9e1IuP2TqyWbtrSdpA7ryFJoMuQZBK+trWfA
108
+ kKRynIlRU4re/QkAAP//AwAlT42qSBMAAA==
109
+ http_version:
110
+ recorded_at: Tue, 20 Oct 2015 10:58:44 GMT
111
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,88 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://yd57hn7c4r5bhp8g:1cc8b0097ef43165847630438f864834@api.sandbox.braintreegateway.com/merchants/yccdpmn3cvtjbgnr/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <customer>
12
+ </customer>
13
+ <payment-method-nonce>fake-invalid-nonce</payment-method-nonce>
14
+ <amount>20.00</amount>
15
+ <order-id>R713957729</order-id>
16
+ <descriptor>
17
+ <name></name>
18
+ </descriptor>
19
+ <options>
20
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
21
+ <add-billing-address-to-payment-method type="boolean">false</add-billing-address-to-payment-method>
22
+ <three-d-secure>
23
+ <required type="boolean">false</required>
24
+ </three-d-secure>
25
+ <store-in-vault type="boolean">false</store-in-vault>
26
+ </options>
27
+ <type>sale</type>
28
+ </transaction>
29
+ headers:
30
+ Accept-Encoding:
31
+ - gzip
32
+ Accept:
33
+ - application/xml
34
+ User-Agent:
35
+ - Braintree Ruby Gem 2.49.0
36
+ X-Apiversion:
37
+ - '4'
38
+ Content-Type:
39
+ - application/xml
40
+ response:
41
+ status:
42
+ code: 422
43
+ message: Unprocessable Entity
44
+ headers:
45
+ Date:
46
+ - Tue, 20 Oct 2015 10:58:49 GMT
47
+ Content-Type:
48
+ - application/xml; charset=utf-8
49
+ Transfer-Encoding:
50
+ - chunked
51
+ Connection:
52
+ - close
53
+ X-Authentication:
54
+ - basic_auth
55
+ X-User:
56
+ - 97syg9czj6hrdzyn
57
+ Vary:
58
+ - Accept-Encoding
59
+ Content-Encoding:
60
+ - gzip
61
+ X-Ua-Compatible:
62
+ - IE=Edge,chrome=1
63
+ Cache-Control:
64
+ - no-cache
65
+ X-Request-Id:
66
+ - 3b7bc34f28f261befe0010035a8dd30c
67
+ X-Runtime:
68
+ - '1.360196'
69
+ X-Frame-Options:
70
+ - SAMEORIGIN
71
+ Strict-Transport-Security:
72
+ - max-age=31536000; includeSubDomains
73
+ body:
74
+ encoding: ASCII-8BIT
75
+ string: !binary |-
76
+ H4sIAGkeJlYAA5RUy27bMBC85ysE3WnaCRzXAM3c8gFBcg7W0iYhwoe6XLn1
77
+ 34eSTUl2laK97WN2uBwOqB5+O1sckKIJfleuFsuyQF+F2vj3Xfny/Ch+lA/6
78
+ RkFjBBIFEoSxCT6ivikK1ZdiFw5JwccGdyUQwbGU5xYT+AgVp0NOlXl47uXu
79
+ mKdKWgr1drW+XyvZx9MmMJPZt4xnvnh0+2BL3cDRoedXh/wR6lcffIVKDugL
80
+ DocxwjvqF//pwy9fzM0ulMywcVd5sew5zarIq7tP26oBAhf/IlLVRg4OqfDG
81
+ 7kqmFrOm/XS/oDgtKPoF9Rt8ojD+ANacS0rOAjMLuNB61rfLxXKZpDlluRmo
82
+ RhKm1k+b1d12vdncbpUcihlVY6zINDx9MeXB4eza8k+4Ck137TgZj+3eGRZv
83
+ yXIRmS12N9AdlZLzvXEW6lrsjbXJxCLFybJRcBCXMiSlbOzM8E/gkZw/CFHU
84
+ 6eSqpUsHEf5sDeFAPeQTr3w3rtJDU/dy4gCt5UxxVR00vBJMdbbXEWwa6cPv
85
+ zDc67r/9nqSa+QW+AAAA//8DAD2GUQFCBAAA
86
+ http_version:
87
+ recorded_at: Tue, 20 Oct 2015 10:58:49 GMT
88
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,88 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://yd57hn7c4r5bhp8g:1cc8b0097ef43165847630438f864834@api.sandbox.braintreegateway.com/merchants/yccdpmn3cvtjbgnr/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <customer>
12
+ </customer>
13
+ <payment-method-token>sometoken</payment-method-token>
14
+ <amount>20.00</amount>
15
+ <order-id>R475374582</order-id>
16
+ <descriptor>
17
+ <name></name>
18
+ </descriptor>
19
+ <options>
20
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
21
+ <add-billing-address-to-payment-method type="boolean">false</add-billing-address-to-payment-method>
22
+ <three-d-secure>
23
+ <required type="boolean">false</required>
24
+ </three-d-secure>
25
+ <store-in-vault type="boolean">false</store-in-vault>
26
+ </options>
27
+ <type>sale</type>
28
+ </transaction>
29
+ headers:
30
+ Accept-Encoding:
31
+ - gzip
32
+ Accept:
33
+ - application/xml
34
+ User-Agent:
35
+ - Braintree Ruby Gem 2.49.0
36
+ X-Apiversion:
37
+ - '4'
38
+ Content-Type:
39
+ - application/xml
40
+ response:
41
+ status:
42
+ code: 422
43
+ message: Unprocessable Entity
44
+ headers:
45
+ Date:
46
+ - Tue, 20 Oct 2015 10:58:53 GMT
47
+ Content-Type:
48
+ - application/xml; charset=utf-8
49
+ Transfer-Encoding:
50
+ - chunked
51
+ Connection:
52
+ - close
53
+ X-Authentication:
54
+ - basic_auth
55
+ X-User:
56
+ - 97syg9czj6hrdzyn
57
+ Vary:
58
+ - Accept-Encoding
59
+ Content-Encoding:
60
+ - gzip
61
+ X-Ua-Compatible:
62
+ - IE=Edge,chrome=1
63
+ Cache-Control:
64
+ - no-cache
65
+ X-Request-Id:
66
+ - 5ea1c89d8d9e25093c82426627f7a346
67
+ X-Runtime:
68
+ - '0.323214'
69
+ X-Frame-Options:
70
+ - SAMEORIGIN
71
+ Strict-Transport-Security:
72
+ - max-age=31536000; includeSubDomains
73
+ body:
74
+ encoding: ASCII-8BIT
75
+ string: !binary |-
76
+ H4sIAG0eJlYAA5xUTW/bMAy991cIvitK2gbNAEW97TwU3blQLLYVpg+PlIPm
77
+ 30+2I9vJ3GLYjeTjo8jnB8vHD+/YEZBsDPtqs1pXDEIdjQ1v++rn83e+qx7V
78
+ jdSN5YAYkSNQEwOBumFM9iXqwjFh6dTAvtKI+lSJM5RQB9J1yo8MleX2ghV0
79
+ ynMlLwXq22a72UnRx3NQp4T20CY4z6OTP0RXqUafPIT04iG9R/OS4i8IUozd
80
+ FzM8EOk3UD8GDhs4rOcwS8yGo3bWrKQondO64mLfc1qEEVfnz2HZaNSevtCp
81
+ bilFD8iCdfsqYQtF1p7d78qHXXm/q6Lcfr50ES9k7WMbkrpdr9brLMqQFTCi
82
+ AeTWqKf7h+3dw/12dyvFWCxdBqhG26T5t5JBe1jcVvzdLmPTXUszOrUHbxN/
83
+ zWYjSMlBd4HqRkmxjE1cbQw/WOeyfXmOs1kpH80vZVCv2lEe9m/N0/D0jgDc
84
+ 5JfrFi+9g/C7tQjj6DGfWeQzuszfF4HbwI+6damMuKqOGl4JJjvDK9IuU/rw
85
+ M89NRvsfp2e1Fn4BfwAAAP//AwD4r36iPwQAAA==
86
+ http_version:
87
+ recorded_at: Tue, 20 Oct 2015 10:58:53 GMT
88
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,113 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://yd57hn7c4r5bhp8g:1cc8b0097ef43165847630438f864834@api.sandbox.braintreegateway.com/merchants/yccdpmn3cvtjbgnr/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <customer>
12
+ </customer>
13
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
14
+ <amount>20.00</amount>
15
+ <order-id>R372431497</order-id>
16
+ <descriptor>
17
+ <name></name>
18
+ </descriptor>
19
+ <options>
20
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
21
+ <add-billing-address-to-payment-method type="boolean">false</add-billing-address-to-payment-method>
22
+ <three-d-secure>
23
+ <required type="boolean">false</required>
24
+ </three-d-secure>
25
+ <store-in-vault type="boolean">true</store-in-vault>
26
+ <store-shipping-address-in-vault type="boolean">true</store-shipping-address-in-vault>
27
+ </options>
28
+ <type>sale</type>
29
+ </transaction>
30
+ headers:
31
+ Accept-Encoding:
32
+ - gzip
33
+ Accept:
34
+ - application/xml
35
+ User-Agent:
36
+ - Braintree Ruby Gem 2.49.0
37
+ X-Apiversion:
38
+ - '4'
39
+ Content-Type:
40
+ - application/xml
41
+ response:
42
+ status:
43
+ code: 201
44
+ message: Created
45
+ headers:
46
+ Date:
47
+ - Tue, 20 Oct 2015 10:58:46 GMT
48
+ Content-Type:
49
+ - application/xml; charset=utf-8
50
+ Transfer-Encoding:
51
+ - chunked
52
+ Connection:
53
+ - close
54
+ X-Authentication:
55
+ - basic_auth
56
+ X-User:
57
+ - 97syg9czj6hrdzyn
58
+ Vary:
59
+ - Accept-Encoding
60
+ Content-Encoding:
61
+ - gzip
62
+ X-Ua-Compatible:
63
+ - IE=Edge,chrome=1
64
+ Etag:
65
+ - '"294265037fae71c2c45aba0ef12402e6"'
66
+ Cache-Control:
67
+ - max-age=0, private, must-revalidate
68
+ X-Request-Id:
69
+ - 245e0a0b7aee0491e359afdbce3eeab5
70
+ X-Runtime:
71
+ - '1.278229'
72
+ X-Frame-Options:
73
+ - SAMEORIGIN
74
+ Strict-Transport-Security:
75
+ - max-age=31536000; includeSubDomains
76
+ body:
77
+ encoding: ASCII-8BIT
78
+ string: !binary |-
79
+ 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
110
+ z4Ah2clpJiZNKb74CwAA//8DAJk8l9N6EwAA
111
+ http_version:
112
+ recorded_at: Tue, 20 Oct 2015 10:58:46 GMT
113
+ recorded_with: VCR 2.9.3