wordpress で即時支払い通知メッセージを受信して処理するアプリケーションを作成しています。これは、書き換えルールを使用して「仮想」URL に対して行われる POST 要求です。ただし、問題は GET vars のみがアクセス可能であり、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 経由で送信して、アプリケーションをテストしています。投稿パラメーターにアクセスするにはどうすればよいですか