_notify-sync与PayPal专业版

时间:2017-11-06 09:39:51

标签: c# asp.net paypal

我正在从paypal迁移到paypal pro我可以付款并正确地将paypal重定向到我的交易ID网站和结果(PDT),但当我尝试通过放置一个带有命令cmd = _notify-的地方来验证交易ID同步得到一个错误的请求错误400.有什么问题?对于paypal pro,也许cmd = _notify-synch是不同的?

放置返回页面PDT的代码。我想重申与paypal相同的代码,我只修改了以下网址: “https://securepayments.sandbox.paypal.com/webapps/HostedSoleSolutionApp/webflow/sparta/hostedSoleSolutionProcess”;

 protected void Page_Load(object sender, EventArgs e)
  {
     if (!Page.IsPostBack)
     {

        authToken = WebConfigurationManager.AppSettings["PDTToken"];

        txToken = Request.QueryString.Get("tx");

        query = string.Format("cmd=_notify-synch&tx={0}&at={1}", txToken, authToken);

        // Create the request back
        string url = "https://securepayments.sandbox.paypal.com/webapps/HostedSoleSolutionApp/webflow/sparta/hostedSoleSolutionProcess";

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

        // Set values for the request back

        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = query.Length;

        StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
        stOut.Write(query);
        stOut.Close();

        // HERE ERROR 400 Bad Request
        StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
        strResponse = stIn.ReadToEnd();
        stIn.Close();



        // sanity check
        Label2.Text = strResponse;

        // If response was SUCCESS, parse response string and output details
        if (strResponse.StartsWith("SUCCESS"))
        {
           PDTHolder pdt = PDTHolder.Parse(strResponse);
           Label1.Text = string.Format("Thank you {0} {1} [{2}] for your payment of {3} {4}!",
               pdt.PayerFirstName, pdt.PayerLastName, pdt.PayerEmail, pdt.GrossTotal, pdt.Currency);
        }
        else
        {
           Label1.Text = "Oooops, something went wrong...";
        }
     }
  }

}

0 个答案:

没有答案