2017-12-21 21 views
1

私はasp.net WebアプリケーションでSkrillの支払い方法を使用しています。Skrillリダイレクトエラー "JBWEB000120:クライアントから送信された要求が構文的に間違っています。"

予約ボタンをクリックすると、それは通りの支払いのためにSkrillにリダイレクトします:

protected void btnBook_Click(object sender, EventArgs e) 
{ 
    // Mastercard 5438311234567890 
    // Visa   40000
    // Amex   371234500

    string url = "https://pay.skrill.com/?"; 

    // Merchant Details 
    url += "pay_to_email=" + "[email protected]"; 
    url += "&recipient_description=" + "Banquet Halls Booking System"; 
    url += "&language=" + "EN"; 
    url += "&status_url=" + ""; 

    // Customer Details 
    url += "&country=" + "Pakistan"; 

    // Payment Details 
    url += "&amount=" + string.Format("{0:0.00}", (double.Parse(lblGrandTotal.Text)/110.00)); 
    url += "&currency=" + "USD"; 
    url += "&amount2_description=" + Persons.Text + ":"; 
    url += "&amount2=" + lblPersons.Text; 
    url += "&amount3_description=" + PerHeadRate.Text + ":"; 
    url += "&amount3=" + lblPerHeadRate.Text; 
    url += "&amount4_description=" + Tax.Text + ":"; 
    url += "&amount4=" + lblTax.Text + "%"; 
    url += "&detail1_description=" + "Booking ID:"; 
    url += "&detail1_text=" + objDLBkg.SelectLastBkID(); 
    url += "&detail2_description=" + "Description:"; 
    url += "&detail2_text=" + "View all bookings in your Account."; 
    url += "&detail3_description=" + "Banquet Hall:"; 
    url += "&detail3_text=" + lblBqtName.Text; 
    url += "&detail4_description=" + "Booking Date:"; 
    url += "&detail4_text=" + DateTime.Now.Date.ToString("MM/dd/yyyy"); 

    // Split Gateway 
    url += "&payment_methods=" + "WLT,ACC"; 

    Response.Redirect(url); 
} 

そしてSkrillへのリダイレクトでエラーを示しています

JBWEB000065:HTTPステータス400から


JBWEB000309:タイプJBWEB000067:ステータスレポート
JBWEB000068:メッセージ
JBWEB000069:説明JBWEB000120:クライアントから送信された要求が構文的に正しくありませんでした。私はそれを解決するにはどうすればよい


のJBossのWeb/7.5.9.Final-redhatの-1

?どこが間違っている?

ありがとうございます!

+2

すべての文字がクエリ文字列でリテラル形式で有効であるとは限らず、エスケープする必要がある文字もあれば、エスケープすることもありません。 – Evk

答えて

0

私はしましたリダイレクトサーバーURLに特殊文字%があり、エラーが発生していることがわかりました:

url += "&amount4=" + lblTax.Text + "%"; 

URLから%文字を削除しました。

0

答えHEREで利用可能であることを行う方法の一例、特殊文字をエスケープするためにあなたのクエリ文字列パラメータをエンコードするようにしてください:

string url = string.Format("https://yourdomain.com/api/add?t={0}&mac={1}&portName={2}&name={3}&location={4}&description={5}&comment={6}", 
      HttpUtility.UrlEncode(appToken), 
      HttpUtility.UrlEncode(macAddress), 
      HttpUtility.UrlEncode(PortName), 
      HttpUtility.UrlEncode(name), 
      HttpUtility.UrlEncode(Location), 
      HttpUtility.UrlEncode(description), 
      HttpUtility.UrlEncode(Comment)); 

、同様のエラーをここに報告されていますJBWEB000069

関連する問題