最近模板兔有个客户在使用erphpdown插件里面的paypal功能时遇到如上问题,排除了防火墙拦截的因素。我在查看网站日志时发现有一条回调请求是
/wp-content/plugins/erphpdown/payment/paypal.php?currencyCodeType=USD&paymentType=Sale&token=*******&PayerID=*****
从上面路径可以看出链接的&符号被服务器转义成了&导致网站没有获取到这个回调请求的参数,那么如何处理呢?
这种情况可能是服务器为了防止XSS攻击,自动htmlspecialchars进行转义了,如果我们不换服务器,那么只能通过PHP来处理下。部分处理部分的代码如下:
$ice_payapl_api_rmb = get_option('ice_payapl_api_rmb')?get_option('ice_payapl_api_rmb'):1;//汇率 if(isset($_REQUEST['currencyCodeType']) && !isset($_REQUEST['token'])){ $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://"; wp_redirect( str_replace('&','&',$protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) ); } elseif(!isset($_REQUEST['token'])){ $epd_order = _epd_create_page_order('paypal'); ...
0 个评论