solidus_paypal_braintree 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +40 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.gitignore +18 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +68 -0
  8. data/CHANGELOG.md +258 -0
  9. data/Gemfile +43 -0
  10. data/LICENSE +2 -2
  11. data/README.md +77 -23
  12. data/Rakefile +4 -25
  13. data/app/assets/javascripts/solidus_paypal_braintree/checkout.js +32 -3
  14. data/app/assets/javascripts/solidus_paypal_braintree/client.js +23 -4
  15. data/app/assets/javascripts/solidus_paypal_braintree/constants.js +19 -0
  16. data/app/assets/javascripts/solidus_paypal_braintree/frontend.js +1 -0
  17. data/app/assets/javascripts/solidus_paypal_braintree/hosted_form.js +15 -5
  18. data/app/assets/javascripts/solidus_paypal_braintree/paypal_button.js +47 -20
  19. data/app/assets/javascripts/solidus_paypal_braintree/paypal_messaging.js +22 -0
  20. data/app/decorators/controllers/solidus_paypal_braintree/admin_payments_controller_decorator.rb +11 -0
  21. data/app/decorators/controllers/solidus_paypal_braintree/checkout_controller_decorator.rb +11 -0
  22. data/app/decorators/controllers/solidus_paypal_braintree/client_tokens_controller.rb +41 -0
  23. data/app/decorators/controllers/solidus_paypal_braintree/orders_controller_decorator.rb +11 -0
  24. data/app/decorators/models/solidus_paypal_braintree/spree/store_decorator.rb +20 -0
  25. data/app/decorators/models/solidus_paypal_braintree/spree/user_decorator.rb +13 -0
  26. data/app/helpers/solidus_paypal_braintree/braintree_admin_helper.rb +23 -0
  27. data/app/helpers/solidus_paypal_braintree/braintree_checkout_helper.rb +46 -0
  28. data/app/models/application_record.rb +2 -0
  29. data/app/models/solidus_paypal_braintree/address.rb +30 -0
  30. data/app/models/solidus_paypal_braintree/configuration.rb +26 -3
  31. data/app/models/solidus_paypal_braintree/customer.rb +7 -3
  32. data/app/models/solidus_paypal_braintree/gateway.rb +52 -20
  33. data/app/models/solidus_paypal_braintree/response.rb +3 -2
  34. data/app/models/solidus_paypal_braintree/source.rb +21 -7
  35. data/app/models/solidus_paypal_braintree/transaction.rb +2 -0
  36. data/app/models/solidus_paypal_braintree/transaction_address.rb +30 -12
  37. data/app/models/solidus_paypal_braintree/transaction_import.rb +13 -9
  38. data/app/views/spree/api/payments/source_views/_paypal_braintree.json.jbuilder +3 -0
  39. data/app/views/spree/checkout/existing_payment/_paypal_braintree.html.erb +10 -0
  40. data/app/views/spree/shared/_apple_pay_button.html.erb +2 -2
  41. data/app/views/spree/shared/_braintree_errors.html.erb +11 -17
  42. data/app/views/spree/shared/_braintree_hosted_fields.html.erb +24 -9
  43. data/app/views/spree/shared/_paypal_braintree_head_scripts.html.erb +9 -6
  44. data/app/views/spree/shared/_paypal_cart_button.html.erb +16 -2
  45. data/app/views/spree/shared/_paypal_messaging.html.erb +13 -0
  46. data/bin/console +17 -0
  47. data/bin/rails +15 -0
  48. data/bin/setup +8 -0
  49. data/config/locales/en.yml +10 -0
  50. data/config/locales/it.yml +51 -8
  51. data/config/routes.rb +2 -0
  52. data/db/migrate/20160906201711_create_solidus_paypal_braintree_customers.rb +3 -1
  53. data/db/migrate/20161125172005_add_braintree_configuration_to_stores.rb +5 -7
  54. data/db/migrate/20170505193712_add_null_constraint_to_sources.rb +3 -1
  55. data/db/migrate/20190705115327_add_paypal_button_preferences_to_braintree_configurations.rb +5 -0
  56. data/db/migrate/20190911141712_add_3d_secure_to_braintree_configuration.rb +5 -0
  57. data/lib/controllers/backend/solidus_paypal_braintree/configurations_controller.rb +20 -5
  58. data/lib/controllers/frontend/solidus_paypal_braintree/checkouts_controller.rb +25 -21
  59. data/lib/controllers/frontend/solidus_paypal_braintree/transactions_controller.rb +55 -51
  60. data/lib/generators/solidus_paypal_braintree/install/install_generator.rb +7 -5
  61. data/lib/solidus_paypal_braintree.rb +4 -0
  62. data/lib/solidus_paypal_braintree/country_mapper.rb +4 -2
  63. data/lib/solidus_paypal_braintree/engine.rb +11 -11
  64. data/lib/solidus_paypal_braintree/factories.rb +8 -4
  65. data/lib/solidus_paypal_braintree/request_protection.rb +3 -0
  66. data/lib/solidus_paypal_braintree/version.rb +3 -1
  67. data/lib/views/backend/solidus_paypal_braintree/configurations/list.html.erb +30 -5
  68. data/lib/views/backend/spree/admin/payments/source_forms/_paypal_braintree.html.erb +2 -2
  69. data/lib/views/backend/spree/admin/payments/source_views/_paypal_braintree.html.erb +2 -2
  70. data/lib/views/backend_v1.2/spree/admin/payments/source_forms/_paypal_braintree.html.erb +2 -2
  71. data/lib/views/frontend/spree/checkout/payment/_paypal_braintree.html.erb +4 -2
  72. data/lib/views/frontend/spree/shared/_paypal_checkout_button.html.erb +30 -0
  73. data/solidus_paypal_braintree.gemspec +42 -0
  74. data/spec/controllers/solidus_paypal_braintree/checkouts_controller_spec.rb +99 -0
  75. data/spec/controllers/solidus_paypal_braintree/client_tokens_controller_spec.rb +55 -0
  76. data/spec/controllers/solidus_paypal_braintree/configurations_controller_spec.rb +73 -0
  77. data/spec/controllers/solidus_paypal_braintree/transactions_controller_spec.rb +183 -0
  78. data/spec/features/backend/configuration_spec.rb +23 -0
  79. data/spec/features/backend/new_payment_spec.rb +137 -0
  80. data/spec/features/frontend/braintree_credit_card_checkout_spec.rb +187 -0
  81. data/spec/features/frontend/paypal_checkout_spec.rb +166 -0
  82. data/spec/fixtures/cassettes/admin/invalid_credit_card.yml +63 -0
  83. data/spec/fixtures/cassettes/admin/resubmit_credit_card.yml +352 -0
  84. data/spec/fixtures/cassettes/admin/valid_credit_card.yml +412 -0
  85. data/spec/fixtures/cassettes/braintree/create_profile.yml +71 -0
  86. data/spec/fixtures/cassettes/braintree/generate_token.yml +63 -0
  87. data/spec/fixtures/cassettes/braintree/token.yml +63 -0
  88. data/spec/fixtures/cassettes/checkout/invalid_credit_card.yml +63 -0
  89. data/spec/fixtures/cassettes/checkout/resubmit_credit_card.yml +216 -0
  90. data/spec/fixtures/cassettes/checkout/update.yml +71 -0
  91. data/spec/fixtures/cassettes/checkout/valid_credit_card.yml +156 -0
  92. data/spec/fixtures/cassettes/gateway/authorize.yml +86 -0
  93. data/spec/fixtures/cassettes/gateway/authorize/credit_card/address.yml +86 -0
  94. data/spec/fixtures/cassettes/gateway/authorize/merchant_account/EUR.yml +154 -0
  95. data/spec/fixtures/cassettes/gateway/authorize/paypal/EUR.yml +90 -0
  96. data/spec/fixtures/cassettes/gateway/authorize/paypal/address.yml +90 -0
  97. data/spec/fixtures/cassettes/gateway/authorized_transaction.yml +73 -0
  98. data/spec/fixtures/cassettes/gateway/cancel/missing.yml +63 -0
  99. data/spec/fixtures/cassettes/gateway/cancel/refunds.yml +272 -0
  100. data/spec/fixtures/cassettes/gateway/cancel/void.yml +201 -0
  101. data/spec/fixtures/cassettes/gateway/capture.yml +141 -0
  102. data/spec/fixtures/cassettes/gateway/complete.yml +157 -0
  103. data/spec/fixtures/cassettes/gateway/credit.yml +208 -0
  104. data/spec/fixtures/cassettes/gateway/purchase.yml +87 -0
  105. data/spec/fixtures/cassettes/gateway/settled_transaction.yml +140 -0
  106. data/spec/fixtures/cassettes/gateway/void.yml +137 -0
  107. data/spec/fixtures/cassettes/source/card_type.yml +267 -0
  108. data/spec/fixtures/cassettes/source/last4.yml +267 -0
  109. data/spec/fixtures/cassettes/transaction/import/valid.yml +71 -0
  110. data/spec/fixtures/cassettes/transaction/import/valid/capture.yml +224 -0
  111. data/spec/fixtures/views/spree/orders/edit.html.erb +50 -0
  112. data/spec/helpers/solidus_paypal_braintree/braintree_admin_helper_spec.rb +17 -0
  113. data/spec/models/solidus_paypal_braintree/address_spec.rb +51 -0
  114. data/spec/models/solidus_paypal_braintree/avs_result_spec.rb +317 -0
  115. data/spec/models/solidus_paypal_braintree/gateway_spec.rb +692 -0
  116. data/spec/models/solidus_paypal_braintree/response_spec.rb +280 -0
  117. data/spec/models/solidus_paypal_braintree/source_spec.rb +360 -0
  118. data/spec/models/solidus_paypal_braintree/transaction_address_spec.rb +253 -0
  119. data/spec/models/solidus_paypal_braintree/transaction_import_spec.rb +283 -0
  120. data/spec/models/solidus_paypal_braintree/transaction_spec.rb +85 -0
  121. data/spec/models/spree/store_spec.rb +14 -0
  122. data/spec/requests/spree/api/orders_controller_spec.rb +36 -0
  123. data/spec/spec_helper.rb +26 -0
  124. data/spec/support/capybara.rb +7 -0
  125. data/spec/support/factories.rb +2 -0
  126. data/spec/support/gateway_helpers.rb +29 -0
  127. data/spec/support/order_ready_for_payment.rb +37 -0
  128. data/spec/support/vcr.rb +42 -0
  129. data/spec/support/views.rb +1 -0
  130. metadata +182 -194
  131. data/app/controllers/solidus_paypal_braintree/client_tokens_controller.rb +0 -22
  132. data/app/helpers/braintree_admin_helper.rb +0 -18
  133. data/app/models/spree/store_decorator.rb +0 -11
  134. data/app/views/spree/shared/_paypal_checkout_button.html.erb +0 -27
  135. data/config/initializers/braintree.rb +0 -1
@@ -0,0 +1,90 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <amount>10.00</amount>
12
+ <channel>Solidus</channel>
13
+ <options>
14
+ <store-in-vault-on-success type="boolean">true</store-in-vault-on-success>
15
+ <paypal>
16
+ <payee-email>paypal+europe@example.com</payee-email>
17
+ </paypal>
18
+ </options>
19
+ <merchant-account-id>stembolt_EUR</merchant-account-id>
20
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
21
+ <shipping>
22
+ <first-name>Bruce</first-name>
23
+ <last-name>Wayne</last-name>
24
+ <street-address>42 Spruce Lane Apt 312</street-address>
25
+ <locality>Gotham</locality>
26
+ <postal-code>90210</postal-code>
27
+ <region>CA</region>
28
+ <country-code-alpha2>US</country-code-alpha2>
29
+ </shipping>
30
+ <type>sale</type>
31
+ </transaction>
32
+ headers:
33
+ Accept-Encoding:
34
+ - gzip
35
+ Accept:
36
+ - application/xml
37
+ User-Agent:
38
+ - Braintree Ruby Gem 2.98.0
39
+ X-Apiversion:
40
+ - '5'
41
+ Content-Type:
42
+ - application/xml
43
+ Authorization:
44
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
45
+ response:
46
+ status:
47
+ code: 201
48
+ message: Created
49
+ headers:
50
+ Date:
51
+ - Fri, 13 Sep 2019 14:27:23 GMT
52
+ Content-Type:
53
+ - application/xml; charset=utf-8
54
+ Transfer-Encoding:
55
+ - chunked
56
+ X-Frame-Options:
57
+ - SAMEORIGIN
58
+ X-Xss-Protection:
59
+ - 1; mode=block
60
+ X-Content-Type-Options:
61
+ - nosniff
62
+ X-Authentication:
63
+ - basic_auth
64
+ X-User:
65
+ - 3v249hqtptsg744y
66
+ Vary:
67
+ - Accept-Encoding
68
+ Content-Encoding:
69
+ - gzip
70
+ Etag:
71
+ - W/"77e1e2d6d635e062ee34868bb7aca21a"
72
+ Cache-Control:
73
+ - max-age=0, private, must-revalidate
74
+ X-Runtime:
75
+ - '0.511733'
76
+ X-Request-Id:
77
+ - 01-1568384842.114-92.223.152.178-12966962
78
+ Content-Security-Policy:
79
+ - frame-ancestors 'self'
80
+ X-Broxyid:
81
+ - 01-1568384842.114-92.223.152.178-12966962
82
+ Strict-Transport-Security:
83
+ - max-age=31536000; includeSubDomains
84
+ body:
85
+ encoding: ASCII-8BIT
86
+ string: !binary |-
87
+ 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
88
+ http_version:
89
+ recorded_at: Fri, 13 Sep 2019 14:27:23 GMT
90
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,90 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <amount>10.00</amount>
12
+ <channel>Solidus</channel>
13
+ <options>
14
+ <store-in-vault-on-success type="boolean">true</store-in-vault-on-success>
15
+ <paypal>
16
+ <payee-email>paypal+europe@example.com</payee-email>
17
+ </paypal>
18
+ </options>
19
+ <merchant-account-id>stembolt_EUR</merchant-account-id>
20
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
21
+ <shipping>
22
+ <first-name>Bruce</first-name>
23
+ <last-name>Wayne</last-name>
24
+ <street-address>42 Spruce Lane Apt 312</street-address>
25
+ <locality>Gotham</locality>
26
+ <postal-code>90210</postal-code>
27
+ <region>CA</region>
28
+ <country-code-alpha2>US</country-code-alpha2>
29
+ </shipping>
30
+ <type>sale</type>
31
+ </transaction>
32
+ headers:
33
+ Accept-Encoding:
34
+ - gzip
35
+ Accept:
36
+ - application/xml
37
+ User-Agent:
38
+ - Braintree Ruby Gem 2.98.0
39
+ X-Apiversion:
40
+ - '5'
41
+ Content-Type:
42
+ - application/xml
43
+ Authorization:
44
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
45
+ response:
46
+ status:
47
+ code: 201
48
+ message: Created
49
+ headers:
50
+ Date:
51
+ - Fri, 13 Sep 2019 14:27:24 GMT
52
+ Content-Type:
53
+ - application/xml; charset=utf-8
54
+ Transfer-Encoding:
55
+ - chunked
56
+ X-Frame-Options:
57
+ - SAMEORIGIN
58
+ X-Xss-Protection:
59
+ - 1; mode=block
60
+ X-Content-Type-Options:
61
+ - nosniff
62
+ X-Authentication:
63
+ - basic_auth
64
+ X-User:
65
+ - 3v249hqtptsg744y
66
+ Vary:
67
+ - Accept-Encoding
68
+ Content-Encoding:
69
+ - gzip
70
+ Etag:
71
+ - W/"fdbf84ba963bfcc3556d33a5f62d0b7f"
72
+ Cache-Control:
73
+ - max-age=0, private, must-revalidate
74
+ X-Runtime:
75
+ - '0.456705'
76
+ X-Request-Id:
77
+ - 01-1568384843.516-92.223.152.178-12967200
78
+ Content-Security-Policy:
79
+ - frame-ancestors 'self'
80
+ X-Broxyid:
81
+ - 01-1568384843.516-92.223.152.178-12967200
82
+ Strict-Transport-Security:
83
+ - max-age=31536000; includeSubDomains
84
+ body:
85
+ encoding: ASCII-8BIT
86
+ string: !binary |-
87
+ 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
88
+ http_version:
89
+ recorded_at: Fri, 13 Sep 2019 14:27:24 GMT
90
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,73 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <amount type="integer">40</amount>
12
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
13
+ <type>sale</type>
14
+ </transaction>
15
+ headers:
16
+ Accept-Encoding:
17
+ - gzip
18
+ Accept:
19
+ - application/xml
20
+ User-Agent:
21
+ - Braintree Ruby Gem 2.98.0
22
+ X-Apiversion:
23
+ - '5'
24
+ Content-Type:
25
+ - application/xml
26
+ Authorization:
27
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
28
+ response:
29
+ status:
30
+ code: 201
31
+ message: Created
32
+ headers:
33
+ Date:
34
+ - Fri, 13 Sep 2019 14:27:33 GMT
35
+ Content-Type:
36
+ - application/xml; charset=utf-8
37
+ Transfer-Encoding:
38
+ - chunked
39
+ X-Frame-Options:
40
+ - SAMEORIGIN
41
+ X-Xss-Protection:
42
+ - 1; mode=block
43
+ X-Content-Type-Options:
44
+ - nosniff
45
+ X-Authentication:
46
+ - basic_auth
47
+ X-User:
48
+ - 3v249hqtptsg744y
49
+ Vary:
50
+ - Accept-Encoding
51
+ Content-Encoding:
52
+ - gzip
53
+ Etag:
54
+ - W/"9f163d0d605e2cf0f374d80596165c7f"
55
+ Cache-Control:
56
+ - max-age=0, private, must-revalidate
57
+ X-Runtime:
58
+ - '0.517267'
59
+ X-Request-Id:
60
+ - 02-1568384852.825-92.223.152.178-13021928
61
+ Content-Security-Policy:
62
+ - frame-ancestors 'self'
63
+ X-Broxyid:
64
+ - 02-1568384852.825-92.223.152.178-13021928
65
+ Strict-Transport-Security:
66
+ - max-age=31536000; includeSubDomains
67
+ body:
68
+ encoding: ASCII-8BIT
69
+ string: !binary |-
70
+ H4sIAFWne10AA+RYS4/bNhC+768wfOfKryK7gVZp0CJoCzSHJFske1lQ4thiliJVkvLa/fUdipIsWZR3eykK9GbNfBySw3l84/jdoRCzPWjDlbybL68X8xnITDEud3fz+y8fyM38XXIVW02loZlFVHI1m8WcJdvNk4QVlHGEH05mLLWVSWhlc6X5X8DiqBE5rT2WkBgqII7qn06WVVrjbkfCjSK4KST3n3+Oo7HYgWmhKmmTzeJ6sYij5sspCtBZTqUlNMuckOB5jIUiVcLGUUhbn7ZKSUA3k1zcza2uYB556xRt6VdBlWaIDCgyDdQCI9TO3N3v5gw/LS9gnqwWy1uyuCXL9Zfl5u3qzdv1+gE90C2o11cl+2frTwsaPxur8Abuo3688xOicMu1sUTSAgJKQad1mSpKKo8BDRSUi4D8GVLDbchWmSsZkm/pYeTUqH+rOOVCYMz+yzc0VgNgTDCmwZiQCw4WJHMvMQkRKqOC25B5DTtMuJCfFGaW8Llxu1ku3sRRX9QeG+NUH6dv5dVuBaGizOnqVaj1SyhZ4aPwbPxgvTfCq20ryULJ0mlME+xUa3ocKNGfvYIUMlJSbTm6w4C1AgrAhB2uCBk/Va6XzPfMptRmeRCT87L8X4bkhQD5z8Ri/3Wa+ki2HAQzTSzsDQGtlSboo1JJA8Gr1bje1Yfo5HdsVBcBrYnhq52BfvVWLmLqa+z34/3HQgfdYXt4pkfUfAcf5dhxzPhh41KrDHdDP7TZQWt4bWnz8duHn1ztuQQaWhkeZblwvXxKO7HSYgQn70vU7B3HmELUrmWMu5Og88ew0V33imfugbb48LgCYycFPfZI5ZgA7uLb/QTK0gPxHCWoggMUZdvNU6UEUDlPtlQYx486QMse8BYko5o1IW7VE4RyMOUS+dFydXPjiq3s15FNsry5WcZR89GkCpokNRv7gxuKsdJ9t6Wi5No/ZaGkzZPlKo5GwhH2CFQjMVktBuBa2uzbdG7iCk3NKe8/n/r5SXo6Za5E7exw+eAF3QGptEhya0vzNoqowRJtrlNNuXRp08T7NdbNqKRHV7kfC8BYZY9C7VS0x/tfl3L3DuSeayUd4M5QyVJ1QILb2W9qnYaSIo/8qFz4+d9ekwMVNscTI5WVT1I9yzjqyTyIQcrtSe8/G1Wl8eEwBneVcAyuhzrXdI3AUVPsdSdoT9aclx61Ej1EK2jcZ0yFpRBbmXw6YQbSYWlVW+K0VGbQ33WsbN2lWJXVzPt0gpPMg3ZCpZh0wTbZcm4XmgF1JfmfFTSZiBbw7TjW8lFSuhQHWShi2NNE6nX6hmIOU68ZcUjOMVL1cUAhuvZbIwANNW/q8hWpOiqK8pX0vcN3Fi7OVt5HE+OR95BBmtwlw4/tdOTSAYcF004G7qg94mMUljpIaMnxSGO5v3B0fuNO0njJF01Bw0SqSk2meTlJtHr6rsjVLJKU2NgVI8hliPNnsBwOkHgsbYNYPPLZPq5zEGwSAZbIuKmjMagDb0W1lW6iYE3NOVhixmcbGkUG5uZjvNdECHd63zxwaJUwtopvvnfdbgsw1afctuqZ+NccadENaaWNJ8EMLI56pi1iA1X4bXoMOrz9EDP6S+CVcDg4B2Dx1uFjuGkCIxV5X8hglWUBgowvMnF3d/OysnBpuPDNkLLv2O3c+hC26VCES+R8lZ9eXFf25ejRlaM4mgINWVPPKUNy1SdOk6CXbdVU6yVbHR+TYJ+Vfjrb5evXOAprgmtqawaro8AX9cpZx+mcMmCtO4HNsQASLAYuSwCdt1XByc2QrcaR4MJU0w14U/nTFoopfXvI4ayZLFxPWNwu18vN6s16fbrMGW6KHbsYoBfZcRslw5CsqRqYS38yrRb9LjW1vD/Fd109HOYXh/SLa4N/BExyiKnRfnpBp0nYL7/lqfyYf1t/KtPVD9uH7590WtwfH76+j6MT7GrQI5OrvwEAAP//AwDB+fqkWhUAAA==
71
+ http_version:
72
+ recorded_at: Fri, 13 Sep 2019 14:27:34 GMT
73
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/fake_transaction_id
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip
12
+ Accept:
13
+ - application/xml
14
+ User-Agent:
15
+ - Braintree Ruby Gem 2.98.0
16
+ X-Apiversion:
17
+ - '5'
18
+ Content-Type:
19
+ - application/xml
20
+ Authorization:
21
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
22
+ response:
23
+ status:
24
+ code: 404
25
+ message: Not Found
26
+ headers:
27
+ Date:
28
+ - Fri, 13 Sep 2019 14:27:48 GMT
29
+ Content-Type:
30
+ - application/xml; charset=utf-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ X-Frame-Options:
34
+ - SAMEORIGIN
35
+ X-Xss-Protection:
36
+ - 1; mode=block
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Authentication:
40
+ - basic_auth
41
+ Vary:
42
+ - Accept-Encoding
43
+ Content-Encoding:
44
+ - gzip
45
+ Cache-Control:
46
+ - no-cache
47
+ X-Runtime:
48
+ - '0.030577'
49
+ X-Request-Id:
50
+ - 01-1568384868.074-92.223.152.178-12971830
51
+ Content-Security-Policy:
52
+ - frame-ancestors 'self'
53
+ X-Broxyid:
54
+ - 01-1568384868.074-92.223.152.178-12971830
55
+ Strict-Transport-Security:
56
+ - max-age=31536000; includeSubDomains
57
+ body:
58
+ encoding: ASCII-8BIT
59
+ string: !binary |-
60
+ H4sIAGSne10AAwAAAP//AwAAAAAAAAAAAA==
61
+ http_version:
62
+ recorded_at: Fri, 13 Sep 2019 14:27:48 GMT
63
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,272 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions
6
+ body:
7
+ encoding: UTF-8
8
+ string: |
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+ <transaction>
11
+ <amount type="integer">40</amount>
12
+ <payment-method-nonce>fake-valid-nonce</payment-method-nonce>
13
+ <options>
14
+ <submit-for-settlement type="boolean">true</submit-for-settlement>
15
+ </options>
16
+ <type>sale</type>
17
+ </transaction>
18
+ headers:
19
+ Accept-Encoding:
20
+ - gzip
21
+ Accept:
22
+ - application/xml
23
+ User-Agent:
24
+ - Braintree Ruby Gem 2.98.0
25
+ X-Apiversion:
26
+ - '5'
27
+ Content-Type:
28
+ - application/xml
29
+ Authorization:
30
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
31
+ response:
32
+ status:
33
+ code: 201
34
+ message: Created
35
+ headers:
36
+ Date:
37
+ - Fri, 13 Sep 2019 14:27:39 GMT
38
+ Content-Type:
39
+ - application/xml; charset=utf-8
40
+ Transfer-Encoding:
41
+ - chunked
42
+ X-Frame-Options:
43
+ - SAMEORIGIN
44
+ X-Xss-Protection:
45
+ - 1; mode=block
46
+ X-Content-Type-Options:
47
+ - nosniff
48
+ X-Authentication:
49
+ - basic_auth
50
+ X-User:
51
+ - 3v249hqtptsg744y
52
+ Vary:
53
+ - Accept-Encoding
54
+ Content-Encoding:
55
+ - gzip
56
+ Etag:
57
+ - W/"0c4b6b951c8d29665efa864202b49e99"
58
+ Cache-Control:
59
+ - max-age=0, private, must-revalidate
60
+ X-Runtime:
61
+ - '0.442002'
62
+ X-Request-Id:
63
+ - 02-1568384858.695-92.223.152.178-13023044
64
+ Content-Security-Policy:
65
+ - frame-ancestors 'self'
66
+ X-Broxyid:
67
+ - 02-1568384858.695-92.223.152.178-13023044
68
+ Strict-Transport-Security:
69
+ - max-age=31536000; includeSubDomains
70
+ body:
71
+ encoding: ASCII-8BIT
72
+ string: !binary |-
73
+ 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
74
+ http_version:
75
+ recorded_at: Fri, 13 Sep 2019 14:27:39 GMT
76
+ - request:
77
+ method: put
78
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/pb7437dd/settle
79
+ body:
80
+ encoding: UTF-8
81
+ string: ''
82
+ headers:
83
+ Accept-Encoding:
84
+ - gzip
85
+ Accept:
86
+ - application/xml
87
+ User-Agent:
88
+ - Braintree Ruby Gem 2.98.0
89
+ X-Apiversion:
90
+ - '5'
91
+ Content-Type:
92
+ - application/xml
93
+ Authorization:
94
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
95
+ response:
96
+ status:
97
+ code: 200
98
+ message: OK
99
+ headers:
100
+ Date:
101
+ - Fri, 13 Sep 2019 14:27:40 GMT
102
+ Content-Type:
103
+ - application/xml; charset=utf-8
104
+ Transfer-Encoding:
105
+ - chunked
106
+ X-Frame-Options:
107
+ - SAMEORIGIN
108
+ X-Xss-Protection:
109
+ - 1; mode=block
110
+ X-Content-Type-Options:
111
+ - nosniff
112
+ X-Authentication:
113
+ - basic_auth
114
+ X-User:
115
+ - 3v249hqtptsg744y
116
+ Vary:
117
+ - Accept-Encoding
118
+ Content-Encoding:
119
+ - gzip
120
+ Etag:
121
+ - W/"a258b5854858a68315200e9eb404aeb4"
122
+ Cache-Control:
123
+ - max-age=0, private, must-revalidate
124
+ X-Runtime:
125
+ - '0.531457'
126
+ X-Request-Id:
127
+ - 01-1568384860.003-92.223.152.178-12970230
128
+ Content-Security-Policy:
129
+ - frame-ancestors 'self'
130
+ X-Broxyid:
131
+ - 01-1568384860.003-92.223.152.178-12970230
132
+ Strict-Transport-Security:
133
+ - max-age=31536000; includeSubDomains
134
+ body:
135
+ encoding: ASCII-8BIT
136
+ string: !binary |-
137
+ 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
138
+ http_version:
139
+ recorded_at: Fri, 13 Sep 2019 14:27:41 GMT
140
+ - request:
141
+ method: get
142
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/pb7437dd
143
+ body:
144
+ encoding: US-ASCII
145
+ string: ''
146
+ headers:
147
+ Accept-Encoding:
148
+ - gzip
149
+ Accept:
150
+ - application/xml
151
+ User-Agent:
152
+ - Braintree Ruby Gem 2.98.0
153
+ X-Apiversion:
154
+ - '5'
155
+ Content-Type:
156
+ - application/xml
157
+ Authorization:
158
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
159
+ response:
160
+ status:
161
+ code: 200
162
+ message: OK
163
+ headers:
164
+ Date:
165
+ - Fri, 13 Sep 2019 14:27:41 GMT
166
+ Content-Type:
167
+ - application/xml; charset=utf-8
168
+ Transfer-Encoding:
169
+ - chunked
170
+ X-Frame-Options:
171
+ - SAMEORIGIN
172
+ X-Xss-Protection:
173
+ - 1; mode=block
174
+ X-Content-Type-Options:
175
+ - nosniff
176
+ X-Authentication:
177
+ - basic_auth
178
+ X-User:
179
+ - 3v249hqtptsg744y
180
+ Vary:
181
+ - Accept-Encoding
182
+ Content-Encoding:
183
+ - gzip
184
+ Etag:
185
+ - W/"780b3bf762f6829c3debde9dcdac896a"
186
+ Cache-Control:
187
+ - max-age=0, private, must-revalidate
188
+ X-Runtime:
189
+ - '0.165202'
190
+ X-Request-Id:
191
+ - 02-1568384861.358-92.223.152.178-13023462
192
+ Content-Security-Policy:
193
+ - frame-ancestors 'self'
194
+ X-Broxyid:
195
+ - 02-1568384861.358-92.223.152.178-13023462
196
+ Strict-Transport-Security:
197
+ - max-age=31536000; includeSubDomains
198
+ body:
199
+ encoding: ASCII-8BIT
200
+ string: !binary |-
201
+ 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
202
+ http_version:
203
+ recorded_at: Fri, 13 Sep 2019 14:27:42 GMT
204
+ - request:
205
+ method: post
206
+ uri: https://api.sandbox.braintreegateway.com/merchants/7rdg92j7bm7fk5h3/transactions/pb7437dd/refund
207
+ body:
208
+ encoding: UTF-8
209
+ string: |
210
+ <?xml version="1.0" encoding="UTF-8"?>
211
+ <transaction>
212
+ <amount>40.00</amount>
213
+ </transaction>
214
+ headers:
215
+ Accept-Encoding:
216
+ - gzip
217
+ Accept:
218
+ - application/xml
219
+ User-Agent:
220
+ - Braintree Ruby Gem 2.98.0
221
+ X-Apiversion:
222
+ - '5'
223
+ Content-Type:
224
+ - application/xml
225
+ Authorization:
226
+ - Basic bXdqa2t4d2NwMzJja2huZjphOTI5OGY0M2IzMGM2OTlkYjMwNzJjYzRhMDBmN2Y0OQ==
227
+ response:
228
+ status:
229
+ code: 201
230
+ message: Created
231
+ headers:
232
+ Date:
233
+ - Fri, 13 Sep 2019 14:27:43 GMT
234
+ Content-Type:
235
+ - application/xml; charset=utf-8
236
+ Transfer-Encoding:
237
+ - chunked
238
+ X-Frame-Options:
239
+ - SAMEORIGIN
240
+ X-Xss-Protection:
241
+ - 1; mode=block
242
+ X-Content-Type-Options:
243
+ - nosniff
244
+ X-Authentication:
245
+ - basic_auth
246
+ X-User:
247
+ - 3v249hqtptsg744y
248
+ Vary:
249
+ - Accept-Encoding
250
+ Content-Encoding:
251
+ - gzip
252
+ Etag:
253
+ - W/"e5c0114ab5591691d216792f94c46a49"
254
+ Cache-Control:
255
+ - max-age=0, private, must-revalidate
256
+ X-Runtime:
257
+ - '0.342099'
258
+ X-Request-Id:
259
+ - 01-1568384862.626-92.223.152.178-12970794
260
+ Content-Security-Policy:
261
+ - frame-ancestors 'self'
262
+ X-Broxyid:
263
+ - 01-1568384862.626-92.223.152.178-12970794
264
+ Strict-Transport-Security:
265
+ - max-age=31536000; includeSubDomains
266
+ body:
267
+ encoding: ASCII-8BIT
268
+ string: !binary |-
269
+ H4sIAF+ne10AA+RYWW/cNhB+968w9p3WXoYPyHILBE0bIEbTxGmbF4MSZ1e0JZIlqfVuf32HumVRa+elKNC31czHa85vNrzd59npDrThUtzMFmfz2SmIRDIutjez+y8/kcvZbXQSWk2FoYlFVHRyehpyFsWH1X4tHm0Y4IeTGUttYSJTxDm3FtjDRuoHA9ZmkINAXA1wWHtQECUaGEd5+eGkSaE1nn4g3EiCl4Do/vO7MBiLHZjmshA2Ws/P5vMwqL+cIgedpFRYQpPECQnez1jIY5nhYT5tefsiJh7dqeDZzczqAmZBtTvFvfSboFIzRHoU+HCKBiLUnrq338wYflqewyxazhdXZH5FFqsvi/X18uJ6vfqGFmgXlOsLxb5vfbegtrOxEl/gPkpnvrwhCjdcG0sEzcGjzOi0LpG5ouLg0UBOeeaRP0NsuPXtpVIpfPIN3Y+MGvRfFcY8yzCG/+UXGqsBMCYY02CMzwR7C4I5T0xCMpnQjFvf9hq2mIA+O0nMrazKjav1Yn4RBn1Rc22MU32YflWldisIzVRKl29CrV5DiQKdwpOxw3o+wqdtCsF8ydJqTB3sVGt6GCjRnr0C5TJaxRfr1QVjYTCFcKsV1Zajkboi9QLlO5IWNpWa/z3acnTz3rYxtUnqxaRcqf9loB4Jm/9MhPa9U1dNsuGQMVPHws4Q0FpqgjZSUhjwPq3E9Z4+REc/Yvs6Cmi2GHrNv8tRTPmM3W68cix00C02jWd6QM0jVFGOfciMHRsqLRM8De3QZAct4V5jdODhiYv5fIl1a0I7sdJioEa/VnJg3uUlpDQhQ7qB10Ijj2Gja+4kT5wjNuhgXIExEoMeP6ZwPABPqZr9BMrSPakYilcFe8hV08tjKTOgYhZtaGYA2VELaLgDvoIkVLM6lK18Al+uxVwgO1osLy9dqRX9erGOFpeXizCoP+qUwC1JycW+ckMxJtrvpiQoriu/5lLYNFqgu0bCEfYAVCMtWc4H4FJan1v3beIKSskw7z933byTdrdMZVYa218meE63QAqdRam1ylwHAcXYsOYs1pQLlx51XJ9hfQwUPbgK/ZADBi57yORWBjt8/5kS21sQO66lcIAbQwWL5R7pbrt/XdM0KIod5U668Kt+V5oUaGZTvDESWfEk5LMIg56sAjGIue301WetKjQ6DmNwW2SOv/VQLzVtwXfEFHtaB+3J6vvSg5ZZD9EIavMZU2DJw5YlnjrMQDosoXJDnJaKBPqnjpWNuSQrkpJ3dzfoZBVom8kYk87bDhvG7ULToy4E/6uAOhNxB/Qdx5o9SkqX4iBySQx7mki9Vl8TzGHq1QMPSTlGqj4MqELbZksE4Ea1T12+IlFHRa7eSN5bfLvDd0xalcUmRqXKXgYpc5saPzSTkksOHBxMMyW4i/fojpFY+CCiiuMFx/Lq+cHL97eS2mZVCc2onz4VsUk0V5P0qqdvS17JKInCdi4ZQQZDnHW9xXGAxGtp68XilV+c4/oIwZbh4YaMmzI2vTqodpFN3ZsoX1MzDxac8d2GmyLvcrMyvms8cuKwKmC8A/p35/rcBmCqQ7kj5DOpPDfS4pPjQpuK5jKwOOKZpnwNVH4/9Diy//ghZvRXwBvhsHcGwLKt/ddwMwJGJTI734ZFkngoMFp/4u3u5aqwcGx8qNogZY/Y59x6H7buTYQLZHVFNZ90f5w8uEIUBlOgIWHqGWXIq/qUaRL0+l4lyXptr5aJCbDPUj+9wppHKLd+TKBSLFsEU9jFPqAZNtI7ZRmy0Ujfj0wg7TA2lQlNek/pmwu/Mhf6OKrzGFWo2U2x2ManwwAqKRUY91fQxODctlJ/hB2dgI+u9U7W7YqI/fwhjcVd+ufqNxUvzzfJ+19Wd+8+rr69/zQxlXdrj8zZk8yg4wxRkn/N2e/nT38sP5x/XG3nca6w7/W2H/Ss6OQfAAAA//8DADMe0EEGFQAA
270
+ http_version:
271
+ recorded_at: Fri, 13 Sep 2019 14:27:43 GMT
272
+ recorded_with: VCR 5.0.0