2013-03-10 41 views
0

我做在ASP.NET应用程序简单Paypal付款的整合,我试图建立返回的查询字符串都成功&取消,而是因为我送它不工作多在查询字符串宝多参数的回报,cancel_return网址

string returnUrl = ConfigurationManager.AppSettings["PayPalSandBoxUrl"] + "&business=" + email; 
     returnUrl += "&amount= 100"; 
     returnUrl += "&item_name=Invoice to somebody"; 
     // the problem goes in following params 
     returnUrl += "&return=" + ConfigurationManager.AppSettings["Domain"] + "Payment.aspx?param1=" + param1 + "&param2=" + param2 ; 
     returnUrl += "&cancel_return=" + ConfigurationManager.AppSettings["Domain"] + "Payment.aspx?cancel=true&param1=" + param1; 

我认为它得到贝宝请求参数和返回的查询参数之间有些混乱的一个参数,就是对此有任何解决方案?

回答

1

当您添加在包含可混淆了现实参数应用的符号,为?&/等的URL参数,你必须与UrlEncode

编码他们,所以让你的字符串:

string returnUrl = 
     ConfigurationManager.AppSettings["PayPalSandBoxUrl"] 
     + "&business=" + HttpServerUtility.UrlEncode(email); 
     returnUrl += "&amount= 100"; 
     returnUrl += "&item_name=" + HttpServerUtility.UrlEncode("Invoice to somebody"); 
     // the problem goes in following params 
     returnUrl += "&return=" 
      + HttpServerUtility.UrlEncode(ConfigurationManager.AppSettings["Domain"] + "Payment.aspx?param1=" + param1 + "&param2=" + param2) ; 
     returnUrl += "&cancel_return=" 
      + HttpServerUtility.UrlEncode(ConfigurationManager.AppSettings["Domain"] + "Payment.aspx?cancel=true&param1=" + param1); 
+0

我忘了这在所有:),谢谢Aristos的它的工作原理,但变化不大,而不是'HttpServerUtility'我用'HttpUtility',但无论如何,它同样的想法,拍好;) – 2013-03-10 13:09:31