2021-08-02 16:37:04 +08:00
|
|
|
## 如何验证回调通知事件签名?
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
> 请先自行阅读:
|
|
|
|
>
|
|
|
|
> [《微信官方文档 - 开始开发:接入指南》](https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html)
|
|
|
|
|
2022-02-28 22:20:37 +08:00
|
|
|
同样地,你既可以利用本库提供的 `SHA1Utility` 工具类自行进行签名验证,也可以通过扩展方法实现:
|
2021-08-02 16:37:04 +08:00
|
|
|
|
|
|
|
```csharp
|
2023-03-02 19:36:47 +08:00
|
|
|
/* 在初始化客户端时需指定服务器推送的相关参数 */
|
|
|
|
var options = new WechatApiClientOptions()
|
|
|
|
{
|
|
|
|
// 其他配置项略
|
|
|
|
PushToken = "Token",
|
|
|
|
PushEncodingAESKey = "EncodingAESKey"
|
|
|
|
};
|
2024-02-07 11:22:05 +08:00
|
|
|
var client = WechatApiClientBuilder.Create(options).Build();
|
2023-03-02 19:36:47 +08:00
|
|
|
|
2021-08-02 20:25:28 +08:00
|
|
|
/* 验证微信服务器 */
|
|
|
|
bool ret = client.VerifyEventSignatureForEcho(
|
2024-02-07 11:22:05 +08:00
|
|
|
webhookTimestamp: "微信回调通知中的 timestamp 字段",
|
|
|
|
webhookNonce: "微信回调通知中的 nonce 字段",
|
|
|
|
webhookSignature: "微信回调通知中的 signature 字段"
|
2021-08-02 16:37:04 +08:00
|
|
|
);
|
2021-08-02 20:25:28 +08:00
|
|
|
|
|
|
|
/* 验证安全模式下 XML 消息的签名 */
|
|
|
|
bool ret = client.VerifyEventSignatureFromXml(
|
2024-02-07 11:22:05 +08:00
|
|
|
webhookXml: "微信公众平台发来的通知内容,形如:<xml><Encrypt>...</Encrypt></xml>"
|
2022-02-28 22:20:37 +08:00
|
|
|
);
|
|
|
|
|
|
|
|
/* 验证安全模式下 JSON 消息的签名 */
|
|
|
|
bool ret = client.VerifyEventSignatureFromJson(
|
2024-02-07 11:22:05 +08:00
|
|
|
webhookJson: "微信公众平台发来的通知内容,形如:{\"Encrypt\":\"...\"}"
|
2021-08-02 20:25:28 +08:00
|
|
|
);
|
2021-08-02 16:37:04 +08:00
|
|
|
```
|