0

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 をトリガーしますか? そこにも何も得られません-サンドボックス用に設定されています。どこを見るべきかについての提案をありがとう。

4

0 に答える 0