1

エンドユーザーにウォルマートを使用せずに、次のコードを使用してギフトカードの残高を取得しようとしています。

<?php 
$url = "https://www.walmart.com/cservice/ProcessShoppingCard.do";
//
$h = curl_init();

curl_setopt($h, CURLOPT_URL, $url); 
curl_setopt($h, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($h, CURLOPT_POST, true);
curl_setopt($h, CURLOPT_POSTFIELDS, array(
'cardNumber' => '1234567890123456',
'pin' => '1234',
'GetCardBalance' => 'GetCardBalance'
));
curl_setopt($h, CURLOPT_HEADER, true);
curl_setopt($h, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($h);
echo $result;


?>

しかし、結果ではなくページのみを表示しているようです。ウォルマートで使用されているフォームを調べたところ、cardNumber、pin、および GetCardBalance の 3 つのフィールドしかありません。

私はどれを使用しましたが、まだ結果が得られていません。

この URL https://www.walmart.com/cservice/ProcessShoppingCard.doにアクセス して残高を確認しようとすると、応答が表示されます。

私が間違っているのは何ですか?

アドバイスをください、ありがとう!

4

1 に答える 1

0

わかりました、何度も試した後、最終的に次のコードを使用して機能するようになりました。POSTFIELDS メソッドを適切に使用していませんでした。そして、フォームを送信するときにどの変数が送信されているかを確認するために Firefox Firebug を使用し、それに従ってそれらを使用したところ、すべて機能しました :)

$url = "https://www.walmart.com/cservice/ProcessShoppingCard.do";
//
$h = curl_init();
curl_setopt($h, CURLOPT_URL, $url); 
curl_setopt($h, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($h, CURLOPT_POST, true);
curl_setopt($h, CURLOPT_POSTFIELDS, "cardNumber=1234567890123456&pin=1234&GetCardBalance.x=90&GetCardBalance.y=8");
curl_setopt($h, CURLOPT_HEADER, true);
curl_setopt($h, CURLOPT_RETURNTRANSFER, true);
//
$result = curl_exec($h);
echo $result;

皆様のご協力とご提案に感謝いたします。

于 2012-11-15T00:42:01.760 に答える