Frage

Bearbeiten Ich würde falsch verstanden, was hier los war .. gibt es eine Sende POST, dann ein Ergebnis zurückerhalten, dann die URL-Zeichenfolge, die ich hier sehen, ist ein Teil der die Query-String ... so kann ich nicht entschlüsseln, was das wirklich ist, wie es von den Payment Gateway Menschen und mir nicht codiert ist.

Ich möchte eine URL-Zeichenfolge entschlüsseln

Hier ist der Code:

private string SubmitXml(string InputXml)
    {
        string result = InputXml.ToString();

        HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(_WebServiceUrl);
        webReq.Method = "POST";

        byte[] reqBytes;

        reqBytes = System.Text.Encoding.UTF8.GetBytes(InputXml);
        webReq.ContentType = "application/x-www-form-urlencoded";
        webReq.ContentLength = reqBytes.Length;
        webReq.Timeout = 5000;
        Stream requestStream = webReq.GetRequestStream();
        requestStream.Write(reqBytes, 0, reqBytes.Length);
        requestStream.Close();

        HttpWebResponse webResponse = (HttpWebResponse)webReq.GetResponse();

Hier ist die InputXml:

 - <GenerateRequest>
  <PxPayUserId>KoruCareCHCH_Dev</PxPayUserId> 
  <PxPayKey>47d99ccdcae54816ecd78c9a80f8878c466a7ed829480e59d421cc4c456cbd93</PxPayKey> 
  <AmountInput>345.00</AmountInput> 
  <BillingId /> 
  <CurrencyInput>NZD</CurrencyInput> 
  <DpsBillingId /> 
  <DpsTxnRef /> 
  <EmailAddress /> 
  <EnableAddBillCard /> 
  <MerchantReference>43</MerchantReference> 
  <TxnData1 /> 
  <TxnData2 /> 
  <TxnData3 /> 
  <TxnType>Purchase</TxnType> 
  <TxnId>43</TxnId> 
  <UrlFail>http://localhost:1527/Auction/PurchaseTickets.aspx</UrlFail> 
  <UrlSuccess>http://localhost:1527/Auction/PurchaseTickets.aspx</UrlSuccess> 
  <Opt /> 
  </GenerateRequest>

Hier ist die URL

https : //sec2.paymentexpress.com/pxpay/pxpay.aspx userid = KoruCareCHCH_Dev & request = v5lK0D7j3qnGqQVnj3WThhuS5PoWwKhdLUXfnL1hiSzYzxzkKVtTbLKC49e0qerYoTAofoBXfkWHjJdtOEV1MrnEBZ3p9b-G5fTsS-sLqc76RhHOb8HTxtwe0EQ1kz1iCf2ExIgKRod-FPQTKf6XoTLLlQ4jhcrO7yQczrq1Hft5pB98LMJCdBX0FDnA5NV0ZGApR0NaCMy-xbpsVSsyTbSdmp03aiHpGXI4up2RxrBFhbiEOZKtpKkjUpqJ90UuoXmFwqTC5Pj0g1mx3VRV2ee358Tnu1_kuEID_RaP8sZNTVlAMY5-8qjB-u0dgM4ya8Faxxyw5AhyE =

Problem: Wie entschlüsseln wir die URL-Anforderung = blahblah zurück in XML

ich dies tun, um zu versuchen und zu beweisen, was in der URL-Zeichenfolge enthalten ist (es sollte oben genauso wie die XML sein!)

War es hilfreich?

Lösung

Haben kein Glück es Decodierung so die URL falsch sein könnte, aber ich habe diesen Code:

Uri uri = new Uri(...);
NameValueCollection query = HttpUtility.ParseQueryString(uri.Query);
string value = query["request"].Replace('-', '+').Replace('_', '/');
Debug.WriteLine(Convert.FromBase64String(value));

EDIT:. In ihrer docs sie sagen, dass es verschlüsselt

Andere Tipps

Sie können einen regulären Ausdruck verwenden, so etwas wie

var match = new Regex("request=(?<key>[^&]+)").Match(url);

und Erfassung des Anforderungswert in der genannten Gruppe. Von dort hoffentlich würden Sie in der Lage sein, den erfassten Wert zu entschlüsseln.

Keine Garantien, dass die oben regex ist richtig - ich habe es nicht getestet. Es sollte zumindest Punkt, den Sie in die richtige Richtung!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top