最近模板兔有个客户在使用erphpdown插件里面的paypal功能时遇到如上问题,排除了防火墙拦截的因素。我在查看网站日志时发现有一条回调请求是
/wp-content/plugins/erphpdown/payment/paypal.php?currencyCodeType=USD&paymentType=Sale&token=*******&PayerID=*****
从上面路径可以看出链接的&符号被服务器转义成了&导致网站没有获取到这个回调请求的参数,那么如何处理呢?
这种情况可能是服务器为了防止XSS攻击,自动htmlspecialchars进行转义了,如果我们不换服务器,那么只能通过PHP来处理下。部分处理部分的代码如下:
1 |
$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'); ... |
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。