Pregunta

Editar que había entendido mal lo que estaba ocurriendo aquí .. hay un envío POST, a continuación, recibir de vuelta un resultado, entonces la cadena de URL, que estoy viendo aquí es parte de la cadena de la consulta ... por lo que no puede decodificar lo que esto realmente es, ya que es codificada por el pueblo pasarela de pago y no a mí.

Me gustaría decodificar una cadena URL

Este es el código:

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();

Esta es la 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>

Aquí está la URL

https :? //sec2.paymentexpress.com/pxpay/pxpay.aspx identificador de usuario = KoruCareCHCH_Dev y petición = v5lK0D7j3qnGqQVnj3WThhuS5PoWwKhdLUXfnL1hiSzYzxzkKVtTbLKC49e0qerYoTAofoBXfkWHjJdtOEV1MrnEBZ3p9b-G5fTsS-sLqc76RhHOb8HTxtwe0EQ1kz1iCf2ExIgKRod-FPQTKf6XoTLLlQ4jhcrO7yQczrq1Hft5pB98LMJCdBX0FDnA5NV0ZGApR0NaCMy-xbpsVSsyTbSdmp03aiHpGXI4up2RxrBFhbiEOZKtpKkjUpqJ90UuoXmFwqTC5Pj0g1mx3VRV2ee358Tnu1_kuEID_RaP8sZNTVlAMY5-8qjB-u0dgM4ya8Faxxyw5AhyE =

Problema: ¿Cómo decodificar la solicitud de URL = volver blahblah en XML

Estoy haciendo esto para tratar de demostrar lo que está contenido en la cadena de URL (debe ser igual que el XML anterior!)

¿Fue útil?

Solución

no tenía ninguna suerte decodificación por lo que la URL puede estar equivocado, pero se usa este código:

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

EDIT:. En sus documentos dicen que es encriptada

Otros consejos

Se puede usar una expresión regular, algo así como

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

y capturar el valor de petición en el grupo nombrado. A partir de ahí, es de esperar que sería capaz de descifrar el valor capturado.

No hay garantías de que la expresión regular anterior es correcta - no he probado. Se debe por lo menos le apuntan en la dirección correcta!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top