3

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 経由で送信して、アプリケーションをテストしています。投稿パラメーターにアクセスするにはどうすればよいですか

4

0 に答える 0