1.编写WechatNotifyAttribute

由于控制器拿不到request,需要在过滤器注入参数

public class WechatNotifyAttribute: ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext) {
        var syncIOFeature = context.Features.Get<IHttpBodyControlFeature>();
        if (syncIOFeature != null)
        {
            syncIOFeature.AllowSynchronousIO = true;
        }
        var request = filterContext.HttpContext.Request;
        request.EnableBuffering();
        var reader = new StreamReader(request.Body);

        string content = reader.ReadToEnd();
        request.Body.Position = 0;
        filterContext.ActionArguments.Add("content", content);
        base.OnActionExecuting(filterContext);
    }
}

2.使用方式

[WechatNotify]
public async Task<string> GzhPayNotify(string content)
{
    Log.Debug("微信充值回调开始:\n"+content);
    ......
}