接入百度CDN后微信支付无法使用?

接入百度CDN后微信支付无法使用?插图

最近主机吧在修改博客的时候,发现微信支付出现了异常,无法正常出微信二维码。

主机吧以找春哥查了下,则开始以为是微付支付平台设置出了问题,后来一查原来并不是。

经过多方查询后,原来是问题出在使用的百度CDN上,我们都知道一般使用CDN后程序都是无法识别真实用户IP的,而微信支付HTTPS是需要识别真实用户IP,才可以正常付款的,也这也导致程序报错:invalid spbill_create_ip错误。

要怎么解决呢?要么取消CDN? 取消CDN肯定不行,因为这样服务器就裸奔了,肯定会被一些无聊的人攻击的。

经过查询后,CDN想要识别访客IP是可以实现的,一般CDN都是通过转发的HTTP头信息中增加 X-Forwarded-For 信息,用于记录客户端的真实IP,那么问题就好解决了,直接在wordpress文件functions.php

写入代码:

function b2_get_user_ip() {
if ( ! empty( $_SERVER[‘HTTP_CLIENT_IP’] ) ) {

$ip = $_SERVER[‘HTTP_CLIENT_IP’];
} elseif ( ! empty( $_SERVER[‘HTTP_X_FORWARDED_FOR’] ) ) {

$ip = $_SERVER[‘HTTP_X_FORWARDED_FOR’];
} else {
$ip = $_SERVER[‘REMOTE_ADDR’];
}

if(strpos($ip,’,’) !== false){
$ips = explode(‘,’,$ip);
$ip = $ips[0];
}

return $ip;
}

即可完成,经测试后微信支付正常了!果然有大牛就是不一样,解决效率很高,各位同学可以根据这个原因解决HTTPS使用微信支付问题,主机吧这里只是作个参考。

给TA打赏
共{{data.count}}人
人已打赏
2 条回复 A文章作者 M管理员
  1. 其他网站使用 也会出现这种情况吗?

    • 恩 微信支付会有问题,用CDN的都会出现支付不了情况 这种情况只出现在HTTPS的网站上 HTTP没问题

在线客服
主机帮
我们将24小时内回复。
2024-11-22 12:50:18
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[QQ客服]
176363189
当幸福来敲门
[小黄]
17307799197
[企业邮箱]
sudu@yunjiasu.cc
取消

选择聊天工具: