0

複数のアイテムを含むカートの配列を処理および処理する方法がよくわからないため、PHP カスタム Paypal IPN スクリプトでいくつかの問題が発生しています。

私が達成しようとしているのは、製品ごとに POST 呼び出しがサーバーに返され、一意の ID を使用してその製品の在庫数を減らすことです。

Paypal IPN はアイテム番号を 、 、 などとして返送しますitem_number_1item_number_2item_number_3の方法でデータを取得できます。

$id_exp = $_POST['/^item_number(\d*)$/'];
$qty_exp = $_POST['/^quantity(\d*)$/'];

私がする必要があるのは$id_exp、アレイを作成しfile_get_contents、各製品に対して実行して、ID と QTY を含む URL に POST することです。これは達成可能ですか?

簡単に言えば、最終結果は、IPN スクリプトがストック リスナーにアクセスすることです (ここではデモンストレーションのみに GET を使用します)。http://www.site.com/listener?prod_id=12345&decrement=3

123,456,789更新: と呼ばれる var に保存されているように、アイテム ID の配列が正しく印刷されるようになりました。$id_string現在、配列内の各 ID に対して次のコマンドを実行しようとしています。

foreach ($id_string as $value){
        $url = 'http://myserver.com';
        $data = array('product_id' => $value, 're_stock' => 'true');
        $get = array();

            foreach($data as $k => $v){
            $post[] = $k . '=' . urlencode($v);
            }

            $post = implode('&', $post);

            $opts = array('http' =>
            array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $post
            )
            );

        $context = stream_context_create($opts);

        file_get_contents($url, false, $context);

    }

しかし、何も起こっていません。この段階でのフィードバックをお待ちしております。

4

1 に答える 1

0

このようなもの?

$id_exp = array();

foreach (preg_grep('~^item_number[0-9]+$~', array_keys($_POST)) as $key)
{
    $id_exp[preg_replace('~^item_number([0-9]+)$~', '$1', $key)] = $_POST[$key];
}

print_r($id_exp);
于 2013-06-29T04:50:06.043 に答える