问题描述
使用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似乎也是不行的。。