Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中验证PayPal webhook签名?_C#_Paypal - Fatal编程技术网

如何在C#中验证PayPal webhook签名?

如何在C#中验证PayPal webhook签名?,c#,paypal,C#,Paypal,我有一个C#应用程序从PayPal接收Webhook通知,我想验证Webhook签名 我已经发现了两个与同一问题相关的问题,但没有明确的工作解决方案 rsa.VerifyDat总是返回false,我认为问题在于计算CRC32值。 “如两个重复问题中所述” 有人能解释一下这个问题吗 请求机构: {"id":"WH-9UD89617J3011950R-48P38622S7224850U","event_version":"1.

我有一个C#应用程序从PayPal接收Webhook通知,我想验证Webhook签名

我已经发现了两个与同一问题相关的问题,但没有明确的工作解决方案


rsa.VerifyDat总是返回false,我认为问题在于计算CRC32值。 “如两个重复问题中所述”
有人能解释一下这个问题吗

请求机构:

{"id":"WH-9UD89617J3011950R-48P38622S7224850U","event_version":"1.0","create_time":"2021-04-12T13:48:33.815Z","resource_type":"checkout-order","resource_version":"2.0","event_type":"CHECKOUT.ORDER.APPROVED","summary":"An order has been approved by buyer","resource":{"create_time":"2021-04-12T13:47:55Z","purchase_units":[{"reference_id":"default","amount":{"currency_code":"EUR","value":"300.00"},"payee":{"email_address":"sb-6g4h15347490@business.example.com","merchant_id":"6WHMHKSMV4T4E","display_data":{"brand_name":"ieQ Shop"}},"shipping":{"name":{"full_name":"test buyer"},"address":{"address_line_1":"ESpachstr. 1","admin_area_2":"Freiburg","admin_area_1":"Empty","postal_code":"79111","country_code":"DE"}}}],"links":[{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C","rel":"update","method":"PATCH"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C/capture","rel":"capture","method":"POST"}],"id":"2PY82104UY468500C","intent":"CAPTURE","payer":{"name":{"given_name":"test","surname":"buyer"},"email_address":"rasheed.alsamawi-buyer@gmail.com","payer_id":"WQRMLHUWJA7H4","address":{"address_line_1":"Strasse Nummer X","address_line_2":"Strasse Nummer X","admin_area_2":"admin 2","admin_area_1":"admin 1","postal_code":"12345","country_code":"DE"}},"status":"APPROVED"},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9UD89617J3011950R-48P38622S7224850U","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9UD89617J3011950R-48P38622S7224850U/resend","rel":"resend","method":"POST"}]}    
请求标头:


谢谢

您的请求是否得到了200的良好响应状态?如果您收到一个400/500状态错误,在您尝试测试身体的CRC之前,您首先需要得到一个良好的响应。我肯定会得到一个响应,否则我会得到一个异常。webhookSignature包含来自成功PayPal请求的值,包括算法、时间、签名等。我并不总是信任例外。400/500错误不是例外(取决于代码处理状态的方式)。这是一个在正文中没有数据的响应。如果没有人,你将无法通过CRC检查。我更新了问题,显示了从PayPal收到的帖子。变量webhookSignature.webhook\u事件来自哪里?您正在从事件中获取全部消息?签名使用的是消息的哪一部分?在您请求验证传入邮件时,您似乎正在获得发送请求的签名。那么,这段代码是在客户端检查发送请求,还是在服务器中检查接收到的请求。没什么区别,只是想知道。
{"id":"WH-9UD89617J3011950R-48P38622S7224850U","event_version":"1.0","create_time":"2021-04-12T13:48:33.815Z","resource_type":"checkout-order","resource_version":"2.0","event_type":"CHECKOUT.ORDER.APPROVED","summary":"An order has been approved by buyer","resource":{"create_time":"2021-04-12T13:47:55Z","purchase_units":[{"reference_id":"default","amount":{"currency_code":"EUR","value":"300.00"},"payee":{"email_address":"sb-6g4h15347490@business.example.com","merchant_id":"6WHMHKSMV4T4E","display_data":{"brand_name":"ieQ Shop"}},"shipping":{"name":{"full_name":"test buyer"},"address":{"address_line_1":"ESpachstr. 1","admin_area_2":"Freiburg","admin_area_1":"Empty","postal_code":"79111","country_code":"DE"}}}],"links":[{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C","rel":"update","method":"PATCH"},{"href":"https://api.sandbox.paypal.com/v2/checkout/orders/2PY82104UY468500C/capture","rel":"capture","method":"POST"}],"id":"2PY82104UY468500C","intent":"CAPTURE","payer":{"name":{"given_name":"test","surname":"buyer"},"email_address":"rasheed.alsamawi-buyer@gmail.com","payer_id":"WQRMLHUWJA7H4","address":{"address_line_1":"Strasse Nummer X","address_line_2":"Strasse Nummer X","admin_area_2":"admin 2","admin_area_1":"admin 1","postal_code":"12345","country_code":"DE"}},"status":"APPROVED"},"links":[{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9UD89617J3011950R-48P38622S7224850U","rel":"self","method":"GET"},{"href":"https://api.sandbox.paypal.com/v1/notifications/webhooks-events/WH-9UD89617J3011950R-48P38622S7224850U/resend","rel":"resend","method":"POST"}]}