处理付款事件的java paypal webhook控制器

处理付款事件的java paypal webhook控制器,java,paypal,payment-gateway,webhooks,paypal-sandbox,Java,Paypal,Payment Gateway,Webhooks,Paypal Sandbox,我需要实现webhook控制器来处理完整的支付事件,所以我如何处理或订阅。 `public IActionResult Webhook() { //APIContext对象可以包含受信任证书的可选覆盖。 var apiContext=PayPalConfiguration.GetAPIContext() } 这是我得到的javascript示例,但与我希望在java中处理程序实现的示例相同。当控制器被击中时,需要哪些参数。对于,Webhook事件名称列表如下:,特别是您希望的是PAYMENT.S

我需要实现webhook控制器来处理完整的支付事件,所以我如何处理或订阅。 `public IActionResult Webhook() { //APIContext对象可以包含受信任证书的可选覆盖。 var apiContext=PayPalConfiguration.GetAPIContext()

}

这是我得到的javascript示例,但与我希望在java中处理程序实现的示例相同。当控制器被击中时,需要哪些参数。

对于,Webhook事件名称列表如下:,特别是您希望的是
PAYMENT.SALE.COMPLETED
(而不是“.CAPTURE”。)

您可能会发现此处的信息很有帮助:

我需要获得付款(即收到付款),此时我需要得到通知,并且该捕获事件可用,对吗?因此,我需要支付对象。
// Get the received request's headers
var requestheaders = HttpContext.Request.Headers;

// Get the received request's body
var requestBody = string.Empty;
using (var reader = new System.IO.StreamReader(HttpContext.Request.Body))
{
    requestBody = reader.ReadToEnd();
}

dynamic jsonBody = JObject.Parse(requestBody);
string webhookId = jsonBody.id;
var ev = WebhookEvent.Get(apiContext, webhookId);
 
// We have all the information the SDK needs, so perform the validation.
// Note: at least on Sandbox environment this returns false.
// var isValid = WebhookEvent.ValidateReceivedEvent(apiContext, ToNameValueCollection(requestheaders), requestBody, webhookId);
 
switch (ev.event_type)
{
    case "PAYMENT.CAPTURE.COMPLETED":
        // Handle payment completed
        break;
    case "PAYMENT.CAPTURE.DENIED":
        // Handle payment denied
        break;
        // Handle other webhooks
    default:
        break;
}

return new HttpStatusCodeResult(200);