2016-08-30 7 views
0

私が直面している問題は、payfort APIが私にいくつかのjsonを返さなければならないということです。しかし、代わりに私はいくつかの隠されたフィールドを持ついくつかのHTMLを取得します。私はそこに書いたエラーは見ません。ここでC#のpayfort Apisのjson結果を取得する方法

は私のコードは、ヘッダ

wc.Headers[HttpRequestHeader.Authorization] 
wc.Headers[HttpRequestHeader.TenantId] 
wc.Headers[HttpRequestHeader.Client-Type] 
wc.Headers[HttpRequestHeader.Protocol] 
私にとって

作品以下の値を追加すること

string access_code = string.Empty, 
      amount = string.Empty, 
      currency = string.Empty, 
      customer_email = string.Empty, 
      merchant_reference = string.Empty, 
      order_description = string.Empty, 
      language = string.Empty, 
      merchant_identifier = string.Empty, 
      signature = string.Empty, 
      command = string.Empty; 

     access_code = "X78979879h8h8h8"; 
     amount = "1000"; 
     command = "AUTHORIZATION"; 
     currency = "AED"; 
     customer_email = "[email protected]"; 
     language = "en"; 
     merchant_identifier = "RaskdQuCc"; 
     merchant_reference = "ASASASASASADSS"; 
     order_description = "Some order details"; 
     signature = ""; 

     string signature_string = "PASSaccess_code="+access_code+"amount="+amount+"command="+command+"currency="+currency+"customer_email"+customer_email+"language"+language+"merchant_identifier"+merchant_identifier+"merchant_reference"+merchant_reference+"order_description"+order_description+"PASS"; 

     signature = getHashSha256(signature_string); 
     string url = "https://sbcheckout.payfort.com/FortAPI/paymentPage"; 
     string param = "access_code" + access_code + "&amount=" + amount + "&currency=" + currency + 
      "&customer_email=" + customer_email + "&merchant_reference=" + merchant_reference + 
      "&order_description=" + order_description + "&language=" + language + "merchant_identifier=" 
      + merchant_identifier + "&signature=" + signature + "&command=" + command; 


     using (WebClient wc = new WebClient()) 
     { 
      wc.Headers[HttpRequestHeader.ContentType] = "application/json"; 
      //wc.Headers.Add("Content-Type", "application/json"); 
      string HtmlResult = wc.UploadString(url, param); 
     } 
+0

解決策を見つけましたか?私は今同じ問題に直面している。このコードはapiにパラメータを送り、そこからデータを受け取りますか?または送信のみ。それが送信されている場合は、要求を送信した後にどのように応答を受け取るのですか。 – Mariam

答えて

3

トライです!

+0

ここに追加する値は – Zawar

+0

で、これはあなたにウェブサービスを提供した人が提供することができます。 –

0

まずエンコード応答

string responseString = Encoding.UTF8.GetString(response); 

利用のHTMLDocument(HtmlAgilityPack)

var html = new HtmlDocument(); 
var tokenValue = ""; 
html.LoadHtml(responseString); 

HTMLにこれをロードした後は、フィールドと値を照会することができます。

var tokenFormIdElement = 
      html.DocumentNode.SelectSingleNode("//input[@name='token']"); 
tokenValue = tokenFormIdElement.GetAttributeValue("value", ""); 
関連する問題