spree_braintree_vzero 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
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