0

Paypal サンドボックスでバイヤーとセラーのテスト アカウントを作成しました。Paypalボタンも作りました。

Paypal ボタン:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
  <input type="hidden" name="cmd" value="_s-xclick">
  <input type="hidden" name="hosted_button_id" value="6M75NVDV8ZHR8">
  <input type="image" src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
  <img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

IPN を有効にして、そこに通知 URL を設定しました。
Paypal ボタンを作成する際に、トランザクションが成功するようにサイトの URL を挿入します。
成功したトランザクションと IPN 通知は同じ URL を共有します。

参照 URL の PHP スクリプトは次のとおりです。

<?php  
  // read the post from PayPal system and add 'cmd'  
  $req = 'cmd=_notify-validate';  
  print_r($_POST);

  foreach ($_POST as $key => $value) {  
    echo "loop";
    echo $value = urlencode(stripslashes($value));  
    echo $req .= "&$key=$value";  
  }

  // 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";  
  
  $fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30); 
  
  if (!$fp) {  
    // HTTP ERROR  
  } else {  
    fputs ($fp, $header . $req);  

    while (!feof($fp)) {  
      $res = fgets ($fp, 1024);  
      if (strcmp ($res, "VERIFIED") == 0) {  
        echo " PAYMENT VALIDATED & VERIFIED! "; 
      }
      else if (strcmp ($res, "INVALID") == 0) {
        echo " PAYMENT INVALID & INVESTIGATE MANUALY!  ";
      }  
    }  
    fclose ($fp);  
  }
?>

print_r関数は印刷するだけでArray()、 foreach ループでは何も表示されません。

のみPAYMENT INVALID & INVESTIGATE MANUALLY!がページに表示されます。

ここで何が問題なのですか?
成功したトランザクションにデータを挿入したいからです。


更新しました

これが私の投稿配列です:

Array
(
)
DoDirectPayment failed: Array
(
    [TIMESTAMP] => 2012%2d05%2d03T12%3a54%3a08Z
    [CORRELATIONID] => 51176eef6a5
    [ACK] => Failure
    [VERSION] => 51%2e0
    [BUILD] => 2860716
    [L_ERRORCODE0] => 10527
    [L_ERRORCODE1] => 10563
    [L_ERRORCODE2] => 10562
    [L_ERRORCODE3] => 81234
    [L_SHORTMESSAGE0] => Invalid%20Data
    [L_SHORTMESSAGE1] => Invalid%20Data
    [L_SHORTMESSAGE2] => Invalid%20Data
    [L_SHORTMESSAGE3] => Invalid%20Parameter
    [L_LONGMESSAGE0] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20number%20and%20type%2e
    [L_LONGMESSAGE1] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20expiration%20month%2e
    [L_LONGMESSAGE2] => This%20transaction%20cannot%20be%20processed%2e%20Please%20enter%20a%20valid%20credit%20card%20expiration%20year%2e
    [L_LONGMESSAGE3] => ExpDate%20%3a%20Invalid%20Parameter
    [L_SEVERITYCODE0] => Error
    [L_SEVERITYCODE1] => Error
    [L_SEVERITYCODE2] => Error
    [L_SEVERITYCODE3] => Error
)

Ipn.php コードを変更したところ、「無効なクレジット カード番号」というエラーが表示されました。

事前設定済みを使用して購入者アカウントを作成しましたが、クレジット カード番号がランダムに生成されます。

クレジット カードの追加/編集を行ったところ、住所と有効期限のみカード番号を編集できません。

また、このクレジット カードのエラーが別の Paypal アカウント メッセージに割り当てられている代わりに、新しいクレジット カードを追加することもできません。

4

1 に答える 1

0

print_r は、その出力をペイパルのスクリプトにエコーします。後で表示できるように、おそらくファイルに記録する必要があります

于 2012-05-03T10:04:52.973 に答える