【发布时间】:2016-04-25 16:24:45
【问题描述】:
我一直在尝试设置 PayPal Webhooks(在沙盒模式下)以接收有关付款被拒和付款成功的通知。我的问题是我无法进行验证。关于我的尝试的一些细节:
- 该应用是 OWIN 自托管 Web API 2。
- 作为 Azure Web 应用托管,也在 Azure 上进行了测试。
- 我将 Paypal 仪表板中的 Paypal Webhook 接收方 URL 设置为我在 Azure 上的端点的 URL。
- 我使用 Paypal 仪表板中的 Paypal Webhooks 模拟器向 Azure 端点发送消息。
我尝试通过两种方式监听 Webhook 调用:
- ASP.NET Webhook 接收器 (http://blogs.msdn.com/b/webdev/archive/2015/09/04/introducing-microsoft-asp-net-webhooks-preview.aspx),它不起作用。我收到错误消息“WebHook 验证失败:”
-
尝试创建一个 Web API 端点来接收和验证请求,也没有成功。代码在这里:
[HttpPost] public async Task<IHttpActionResult> PaymentCaptureCompleted() { // Get the received request's headers NameValueCollection nvc = new NameValueCollection(); foreach (var item in Request.Headers) { nvc.Add(item.Key, string.Join(",", item.Value)); } // Get the received request's body var requestBody = await Request.Content.ReadAsStringAsync(); var isValid = WebhookEvent.ValidateReceivedEvent(Api, nvc, requestBody, ConfigurationManager.AppSettings["paypal.webhook.id"]); if (isValid) { return Ok(); } else { return BadRequest("Could not validate request"); } }
当然还有更多细节,但我不确定回答我的问题需要多少信息。只要让我知道您需要什么,我就会编辑这个问题。
【问题讨论】:
-
你能告诉我你的解决方案吗?接收 paypal webhook 时,我总是收到 500 个服务器错误。
-
还没有回到这个问题。一旦我这样做了,我会留下另一条评论,并验证它现在是否有效。
标签: c# .net paypal paypal-sandbox paypal-rest-sdk