0

私は次のようなページを作成しようとしています:

  • 1.ユーザーが[購入]というボタンをクリックします
  • 2.ユーザーは、ログインして支払う必要があるペイパルページにリダイレクトされます。

彼が支払った後、彼は別のページにリダイレクトされます:

  • 1.ページの読み込みで、支払いが正常に行われたかどうかを確認します。

私はこれを行いましたが、機能していないようです。 私が何をした?

  • 1.ペイパルアカウントからIPNを有効にし、URLをaspページに設定しました。

    2. Webサイトで2つのファイル(php / asp.net)をホストしました

  • 3.テスト済みですが、ラベルのテキストが「完了、支払い済み」に変更されていません。これは、彼が支払いを処理できなかったことを意味します。

製品を購入するためのphpページ:

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">

    <input type="hidden" name="cmd" value="_xclick" />
    <input type="hidden" name="business" value="seller@domain.com" />

    <input type="hidden" name="item_name" value="Happiness" />
    <input type="hidden" name="amount" value="6.52" /> 
    <input type="submit" value="Buy!" />

</form>

asp.netページ:

 protected void Page_Load(object sender, EventArgs e)
        {
                string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);

                //Set values for the request back
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
                string strRequest = Encoding.ASCII.GetString(param);
                strRequest += "&cmd=_notify-validate";
                req.ContentLength = strRequest.Length;


                StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                streamOut.Write(strRequest);
                streamOut.Close();
                StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
                string strResponse = streamIn.ReadToEnd();
                streamIn.Close();

                if (strResponse == "VERIFIED")
                {
                    Label1.Text = "Done,payment was made.";
                }
                else if (strResponse == "INVALID")
                {
                    //whatever
                }
                else
                {
                    //whatever
                }
}

私に何ができる?

4

1 に答える 1

0

IPN トランザクションはバッチで送信され、多くの場合数分後に送信されます。IPN メッセージのステータスを反映するようにユーザーに表示されるページを設計するべきではありません。私のシステムでは、購入が完了し、PayPal が資金の清算を通知した時点で購入が完了することをユーザーに伝えるだけで、その旨をメールで通知しています。

于 2013-02-19T23:54:55.790 に答える