essensoft / paylink

一套基于 .NET 开发的支付SDK,它简化了API调用及通知的处理流程。
MIT License
1.77k stars 484 forks source link

Request.Body多次读取问题 #152

Closed rain7788 closed 1 year ago

rain7788 commented 1 year ago

如果项目使用了Request.Body,支付完成后回调时候无法获取body内容,需要我手动context.Request.Body.Seek(0, SeekOrigin.Begin),是否可以兼容一下?

roc916 commented 1 year ago

已读取Request.Body,可以直接传入读取后的内容,不必传入Request, 再次读取Body。 不然就需要手动Seek了。

roc916 commented 1 year ago

具体可参考:https://github.com/essensoft/paylink/blob/dev/src/Essensoft.Paylink.WeChatPay/V3/WeChatPayNotifyClient.cs#L37-L41

rain7788 commented 1 year ago

好的,我刚在回调接口Seek了一下body,好像也可以。

rain7788 commented 1 year ago

已解决,因为我有其他线程可能也会读取body,所以如果读取之前if (Request.Body.CanSeek) { Request.Body.Seek(0, SeekOrigin.Begin); }一下是不是更好。