asp.net 实现微信H5支付时碰到的IP问题

新手上路,请多包涵

问题描述

使用asp.net开发微信H5支付时遇到了一个棘手的问题
使用4g网络的时候,可以正确唤起微信的支付功能。但使用wifi时就会出现“网络环境未能通过安全验证,请稍微再试”的错误信息。

问题出现的环境背景及自己尝试过哪些方法

使用微信H5支付时需要提交一个spbill_create_ip的参数,此参数的值为当前请求的客户端ip。当wifi网络环境下,获取到的ip为局域网络中的一个内网ip。我猜想是因为这个问题导致了上麦年的错误。获取ip的

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
string ip = Request.Headers["X-Forwarded-For"] != null ? Request.Headers["X-Forwarded-For"].ToString() : "";

        if (ip == "")
        {
            ip = Request.ServerVariables["REMOTE_ADDR"] != null ? Request.ServerVariables["REMOTE_ADDR"].ToString() : "";
        }
        if (ip == "")
        {
            ip = Request.UserHostAddress;
        }
        return ip;

你期待的结果是什么?实际看到的错误信息又是什么?

这段代码确实可以绕过代理ip,获取到真实的客户端ip,但在wifi情况下这个真是的客户端ip似乎也是不行的。。

阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进