我正在编写一个应用程序来接收和处理 wordpress 中的即时付款通知消息。它是对带有重写规则的“虚拟”url 发出的 POST 请求。然而问题是只有 GET 变量是可访问的,我无法访问 post 变量:
两者:
导致一个空数组print_r($wp->query_vars['ccustfirstname']);
print_r($_POST);
我修改了现有代码以匹配我的情况:
function ao_add_rewrite_rule() {
print_r($_REQUEST);
$ipn_parameters=array("ccustfullname","ccustfirstname", ... );
foreach ($ipn_parameters as $key => $value) {
add_rewrite_tag("%$value%",".");
}
add_rewrite_tag("%arevico_api%",".","");
add_rewrite_rule( 'ipn', 'index.php?&arevico_api=ipn', 'top');
add_rewrite_rule( 'hoplink', 'index.php?&arevico_api=hop', 'top');
add_rewrite_rule( 'pay', 'index.php?&arevico_api=pay', 'top');
flush_rewrite_rules();//TODO: call only when needed
}
add_action( 'parse_request', 'wpse9870_parse_request' );
function wpse9870_parse_request( &$wp )
{
if (!empty($wp->query_vars['arevico_api'])) {
switch ($wp->query_vars['arevico_api']){
case "ipn":
print_r($wp->query_vars['ccustfirstname']);
print_r($_POST);
die();
// require_once(AREVICO_PLG_BP . "ipn.php");
// $ArevicoIPN=new ArevicoIPN();
break ;
default:
break;
}
}
return;
}
请注意,arevico_api get 参数确实会达到低谷,但 POST 参数不会。我正在通过用于 chrome 的 Simple Rest Client 发送示例发布数据来测试应用程序。如何访问帖子参数