solidusio-contrib / solidus_paypal_marketplace

BSD 3-Clause "New" or "Revised" License
4 stars 3 forks source link

Allow Seller to ship order only after `PAYMENT.CAPTURE.COMPLETED` webhook is received #89

Closed Jecko-o closed 3 years ago

Jecko-o commented 3 years ago

PayPal API payment capture could result in a 201 response with a pending state. If this happens, Seller should be able to ship his order only after the PAYMENT.CAPTURE.COMPLETE webhook is received for all the order payments.

Payload ``` { "id": "WH-58D329510W468432D-8HN650336L201105X", "create_time": "2019-02-14T21:50:07.940Z", "resource_type": "capture", "event_type": "PAYMENT.CAPTURE.COMPLETED", "summary": "Payment completed for $ 2.51 USD", "resource": { "amount": { "currency_code": "USD", "value": "2.51" }, "seller_protection": { "status": "ELIGIBLE", "dispute_categories": [ "ITEM_NOT_RECEIVED", "UNAUTHORIZED_TRANSACTION" ] }, "update_time": "2019-02-14T21:49:58Z", "create_time": "2019-02-14T21:49:58Z", "final_capture": true, "seller_receivable_breakdown": { "gross_amount": { "currency_code": "USD", "value": "2.51" }, "paypal_fee": { "currency_code": "USD", "value": "0.37" }, "net_amount": { "currency_code": "USD", "value": "2.14" } }, "links": [ { "href": "https://api.paypal.com/v2/payments/captures/27M47624FP291604U", "rel": "self", "method": "GET" }, { "href": "https://api.paypal.com/v2/payments/captures/27M47624FP291604U/refund", "rel": "refund", "method": "POST" }, { "href": "https://api.paypal.com/v2/payments/authorizations/7W5147081L658180V", "rel": "up", "method": "GET" } ], "id": "27M47624FP291604U", "status": "COMPLETED" }, "links": [ { "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-58D329510W468432D-8HN650336L201105X", "rel": "self", "method": "GET", "encType": "application/json" }, { "href": "https://api.paypal.com/v1/notifications/webhooks-events/WH-58D329510W468432D-8HN650336L201105X/resend", "rel": "resend", "method": "POST", "encType": "application/json" } ], "event_version": "1.0", "resource_version": "2.0" } ```