paypal集成到自己购物网站,支付成功,notify_url调用正常,INVALID状态获取成功,但是return页面需要手工点击按钮才能返回自己网站,怎么自动跳回?

tom_happy 2008-05-13 04:33:03
1)支付页面pay.aspx代码:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("<form action='https://www.paypal.com/cgi-bin/webscr' method='post' name='paypal'>");
Response.Write("<input name='cmd' value='_xclick' type='hidden'>");
Response.Write("<input type='hidden' name='notify_url' value='http://www.maiding.com/pp/notify.aspx/'>");
Response.Write("<input name='business' value='"+email.Text+"' type='hidden'>");
Response.Write("<input name='item_name' value='"+ordername.Text+"' type='hidden'>");
Response.Write("<input name='return' value='http://www.maiding.com/pp/pay_ok_return.aspx/' type='hidden'>");
Response.Write("<input type='hidden' name='cancel_return' value='http://www.maiding.com/pp/pay_fail_return.aspx/'>");
Response.Write("<input name='item_number' value='" + number.Text + "' type='hidden'>");
Response.Write("<input name='buyer_credit_promo_code' value='' type='hidden'>");
Response.Write("<input name='buyer_credit_product_category' value='' type='hidden'>");
Response.Write("<input name='buyer_credit_shipping_method' value='' type='hidden'>");
Response.Write("<input name='buyer_credit_user_address_change' value='' type='hidden'>");
Response.Write("<input name='no_shipping' value='0' type='hidden'>");
Response.Write("<input name='cn' value='Information' type='hidden'>");
Response.Write("<input name='no_note' value='0' type='hidden'>");
Response.Write("<input name='currency_code' value='USD' type='hidden'>");
Response.Write("<input name='bn' value='PP-BuyNowBF' type='hidden'>");
Response.Write("<input value='"+why.Text+"' name='on0'>");
Response.Write("<input value='Sender will be verified by telephone.' name='on1' type='hidden'>");
Response.Write("<input name='os0' type='hidden'>");
Response.Write("<input type='hidden' name='amount' value='"+money.Text+"'>");
Response.Write("<input name='os1' type='hidden'><br>");
Response.Write("<input src='https://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif' name='submit' alt='Make payments with PayPal - it's fast, free and secure!' border='0' height='26' type='image' width='107'>");
Response.Write("<img alt='' src='../../../pixel.gif' border='0' height='1' width='1'>");
Response.Write("</form>");
}

//======================================================
2)notify.aspx.cs 代码:
protected void Page_Load(object sender, EventArgs e)
{
//Post back to either sandbox or live
//string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strLive);

// 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);

//////////
StreamWriter w1 = new StreamWriter(Server.MapPath("recv1.txt"));
w1.Write(strRequest);
w1.Close();
//////////

strRequest += "&cmd=_notify-validate";
req.ContentLength = strRequest.Length;

//for proxy
//WebProxy proxy = new WebProxy(new Uri("http://url:port#"));
//req.Proxy = proxy;

//Send the request to PayPal and get the response
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")
{
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
StreamWriter w2 = new StreamWriter(Server.MapPath("VERIFIED.txt"));
w2.Write("VERIFIED");
w2.Close();


}
else if (strResponse == "INVALID")
{
// log for manual investigation
StreamWriter w3 = new StreamWriter(Server.MapPath("INVALID.txt"));
w3.Write("INVALID");
w3.Close();
}
else
{
//log response/ipn data for manual investigation
}
}


//======================================================
3)pay_ok_return.aspx
<head runat="server">
<title>支付返回</title>
</head>
<body>
<form id="form1" runat="server">
<div>
支付成功---------------<br>
</div>
</form>
</body>
</html>


现在支付成功,notify_url调用正常,INVALID状态获取也成功,就是return页面需要手工点击按钮才能返回自己网站,怎么自动跳回?

做过的大侠告知一下,谢谢!!!
...全文
2383 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanzhoupuzhang 2012-08-11
  • 打赏
  • 举报
回复
我也遇到了同样的问题!paypal真麻烦!
ImFantasy 2012-07-02
  • 打赏
  • 举报
回复
搂在有答案了吗.?

在pp那边可以设置吗. 我现在也遇到这个问题.
moontea 2011-05-04
  • 打赏
  • 举报
回复
就是return 这个参数未设置,跟技术没关系,另外在账户设置自动返回和加这个参数是一样的效果,设置其中一个就行了
我现在的问题是notify_url 没有返回,貌似神恶魔事情都没发生似的,郁闷!
我在本地调试的,是http:\\localhost开头的地址,难道他找不到?不应该呀,return都找到了,而且返回成功了呀?求高手解,我的是php的,notify文件用的是官网的事例文件,加了 写日志 ,但是日志里什么也木有,唉,PayPal折腾死人呀。
还想请教 并行付款和链式付款怎么弄呀,貌似这个很强大,官方好像也没有相应的 示例代码。
fk1984316 2011-05-04
  • 打赏
  • 举报
回复
顶下!
tradesignal 2008-10-22
  • 打赏
  • 举报
回复
在你的paypal 帐户里设置autoreutn 打开
tom_happy 2008-05-15
  • 打赏
  • 举报
回复
顶~知道的告诉一下,谢谢啦
阿非 2008-05-15
  • 打赏
  • 举报
回复
没做过~ 其实你把

<meta http-equiv="refresh" content="3;url=yourweburl">

放在pay_ok_return.aspx 页 里 就应该是你想要的结果
tom_happy 2008-05-13
  • 打赏
  • 举报
回复
呵呵 目前我了解的支付代码就这么多啊 都帖在上面了

不知道是不是其他方式才能实现自动跳回 这种方式本来就不支持?
silkstockings 2008-05-13
  • 打赏
  • 举报
回复
我也在弄这个,LZ能不能发点资料到我邮箱chuangxiaochun@yahoo.com.cn

谢谢啦
silkstockings 2008-05-13
  • 打赏
  • 举报
回复
顶 留个记号
tom_happy 2008-05-13
  • 打赏
  • 举报
回复
谢谢回复 但是这是paypal网站在支付完成后再跳转到指定的return页面,不是技术上怎么跳转的问题,而是怎么设置参数,paypal就会启动自动跳转,有经验的朋友帮帮忙。
inforum 2008-05-13
  • 打赏
  • 举报
回复
<meta http-equiv="refresh" content="2;url=yourweburl">
2秒钟转向你的网站

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧