【问题标题】:Paypal multi parameters in return , cancel_return urlsPaypal 多参数返回,cancel_return urls
【发布时间】:2013-02-25 15:49:23
【问题描述】:

我正在 ASP.NET 应用程序中进行简单的 Paypal 支付集成,我尝试为成功和取消构建返回查询字符串,但它不起作用,因为我在查询字符串中发送了多个参数

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;

我认为paypal请求参数和返回查询参数之间有些混淆,有什么解决办法吗??

【问题讨论】:

    标签: asp.net paypal paypal-sandbox


    【解决方案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 );
    

    【讨论】:

    • 我完全忘记了这一点 :),感谢 Aristos,它可以工作,但变化不大,而不是 HttpServerUtility,我使用的是 HttpUtility,但无论如何它的想法相同,好镜头;)
    猜你喜欢
    • 2022-01-12
    • 2021-05-10
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 2019-01-16
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多