You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Payumoney支付成功后应用返回404错误求助

解决Payumoney跨站POST回调404问题

嘿,我之前也踩过类似支付回调404的坑,结合你的情况来看,大概率不是RequestMapping没配置对(毕竟你自己用表单测试能正常访问),而是服务器或框架的安全拦截、URL细节匹配这类问题在搞鬼,给你几个针对性的排查方向:

  • 先排查框架的CSRF防护拦截
    像Spring Boot这类主流Java框架,默认会开启CSRF防护,跨站的POST请求如果没携带CSRF Token会被悄悄拦截,表现出来就是404(实际是被拒绝了)。你可以先给回调路径单独放行CSRF检查试试,比如在Spring Security配置里加这段:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/你的回调接口路径");
        // 其他原有配置保持不变
    }
    

    如果放开后能正常接收,那就是CSRF的锅。

  • 检查服务器的CORS或反向代理配置
    虽然Payumoney是服务器端发起的请求(不是浏览器AJAX跨域),但有些服务器(比如Nginx)或者云服务商的WAF可能会拦截非同源请求。你可以在服务器配置里给Payumoney的域名开白:
    比如Nginx里这么配置:

    location /你的回调接口路径 {
        add_header Access-Control-Allow-Origin "https://test.payumoney.com";
        add_header Access-Control-Allow-Methods "POST";
        add_header Access-Control-Allow-Headers "Content-Type";
        // 你的代理/转发逻辑
    }
    

    生产环境别用*,指定具体的Payumoney域名更安全。

  • 核对回调URL的细节一致性
    仔细检查Payumoney后台配置的回调URL和你应用里的RequestMapping路径:有没有大小写不一致?末尾多了或少了斜杠?参数拼接错误?比如你代码里是/payment/callback,但Payumoney那边配的是/Payment/Callback,有些服务器对URL大小写敏感,直接就返回404了。

  • 确认请求方法是否明确指定
    确保你的回调接口明确接收POST请求,别只写@RequestMapping,要用@PostMapping或者@RequestMapping(method = RequestMethod.POST),不然默认可能只支持GET请求,Payumoney发POST自然就找不到接口了。

  • 排查防火墙/WAF拦截
    如果你的服务器挂了防火墙或者云WAF,可能会把Payumoney的请求当成恶意流量拦下来。去服务器日志里搜搜Payumoney的IP,看看有没有被拒绝的记录,把他们的IP段加入白名单就行。

如果还是不行,用Postman完全模拟Payumoney的请求头和参数发一次,要是Postman能访问,那大概率是Payumoney那边的回调URL配置错了;要是Postman也404,那再回头检查你的路径和框架配置。

内容的提问来源于stack exchange,提问作者Srikanth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:33:07