网站强制启用htpps银行回写问题

问题描述

网站最初未强制启用htpps,使用http、https都能访问。银行回写支付结果的地址,设置的是http协议地址。各银行设置方法不一。
启用强制https访问时,未考虑银行回写问题,导致支付结果未能正常被serlet接收。

解决方案:

Nginx中,匹配银行通知规则不强制跳转https

server {
        listen       80;
        server_name  xxx.xxx.com;
        charset utf-8;
       if ($request_method ~* HEAD|DELETE|PUT) {
            return 403;
        }
       location / {
            return 301 https://$server_name$request_uri;
        }
        location ^~ /xxx/pay/notify {
            proxy_connect_timeout 1;
            proxy_pass http://ufshop;
            proxy_buffering off;
            proxy_redirect default;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-NginX-Proxy true;
            add_header X-Frame-options SAMEORIGIN;
        }
}

你可能感兴趣的:(网站强制启用htpps银行回写问题)