2011-08-08 9 views
2

ペイパルで支払いを行った人のみが閲覧可能なページを作成できますか?Paypalの支払いが行われた後にのみページにアクセスできますか?

イムは、彼らがページにアクセスする前に支払いを行うために、ユーザーを探して、そして誰かが行われ、支払いなしでページを表示しようとした場合、彼らは

は、これは単純な十分な作業ですエラーページにリダイレクトされます??ので、どのように私はこの設定については行くだろうし、任意のチュートリアルはオンラインがある場合>>

複雑なその何も作成しないその単純な2ページサイトイム....

イム今標準のPayPalボタンを使用してその単純なことはわかりません。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="V6RE5BUJCBAPU"> 
<input type="image" src="https://www.paypalobjects.com/en_US/GB/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.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"> 
</form> 

答えて

2

可能な解決策は実際にPayPalボタンを作成することです。ユーザーが支払いを行った後、支払いを成功させたことを知らせるカスタムページにリダイレクトすることができます。 PayPalに支払いデータをこのページに掲載させることができます。支払いが正常に完了したことをこの方法で確認することができます。

もしそうなら、あなたはSESSIONまたはCOOKIE変数を設定することができます。そしてあなたの "目標"ページ(支払い後にしかアクセスできないもの)でSESSIONまたはCOOKIEが設定されているかどうかを確認できます。そうでない場合は、支払いページにリダイレクトします。

のようなものを使用してください:?支払いは、ユーザーがのindex.phpにリダイレクトされて行われた後のお支払いだから、

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="return" value="http://www.yourwebsite.com/index.php?payment=success" /> 
</form> 

=成功、そこにあなたが読んでPayPalからの投稿:

<?php 
    $req = "cmd=_notify-synch"; 
    $tx_token = $_GET['tx']; 
    $auth_token = "<your auth token here>"; 
    $req .= "&tx=$tx_token&at=$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"; 

    $fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30); 
    if (!$fp) { 
     //HTTP ERROR 
    } 
    else { 
     fputs($fp, $header . $req); 

     //Read body data: 
     $res = ''; 
     $headerdone = false; 
     while (!feof($fp)) { 
      $line = fgets($fp, 1024); 
      if (strcmp($line, "\r\n") == 0) { 
       $headerdone = true; 
      } 
      else{ 
       $res .= $line; 
      } 
     } 

     //Parse the data: 
     $lines = explode("\n", $res); 
     $keyarray = array(); 
     if (strcmp($lines[0], "SUCCESS") == 0) { 
      //Checks the payment_status is completed 
      //check that txn_id has not been previously processed 
      for ($i = 0; $i < count($lines); $i++) { 
       list($key, $val) = explode("=", $lines[$i]); 
       $keyarray[urldecode($key)] = urldecode($val); 
      } 
     } 

     //Process payment: 
     $firstname = $keyarray['first_name']; 
     $lastname = $keyarray['last_name']; 

     //etc... you can either insert the payment data into your database for future reference 
     //Or set up a COOKIE for the user to be able to download your file. 
     //Or if your payment has been successful, redirect him to a "secret" page where the file is visible. 
    } 
?> 
+0

オンラインでのチュートリアルはありますか? 私は100%これについてどうやって行くのですか。 – Gezzamondo

+0

はい、私がPayPalのウェブサイトであなたに与えた例についてのチュートリアルはたくさんあります。私は1つを探します。 – Jules

+0

@Gezzamondo:多くのコードサンプルは、PaypalのWebサイト(https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_code – Jules

0

あなたのプロには多くの解決策がありますあなたは次のようになる可能性があります。

ペイパルIPNハンドラページを作成して、支払いが行われたときにデータベースを更新することができます。その後、すべての支払いを手動で処理して、そのユーザーに制限付きのコンテンツを表示させることができます。 [あなたは何らかのユーザー管理システムを持っていて、ユーザーに一部のコンテンツの表示を許可/禁止することができます。]失敗/キャンセルされたページURI。

こちらがお役に立てば幸いです。