0
我试图创造一个页面:如何使用贝宝IPN
- 1.用户点击一个名为购买按钮,在那里他需要
- 2,用户被重定向到PayPal页面登录并付款。
他支付了之后,他会被重定向到另一个页面,在这里:
- 1.in页面加载,我会检查是否支付成功制造。
我已经这样做了,但它似乎不工作。 我做了什么?
1.从paypal帐户启用IPN并将url设置为asp页面。
2.Hosted网站
3.Tested但标签上的文字两个文件(PHP/asp.net)没有改变为“完成,付款造”,这意味着他无法处理付款。
购买产品的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="[email protected]" />
<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
}
}
我能做些什么?
什么意思是“不工作”? – Aristos 2013-02-16 21:42:15
strResponse验证时不执行代码 – Josi 2013-02-17 19:05:08
我不知道你等待在那里执行什么,因为这是来自pp的自动呼叫,而不是你打电话的页面 - 如果你理解我的意思。如果已验证,这并不意味着付款已完成,您需要检查更多参数。 – Aristos 2013-02-17 20:04:11