我的Paypal IPN Listener
有问题。我使用Stack Overflow上的示例代码,这似乎适用于某些人,但不适合我。
无论我使用哪个示例代码,当我尝试将消息发送回我的paypal沙盒帐户时,我总会收到相同的错误消息(https://sandbox.paypal.com)
"错误请求400"。
Is there any sample for PayPal IPN
使用此示例代码:https://stackoverflow.com/a/40079922/1804084 我可以看到我从Paypal收到一条IPN消息并将其正确复制到我的模型中,但是当它发送回我的Sandbox时它失败并且出现了错误请求400"。
另一个问题是,我无法调试该代码,因为它作为App Service托管在Microsoft Azure云中,而我的断点在远程调试时永远不会在PayPalValidator
类中受到影响,所以我不能看看示例代码发回的内容。我也尝试了在网上找到的每个解决方案,让我的断点得到了打击,但仍然没有成功。我认为使用Azure Cloud是一个非常糟糕的选择,因为它让我的生活变得更加艰难。
response = client.PostAsync("cgi-bin/webscr", content).Result;
编码可能有问题?!
我尝试使用https(ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
)并没有使用它,我将沙盒帐户配置为使用UTF-8 encoding
。仍然没有成功。
我还尝试添加主机标头client.DefaultRequestHeaders.Host(paypalUrl)
似乎是某些人的解决方案,但也没有成功。
有人可以告诉我我使用的示例代码有什么问题吗?甚至更好如果有人能够为我提供最新的C#
IPN侦听器代码。
也许我的控制台输出可以提供帮助:
w3wp.exe信息:0:请求,方法= POST,网址=://myservice.azurewebsites.net/api/paypal/ipn,消息='://myservice.azurewebsites.net/api/贝宝/ IPN' w3wp.exe信息:0:消息=' PayPal',Operation = DefaultHttpControllerSelector.SelectController w3wp.exe信息:0:消息=' myserviceService.Controllers.PayPalController',Operation = DefaultHttpControllerActivator.Create w3wp.exe信息:0:消息=' myserviceService.Controllers.PayPalController',Operation = HttpControllerDescriptor.CreateController w3wp.exe信息:0:消息='选择的操作' ReceiveIPN(IPNBindingModel模型)'',Operation = ApiControllerActionSelector.SelectAction w3wp.exe信息:0:消息='参数'型号'绑定到值' myserviceService.DataObjects.IPNBindingModel'',Operation = ModelBinderParameterBinding.ExecuteBindingAsync w3wp.exe信息:0:消息='模型状态有效。值:model = myserviceService.DataObjects.IPNBindingModel',Operation = HttpActionBinding.ExecuteBindingAsync w3wp.exe信息:0:消息='将使用相同的' JsonMediaTypeFormatter' formatter',Operation = JsonMediaTypeFormatter.GetPerRequestFormatterInstance w3wp.exe信息:0:消息='选择格式化程序=' JsonMediaTypeFormatter',content-type =' application / json; charset = utf-8'',Operation = DefaultContentNegotiator.Negotiate w3wp.exe信息:0:Operation = MobileAppControllerAttribute.OnActionExecutingAsync,Status = 400(BadRequest) w3wp.exe信息:0:Operation = PayPalController.ExecuteAsync,Status = 400(BadRequest) w3wp.exe信息:0:响应,状态= 400(BadRequest),方法= POST,Url = http://myservice.azurewebsites.net/api/paypal/ipn,消息='内容类型=' application / json; charset = utf-8',content-length = unknown' w3wp.exe信息:0:Operation = JsonMediaTypeFormatter.WriteToStreamAsync w3wp.exe信息:0:Operation = PayPalController.Dispose
是否真的没有人使用有效的IPN侦听器示例。甚至会为此付出代价......