簡體   English   中英

如何在C#中從Payfort Apis獲取json結果

[英]how to get json result from payfort Apis in C#

我面臨的問題是,payfort API應該返回給我一些json。 但是相反,我得到一些具有一些隱藏字段的html。 而且我看不到里面寫有任何錯誤。

這是我的代碼

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 = "zetawars@hotmail.com";
        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);
        }

嘗試為下面的標題添加值

wc.Headers[HttpRequestHeader.Authorization]
wc.Headers[HttpRequestHeader.TenantId]
wc.Headers[HttpRequestHeader.Client-Type]
wc.Headers[HttpRequestHeader.Protocol]

為我工作!

首先對響應進行編碼

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", "");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM