2017-08-29 18 views
0

ほとんどの支払いシステムを作成していますが、左のビットはトランザクションに使用されるすべてのクッキーを削除しています。IPNを使用してPayPalの支払いが完了した後にクッキーを削除します

私のウェブサイトのページの1つに削除機能を追加して機能させると、すべてのクッキーを削除できますが、それは機能しますが、ユーザはそのページに戻る必要があります。一度ペイパルを使用して支払いを行うとブラウザを閉じるので、次回はウェブページを開いてもクッキーは有効です。

PayPalがWebページとの通信に使用するIPNファイルのCookieを削除しようとしていますが、ページをリフレッシュすることができないため削除できないようですが、クッキーを削除する別の方法はありますか? setcookie()のためのPHPマニュアルのコメント欄から

PHP

foreach ($_COOKIE as $key => $value){ 
    setcookie($key, $value, time()-(100000 * 60), '/'); 
} 
if(count($_COOKIE) !=0){ 
    // I also tried this method, refreshing the IPN file but it didnt work. 
    header("Refresh:0"); 
} 

答えて

1

あなたの方法は間違っています。クッキーではなく、データベース内のトランザクションを追跡する必要があります。セッションにはCookieを使用できます。

次に、PayPalから支払い確認を受け取ったら、IPNページで、データベース内の取引を閉じることができます。

つまり、IPNページはPayPalによって呼び出され、顧客のブラウザが表示されることはないため、そこでCookieを削除することはできません。

+0

ええと、私は、クッキーはデータベースとは何の関係も持っていないことを理解しています。これらの情報はデータベースに保存されません。 – Luke

+0

はい、私は理解しますが、お客様がクッキーを保護しない限り、お客様は製品の価格を変更することができます。そのため、セッションをトランザクションに保存し、セッションIDをpaypalに送信すると、IPNページに戻ってセッションを操作したり、データベースを使用したりすることができます。後者が好ましい方法です。 –

+0

ありがとうございます。うーん、私は顧客が価格を変更することができると知っていた、私は一度IPNが呼び出されると、データベースからのものとクッキーから価格をチェックする機能を持っています。私は、ペイパルがユーザを私のウェブページにリダイレクトした後に、クッキーを削除しなければならないと思うので、顧客がリダイレクトする前にブラウザを閉じることを決定したときに、次にクッキーがそこにいるウェブページを開く。コードを接続してデータベースに接続するようにコードを再作成しても、ユーザーが選択したアイテムの総数に対するクッキーを保持したいと考えています。 – Luke

0

http://php.net/manual/en/function.setcookie.php#109173

はクッキーを削除したいですか?

多くの人が複雑なやり方をしています。 setcookie( 'name'、 'content'、time() - 3600);

しかし、なぜあなたはそれがとても複雑になり、クライアントの時間が間違っているときにはうまくいかない危険性がありますか?なぜ時間をかけて();

これは、クッキーを解除する最も簡単な方法です: setcookie( 'name'、 'content'、1);

それはそれです。

+0

OPは、リダイレクトを回避する方法を尋ね、クッキーを削除する方法ではありません。 – DanFromGermany

+0

私はこの方法を知っています。効率的でないかどうかに関わらず、クッキーを削除する方法は問題ありません。私が知りたいのは、IPNファイルがリフレッシュされないので、ページをリフレッシュせずにこの関数を動作させる方法です。 – Luke

関連する問題