newbe エラーが発生したので、もう一度試してみましょう。
このウェブサイトは非営利団体で、数年前に PayPal の「寄付」ページを追加しました。ショッピング カートとして行われます (3 種類の寄付および/またはメンバーシップ)。PP は、PDT データを使用してサンキュー ページを作成し、ダブル オプトイン メーリング リストの Cookie を設定する php スクリプトに戻ります。IPN は、お礼メール、オプトイン メール、データベースなどを送信します。正常に動作します。
チケット予約ページに PayPal オプションを追加しました。ここでも、PayPal を呼び出し、サンドボックスで正常に動作するように見えるショッピング カートです。PayPal の画面は予想どおりで、2 つの foo メールは正しいように見えます。呼び出される別のリターン URL を渡しますが、手が震えます。このコードは、以前の取り組みから切り取り、PayPal PDT の例に基づいています。
// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-synch';
$header = "";
$tx_token = $_GET['tx'];
$req .= "&tx=$tx_token&at=$auth_token"; // see header for def of auth_token
// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
// If possible, securely post back to paypal using HTTPS
// Your PHP server will need to be SSL enabled
$fp = fsockopen ($socket, $port, $errno, $errstr, 30); // see header
if (!$fp)
{
// HTTP ERROR
mail($email, "PDT Error", "fsockopen error " . $errno . ": " . $errstr);
}
else
{
fputs ($fp, $header . $req);
// read the body data
$res = '';
$headerdone = false;
while (!feof($fp))
{
$line = fgets ($fp, 1024);
echo $line . "<br>";
if (strcmp($line, "\r\n") == 0)
{
// read the header
$headerdone = true;
}
else if ($headerdone)
{
// header has been read. now read the contents
$res .= $line;
}
}
追加されたエコーの結果は次のとおりです。
HTTP/1.0 302 見つかりました
場所: https://www.sandbox.paypal.com
サーバー: BigIP
接続: 閉じる
コンテンツの長さ: 0
変数 $auth_token、$socket、および $port は、サンドボックスとライブを切り替える「if ($test)」で設定されます。明らかに、長さのペイロードが 0 の場合、他に何も機能しません。
ここで、新しい Auth_token について読みました。SUCCESS のテストに関して、私が行っていない他のいくつかの問題があります。
覚えていませんが、サンドボックスは IPN をトリガーしますか? そこにも何も得られません-サンドボックス用に設定されています。どこを見るべきかについての提案をありがとう。