solidus_paypal_commerce_platform 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +41 -0
  3. data/.gem_release.yml +5 -0
  4. data/.github/stale.yml +17 -0
  5. data/.gitignore +20 -0
  6. data/.rspec +2 -0
  7. data/.rubocop.yml +56 -0
  8. data/Gemfile +33 -0
  9. data/LICENSE +26 -0
  10. data/README.md +173 -0
  11. data/Rakefile +6 -0
  12. data/app/assets/javascripts/spree/backend/solidus_paypal_commerce_platform.js +2 -0
  13. data/app/assets/javascripts/spree/backend/solidus_paypal_commerce_platform/namespace.js +1 -0
  14. data/app/assets/javascripts/spree/backend/solidus_paypal_commerce_platform/wizard.js +28 -0
  15. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform.js +3 -0
  16. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/button_actions.js +191 -0
  17. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/buttons.js +26 -0
  18. data/app/assets/javascripts/spree/frontend/solidus_paypal_commerce_platform/namespace.js +1 -0
  19. data/app/assets/stylesheets/spree/backend/solidus_paypal_commerce_platform.css +4 -0
  20. data/app/assets/stylesheets/spree/frontend/solidus_paypal_commerce_platform.css +17 -0
  21. data/app/controllers/solidus_paypal_commerce_platform/orders_controller.rb +83 -0
  22. data/app/controllers/solidus_paypal_commerce_platform/payments_controller.rb +44 -0
  23. data/app/controllers/solidus_paypal_commerce_platform/paypal_orders_controller.rb +19 -0
  24. data/app/controllers/solidus_paypal_commerce_platform/shipping_rates_controller.rb +31 -0
  25. data/app/controllers/solidus_paypal_commerce_platform/wizard_controller.rb +47 -0
  26. data/app/decorators/solidus_paypal_commerce_platform/remove_required_phone_from_address.rb +13 -0
  27. data/app/helpers/solidus_paypal_commerce_platform/button_options_helper.rb +21 -0
  28. data/app/jobs/solidus_paypal_commerce_platform/application_job.rb +6 -0
  29. data/app/jobs/solidus_paypal_commerce_platform/webhook_job.rb +22 -0
  30. data/app/models/solidus_paypal_commerce_platform/gateway.rb +88 -0
  31. data/app/models/solidus_paypal_commerce_platform/payment_method.rb +75 -0
  32. data/app/models/solidus_paypal_commerce_platform/payment_source.rb +27 -0
  33. data/app/models/solidus_paypal_commerce_platform/paypal_address.rb +81 -0
  34. data/app/models/solidus_paypal_commerce_platform/paypal_order.rb +107 -0
  35. data/app/models/solidus_paypal_commerce_platform/pricing_options.rb +9 -0
  36. data/app/models/solidus_paypal_commerce_platform/wizard.rb +40 -0
  37. data/app/overrides/spree/admin/payment_methods/form/insert_email_verification_notification.rb +9 -0
  38. data/app/overrides/spree/admin/payment_methods/index/insert_setup_wizards.rb +17 -0
  39. data/app/overrides/spree/admin/payments/log_entries/add_paypal_debug_id.rb +9 -0
  40. data/app/overrides/spree/orders/edit/insert_cart_buttons.rb +9 -0
  41. data/app/overrides/spree/payments/payment/add_paypal_email_to_payment.rb +9 -0
  42. data/app/overrides/spree/products/cart_form/insert_product_buttons.rb +10 -0
  43. data/app/views/solidus_paypal_commerce_platform/admin/payment_methods/_available_to_users.html.erb +6 -0
  44. data/app/views/solidus_paypal_commerce_platform/admin/payment_methods/_paypal_wizard.html.erb +16 -0
  45. data/app/views/solidus_paypal_commerce_platform/admin/payment_methods/_setup_wizards.html.erb +16 -0
  46. data/app/views/solidus_paypal_commerce_platform/admin/payments/_log_entries.html.erb +32 -0
  47. data/bin/console +17 -0
  48. data/bin/rails +7 -0
  49. data/bin/rails-engine +13 -0
  50. data/bin/rails-sandbox +18 -0
  51. data/bin/rake +7 -0
  52. data/bin/sandbox +86 -0
  53. data/bin/setup +8 -0
  54. data/codecov.yml +14 -0
  55. data/config/locales/en.yml +37 -0
  56. data/config/routes.rb +12 -0
  57. data/db/migrate/20200521190038_add_paypal_commerce_platform_sources.rb +13 -0
  58. data/lib/generators/solidus_paypal_commerce_platform/install/install_generator.rb +38 -0
  59. data/lib/solidus_paypal_commerce_platform.rb +21 -0
  60. data/lib/solidus_paypal_commerce_platform/access_token_authorization_request.rb +21 -0
  61. data/lib/solidus_paypal_commerce_platform/client.rb +84 -0
  62. data/lib/solidus_paypal_commerce_platform/configuration.rb +64 -0
  63. data/lib/solidus_paypal_commerce_platform/engine.rb +45 -0
  64. data/lib/solidus_paypal_commerce_platform/factories.rb +14 -0
  65. data/lib/solidus_paypal_commerce_platform/fetch_merchant_credentials_request.rb +17 -0
  66. data/lib/solidus_paypal_commerce_platform/version.rb +5 -0
  67. data/lib/views/api/spree/api/payments/source_views/_paypal_commerce_platform.json.jbuilder +3 -0
  68. data/lib/views/backend/spree/admin/payments/source_forms/_paypal_commerce_platform.html.erb +1 -0
  69. data/lib/views/backend/spree/admin/payments/source_views/_paypal_commerce_platform.html.erb +18 -0
  70. data/lib/views/backend/spree/admin/shared/preference_fields/_paypal_select.html.erb +13 -0
  71. data/lib/views/frontend/solidus_paypal_commerce_platform/cart/_cart_buttons.html.erb +3 -0
  72. data/lib/views/frontend/solidus_paypal_commerce_platform/payments/_payment.html.erb +4 -0
  73. data/lib/views/frontend/solidus_paypal_commerce_platform/product/_product_buttons.html.erb +3 -0
  74. data/lib/views/frontend/spree/checkout/payment/_paypal_commerce_platform.html.erb +13 -0
  75. data/lib/views/frontend/spree/orders/payment/_paypal_commerce_platform.html.erb +17 -0
  76. data/lib/views/frontend/spree/products/payment/_paypal_commerce_platform.html.erb +15 -0
  77. data/solidus_paypal_commerce_platform.gemspec +39 -0
  78. data/spec/features/backend/new_payment_method_spec.rb +40 -0
  79. data/spec/features/frontend/cart_spec.rb +38 -0
  80. data/spec/features/frontend/checkout_spec.rb +81 -0
  81. data/spec/features/frontend/product_spec.rb +79 -0
  82. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.COMPLETED.v2.json +121 -0
  83. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/CHECKOUT.ORDER.PROCESSED.v2.json +121 -0
  84. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v1.json +50 -0
  85. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.COMPLETED.v2.json +72 -0
  86. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v1.json +50 -0
  87. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.DENIED.v2.json +68 -0
  88. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v1.json +51 -0
  89. data/spec/jobs/solidus_paypal_commerce_platform/fixtures/PAYMENT.CAPTURE.REFUNDED.v2.json +63 -0
  90. data/spec/jobs/solidus_paypal_commerce_platform/webhook_job_spec.rb +44 -0
  91. data/spec/lib/solidus_paypal_commerce_platform/client_spec.rb +21 -0
  92. data/spec/lib/solidus_paypal_commerce_platform/configuration_spec.rb +67 -0
  93. data/spec/models/solidus_paypal_commerce_platform/payment_method_spec.rb +102 -0
  94. data/spec/models/solidus_paypal_commerce_platform/payment_source_spec.rb +62 -0
  95. data/spec/models/solidus_paypal_commerce_platform/paypal_address_spec.rb +55 -0
  96. data/spec/models/solidus_paypal_commerce_platform/wizard_spec.rb +9 -0
  97. data/spec/requests/solidus_paypal_commerce_platform/orders_controller_spec.rb +36 -0
  98. data/spec/requests/solidus_paypal_commerce_platform/shipping_rates_controller_spec.rb +44 -0
  99. data/spec/requests/solidus_paypal_commerce_platform/wizard_controller_spec.rb +44 -0
  100. data/spec/spec_helper.rb +30 -0
  101. metadata +258 -0
@@ -0,0 +1,121 @@
1
+ {
2
+ "id": "WH-COC11055RA711503B-4YM959094A144403T",
3
+ "create_time": "2018-04-16T21:21:49.000Z",
4
+ "resource_type": "checkout-order",
5
+ "event_type": "CHECKOUT.ORDER.COMPLETED",
6
+ "summary": "Checkout Order Completed",
7
+ "resource": {
8
+ "update_time": "2018-04-01T21:20:49Z",
9
+ "create_time": "2018-04-01T21:18:49Z",
10
+ "purchase_units": [
11
+ {
12
+ "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b",
13
+ "amount": {
14
+ "currency_code": "USD",
15
+ "value": "100.00"
16
+ },
17
+ "payee": {
18
+ "email_address": "seller@example.com"
19
+ },
20
+ "shipping": {
21
+ "method": "United States Postal Service",
22
+ "address": {
23
+ "address_line_1": "2211 N First Street",
24
+ "address_line_2": "Building 17",
25
+ "admin_area_2": "San Jose",
26
+ "admin_area_1": "CA",
27
+ "postal_code": "95131",
28
+ "country_code": "US"
29
+ }
30
+ },
31
+ "payments": {
32
+ "captures": [
33
+ {
34
+ "id": "3C679366HH908993F",
35
+ "status": "COMPLETED",
36
+ "amount": {
37
+ "currency_code": "USD",
38
+ "value": "100.00"
39
+ },
40
+ "seller_protection": {
41
+ "status": "ELIGIBLE",
42
+ "dispute_categories": [
43
+ "ITEM_NOT_RECEIVED",
44
+ "UNAUTHORIZED_TRANSACTION"
45
+ ]
46
+ },
47
+ "final_capture": true,
48
+ "seller_receivable_breakdown": {
49
+ "gross_amount": {
50
+ "currency_code": "USD",
51
+ "value": "100.00"
52
+ },
53
+ "paypal_fee": {
54
+ "currency_code": "USD",
55
+ "value": "3.00"
56
+ },
57
+ "net_amount": {
58
+ "currency_code": "USD",
59
+ "value": "97.00"
60
+ }
61
+ },
62
+ "create_time": "2018-04-01T21:20:49Z",
63
+ "update_time": "2018-04-01T21:20:49Z",
64
+ "links": [
65
+ {
66
+ "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F",
67
+ "rel": "self",
68
+ "method": "GET"
69
+ },
70
+ {
71
+ "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F/refund",
72
+ "rel": "refund",
73
+ "method": "POST"
74
+ }
75
+ ]
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ ],
81
+ "links": [
82
+ {
83
+ "href": "https://api.paypal.com/v2/checkout/orders/5O190127TN364715T",
84
+ "rel": "self",
85
+ "method": "GET"
86
+ }
87
+ ],
88
+ "id": "5O190127TN364715T",
89
+ "gross_amount": {
90
+ "currency_code": "USD",
91
+ "value": "100.00"
92
+ },
93
+ "intent": "CAPTURE",
94
+ "payer": {
95
+ "name": {
96
+ "given_name": "John",
97
+ "surname": "Doe"
98
+ },
99
+ "email_address": "buyer@example.com",
100
+ "payer_id": "QYR5Z8XDVJNXQ"
101
+ },
102
+ "status": "COMPLETED"
103
+ },
104
+ "links": [
105
+ {
106
+ "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T",
107
+ "rel": "self",
108
+ "method": "GET",
109
+ "encType": "application/json"
110
+ },
111
+ {
112
+ "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T/resend",
113
+ "rel": "resend",
114
+ "method": "POST",
115
+ "encType": "application/json"
116
+ }
117
+ ],
118
+ "event_version": "1.0",
119
+ "zts": 1494957670,
120
+ "resource_version": "2.0"
121
+ }
@@ -0,0 +1,121 @@
1
+ {
2
+ "id": "WH-COC11055RA711503B-4YM959094A144403T",
3
+ "create_time": "2018-04-16T21:21:49.000Z",
4
+ "resource_type": "checkout-order",
5
+ "event_type": "CHECKOUT.ORDER.COMPLETED",
6
+ "summary": "Checkout Order Completed",
7
+ "resource": {
8
+ "update_time": "2018-04-01T21:20:49Z",
9
+ "create_time": "2018-04-01T21:18:49Z",
10
+ "purchase_units": [
11
+ {
12
+ "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b",
13
+ "amount": {
14
+ "currency_code": "USD",
15
+ "value": "100.00"
16
+ },
17
+ "payee": {
18
+ "email_address": "seller@example.com"
19
+ },
20
+ "shipping": {
21
+ "method": "United States Postal Service",
22
+ "address": {
23
+ "address_line_1": "2211 N First Street",
24
+ "address_line_2": "Building 17",
25
+ "admin_area_2": "San Jose",
26
+ "admin_area_1": "CA",
27
+ "postal_code": "95131",
28
+ "country_code": "US"
29
+ }
30
+ },
31
+ "payments": {
32
+ "captures": [
33
+ {
34
+ "id": "3C679366HH908993F",
35
+ "status": "COMPLETED",
36
+ "amount": {
37
+ "currency_code": "USD",
38
+ "value": "100.00"
39
+ },
40
+ "seller_protection": {
41
+ "status": "ELIGIBLE",
42
+ "dispute_categories": [
43
+ "ITEM_NOT_RECEIVED",
44
+ "UNAUTHORIZED_TRANSACTION"
45
+ ]
46
+ },
47
+ "final_capture": true,
48
+ "seller_receivable_breakdown": {
49
+ "gross_amount": {
50
+ "currency_code": "USD",
51
+ "value": "100.00"
52
+ },
53
+ "paypal_fee": {
54
+ "currency_code": "USD",
55
+ "value": "3.00"
56
+ },
57
+ "net_amount": {
58
+ "currency_code": "USD",
59
+ "value": "97.00"
60
+ }
61
+ },
62
+ "create_time": "2018-04-01T21:20:49Z",
63
+ "update_time": "2018-04-01T21:20:49Z",
64
+ "links": [
65
+ {
66
+ "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F",
67
+ "rel": "self",
68
+ "method": "GET"
69
+ },
70
+ {
71
+ "href": "https://api.paypal.com/v2/payments/captures/3C679366HH908993F/refund",
72
+ "rel": "refund",
73
+ "method": "POST"
74
+ }
75
+ ]
76
+ }
77
+ ]
78
+ }
79
+ }
80
+ ],
81
+ "links": [
82
+ {
83
+ "href": "https://api.paypal.com/v2/checkout/orders/5O190127TN364715T",
84
+ "rel": "self",
85
+ "method": "GET"
86
+ }
87
+ ],
88
+ "id": "5O190127TN364715T",
89
+ "gross_amount": {
90
+ "currency_code": "USD",
91
+ "value": "100.00"
92
+ },
93
+ "intent": "CAPTURE",
94
+ "payer": {
95
+ "name": {
96
+ "given_name": "John",
97
+ "surname": "Doe"
98
+ },
99
+ "email_address": "buyer@example.com",
100
+ "payer_id": "QYR5Z8XDVJNXQ"
101
+ },
102
+ "status": "COMPLETED"
103
+ },
104
+ "links": [
105
+ {
106
+ "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T",
107
+ "rel": "self",
108
+ "method": "GET",
109
+ "encType": "application/json"
110
+ },
111
+ {
112
+ "href": "https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-COC11055RA711503B-4YM959094A144403T/resend",
113
+ "rel": "resend",
114
+ "method": "POST",
115
+ "encType": "application/json"
116
+ }
117
+ ],
118
+ "event_version": "1.0",
119
+ "zts": 1494957670,
120
+ "resource_version": "2.0"
121
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "id": "WH-7Y7254563A4550640-11V2185806837105M",
3
+ "create_time": "2015-02-17T18:51:33Z",
4
+ "resource_type": "capture",
5
+ "event_type": "PAYMENT.CAPTURE.COMPLETED",
6
+ "summary": "Payment completed for $ 7.47 USD",
7
+ "resource": {
8
+ "parent_payment": "PAY-3YE025760C441402AKTRY2PQ",
9
+ "update_time": "2015-02-17T18:50:45Z",
10
+ "amount": {
11
+ "total": "7.47",
12
+ "currency": "USD"
13
+ },
14
+ "create_time": "2015-02-17T18:50:44Z",
15
+ "links": [
16
+ {
17
+ "href": "https://api.paypal.com/v1/payments/capture/42311647XV020574X",
18
+ "rel": "self",
19
+ "method": "GET"
20
+ },
21
+ {
22
+ "href": "https://api.paypal.com/v1/payments/capture/42311647XV020574X/refund",
23
+ "rel": "refund",
24
+ "method": "POST"
25
+ },
26
+ {
27
+ "href": "https://api.paypal.com/v1/payments/payment/PAY-3YE025760C441402AKTRY2PQ",
28
+ "rel": "parent_payment",
29
+ "method": "GET"
30
+ }
31
+ ],
32
+ "id": "42311647XV020574X",
33
+ "state": "completed"
34
+ },
35
+ "links": [
36
+ {
37
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-7Y7254563A4550640-11V2185806837105M",
38
+ "rel": "self",
39
+ "method": "GET",
40
+ "encType": "application/json"
41
+ },
42
+ {
43
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-7Y7254563A4550640-11V2185806837105M/resend",
44
+ "rel": "resend",
45
+ "method": "POST",
46
+ "encType": "application/json"
47
+ }
48
+ ],
49
+ "event_version": "1.0"
50
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "id": "WH-58D329510W468432D-8HN650336L201105X",
3
+ "create_time": "2019-02-14T21:50:07.940Z",
4
+ "resource_type": "capture",
5
+ "event_type": "PAYMENT.CAPTURE.COMPLETED",
6
+ "summary": "Payment completed for $ 2.51 USD",
7
+ "resource": {
8
+ "amount": {
9
+ "currency_code": "USD",
10
+ "value": "2.51"
11
+ },
12
+ "seller_protection": {
13
+ "status": "ELIGIBLE",
14
+ "dispute_categories": [
15
+ "ITEM_NOT_RECEIVED",
16
+ "UNAUTHORIZED_TRANSACTION"
17
+ ]
18
+ },
19
+ "update_time": "2019-02-14T21:49:58Z",
20
+ "create_time": "2019-02-14T21:49:58Z",
21
+ "final_capture": true,
22
+ "seller_receivable_breakdown": {
23
+ "gross_amount": {
24
+ "currency_code": "USD",
25
+ "value": "2.51"
26
+ },
27
+ "paypal_fee": {
28
+ "currency_code": "USD",
29
+ "value": "0.37"
30
+ },
31
+ "net_amount": {
32
+ "currency_code": "USD",
33
+ "value": "2.14"
34
+ }
35
+ },
36
+ "links": [
37
+ {
38
+ "href": "https://api.paypal.com/v2/payments/captures/27M47624FP291604U",
39
+ "rel": "self",
40
+ "method": "GET"
41
+ },
42
+ {
43
+ "href": "https://api.paypal.com/v2/payments/captures/27M47624FP291604U/refund",
44
+ "rel": "refund",
45
+ "method": "POST"
46
+ },
47
+ {
48
+ "href": "https://api.paypal.com/v2/payments/authorizations/7W5147081L658180V",
49
+ "rel": "up",
50
+ "method": "GET"
51
+ }
52
+ ],
53
+ "id": "27M47624FP291604U",
54
+ "status": "COMPLETED"
55
+ },
56
+ "links": [
57
+ {
58
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-58D329510W468432D-8HN650336L201105X",
59
+ "rel": "self",
60
+ "method": "GET",
61
+ "encType": "application/json"
62
+ },
63
+ {
64
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-58D329510W468432D-8HN650336L201105X/resend",
65
+ "rel": "resend",
66
+ "method": "POST",
67
+ "encType": "application/json"
68
+ }
69
+ ],
70
+ "event_version": "1.0",
71
+ "resource_version": "2.0"
72
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "id": "WH-8Y6524781B2662740-6BA13970S75831204",
3
+ "create_time": "2015-10-07T16:58:15Z",
4
+ "resource_type": "capture",
5
+ "event_type": "PAYMENT.CAPTURE.DENIED",
6
+ "summary": "A EUR 0.5 EUR capture payment was denied",
7
+ "resource": {
8
+ "parent_payment": "PAY-6AG64245W53716013KYKUWNI",
9
+ "update_time": "2015-10-07T16:42:57Z",
10
+ "amount": {
11
+ "total": "0.50",
12
+ "currency": "EUR"
13
+ },
14
+ "create_time": "2015-10-07T16:42:50Z",
15
+ "links": [
16
+ {
17
+ "href": "https://api.paypal.com/v1/payments/capture/1YH34677BD7819356",
18
+ "rel": "self",
19
+ "method": "GET"
20
+ },
21
+ {
22
+ "href": "https://api.paypal.com/v1/payments/capture/1YH34677BD7819356/refund",
23
+ "rel": "refund",
24
+ "method": "POST"
25
+ },
26
+ {
27
+ "href": "https://api.paypal.com/v1/payments/payment/PAY-6AG64245W53716013KYKUWNI",
28
+ "rel": "parent_payment",
29
+ "method": "GET"
30
+ }
31
+ ],
32
+ "id": "1YH34677BD7819356",
33
+ "state": "denied"
34
+ },
35
+ "links": [
36
+ {
37
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-8Y6524781B2662740-6BA13970S75831204",
38
+ "rel": "self",
39
+ "method": "GET",
40
+ "encType": "application/json"
41
+ },
42
+ {
43
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-8Y6524781B2662740-6BA13970S75831204/resend",
44
+ "rel": "resend",
45
+ "method": "POST",
46
+ "encType": "application/json"
47
+ }
48
+ ],
49
+ "event_version": "1.0"
50
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "id": "WH-4SW78779LY2325805-07E03580SX1414828",
3
+ "create_time": "2019-02-14T22:20:08.370Z",
4
+ "resource_type": "capture",
5
+ "event_type": "PAYMENT.CAPTURE.DENIED",
6
+ "summary": "A AUD 2.51 AUD capture payment was denied",
7
+ "resource": {
8
+ "amount": {
9
+ "currency_code": "AUD",
10
+ "value": "2.51"
11
+ },
12
+ "seller_protection": {
13
+ "status": "ELIGIBLE",
14
+ "dispute_categories": [
15
+ "ITEM_NOT_RECEIVED",
16
+ "UNAUTHORIZED_TRANSACTION"
17
+ ]
18
+ },
19
+ "update_time": "2019-02-14T22:20:01Z",
20
+ "create_time": "2019-02-14T22:18:14Z",
21
+ "final_capture": true,
22
+ "seller_receivable_breakdown": {
23
+ "gross_amount": {
24
+ "currency_code": "AUD",
25
+ "value": "2.51"
26
+ },
27
+ "net_amount": {
28
+ "currency_code": "AUD",
29
+ "value": "2.51"
30
+ }
31
+ },
32
+ "links": [
33
+ {
34
+ "href": "https://api.paypal.com/v2/payments/captures/7NW873794T343360M",
35
+ "rel": "self",
36
+ "method": "GET"
37
+ },
38
+ {
39
+ "href": "https://api.paypal.com/v2/payments/captures/7NW873794T343360M/refund",
40
+ "rel": "refund",
41
+ "method": "POST"
42
+ },
43
+ {
44
+ "href": "https://api.paypal.com/v2/payments/authorizations/2W543679LP5841156",
45
+ "rel": "up",
46
+ "method": "GET"
47
+ }
48
+ ],
49
+ "id": "7NW873794T343360M",
50
+ "status": "DECLINED"
51
+ },
52
+ "links": [
53
+ {
54
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-4SW78779LY2325805-07E03580SX1414828",
55
+ "rel": "self",
56
+ "method": "GET",
57
+ "encType": "application/json"
58
+ },
59
+ {
60
+ "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-4SW78779LY2325805-07E03580SX1414828/resend",
61
+ "rel": "resend",
62
+ "method": "POST",
63
+ "encType": "application/json"
64
+ }
65
+ ],
66
+ "event_version": "1.0",
67
+ "resource_version": "2.0"
68
+ }