Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 没有IPN历史记录和Paypal安全性_C#_Asp.net_Paypal_Paypal Sandbox_Paypal Ipn - Fatal编程技术网

C# 没有IPN历史记录和Paypal安全性

C# 没有IPN历史记录和Paypal安全性,c#,asp.net,paypal,paypal-sandbox,paypal-ipn,C#,Asp.net,Paypal,Paypal Sandbox,Paypal Ipn,我正在把下面的表格发送给贝宝 <form name="myForm" method="POST" action="https://www.sandbox.paypal.com/cgi-bin/webscr" > <input type="hidden" name="cmd" value="_cart"/> <input type="hidden" name="business" value="myemail@myDomain.com"/> <input

我正在把下面的表格发送给贝宝

<form name="myForm" method="POST" action="https://www.sandbox.paypal.com/cgi-bin/webscr" >
<input type="hidden" name="cmd" value="_cart"/>
<input type="hidden" name="business" value="myemail@myDomain.com"/>
<input type="hidden" name="item_name_1" value="Product 1"/>
<input type="hidden" name="amount_1" value="500.00"/>
<input type="hidden" name="quantity_1" value="1"/>
<input type="hidden" name="upload" value="1"/>
<input type="hidden" name="currency_code" value="GBP"/>
<input type="hidden" name="return" value="http://XX/paypal/completed.aspx"/>
<input type="hidden" name="rm" value="2"/>
<input type="hidden" name="cancel_return" value="http://XX/paypal/Cancel.aspx"/>
<input type="hidden" name="shopping_url" value="http://XX/paypal/MyShop"/>
<input type="hidden" name="notify_url" value="http://XX/paypal/MyShop/checkout.aspx"/>
<input type="hidden" name="lc" value="GB"/>
<input type="hidden" name="image_url" value="http://XX/paypal/shop.gif"/>
<input type="hidden" name="no_note" value="1"/>
<input type="hidden" name="invoice" value="ZZZ1234567890"/>
<script type="text/javascript">document.myForm.submit();</script></form>
但我不需要身份令牌来验证任何东西?所以我有点好奇,我是否已经正确地保护了它,并且我不需要添加额外的检查来确保处理响应的页面不容易被操纵


我知道我没有发布实际处理数据库记录的代码,但我正在检查表单和Paypal的回复是否有我应该检查的字段

您的收件人帐户上的电子邮件地址似乎未确认。当电子邮件地址未确认时,付款将保持“待定”状态,直到接收者(a)在该电子邮件地址下创建帐户,以及(b)确认该电子邮件地址。如果收件人在30天内没有这样做,付款将自动取消并返回给发件人


我已经为您确认了沙箱帐户上的电子邮件地址。您应该很快就会在您的收款人帐户中看到交易。

您能提供交易ID吗?我可以在我这边看看发生了什么?是的,明白了。谢谢,我看到了,谢谢。我确实尝试验证我的帐户,但我从未收到验证电子邮件。通过我们的IT部门检查,他们确认在该电子邮件地址没有收到来自PP的电子邮件。因此,从这一点来看,我是否需要在任何地方添加身份令牌,以确保交易不会被操纵?仅供参考,来自沙箱的电子邮件实际上不会发送到现实世界中——相反,它们会进入一个特殊的邮箱,您可以通过进入=>Dashboard=>Sandbox=>Notifications来访问该邮箱。您不需要包含用于IPN的标识令牌——这只适用于PDT()。我正在使用PDT,但我认为IPN也是使PDT工作所必需的。。。。因此,如果我想在设置上述变量后使用PDT,那么假设我从PP获取处理程序上的事务id,然后调用PP,但包括authToken,如So cmd=\u notify-synch&tx=[TransactionID]&at=[PDTIdentityToken],这是否正确。如果所有的身份验证都是独立的(尽管相似),那么哪个会返回成功?否,PDT和IPN是独立的产品。一个不需要使用另一个。您在如何使用PDT方面是正确的——如果成功,它将返回付款的详细信息。
try
{
    string strRequest = string.Empty;
    string strLive = "https://www.sandbox.paypal.com/cgi-bin/webscr";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strLive);
    req.KeepAlive = false;
    req.ReadWriteTimeout = 600000;
    req.Timeout = 600000;

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

    //Send the request to PayPal and get the response
    Stream RequestStream = req.GetRequestStream();
    StreamWriter streamOut = new StreamWriter(RequestStream, System.Text.Encoding.UTF8);
    RequestStream.ReadTimeout = 600000;
    RequestStream.WriteTimeout = 600000;
    streamOut.Write(strRequest);
    streamOut.Close();
}
catch (Exception ex)
{
.....
}