0

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 リクエスト パラメータとリターン クエリ パラメータの間で混乱が生じると思いますが、これに対する解決策はありますか??

4

1 に答える 1

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 );
于 2013-03-10T12:38:07.770 に答える