Question

Modifier Je mal compris ce qui se passait ici .. il y a un envoi POST, puis récupéreront un résultat, la chaîne URL que je vois ici fait partie de la la chaîne de requête ... donc je ne peux pas décoder ce que cela est vraiment, comme il est codé par le peuple de la passerelle de paiement et non moi.

Je voudrais décoder une chaîne d'URL

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

Voici le 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>

Voici l'URL

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

Problème: Comment décoder la requête URL = back blahblah en XML

Je fais cela pour essayer de prouver ce qui est contenu dans la chaîne d'URL (il devrait être tout comme le XML ci-dessus!)

Était-ce utile?

La solution

N'a pas eu de chance décoder si l'URL peut-être tort, mais j'utilisé ce code:

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

EDIT:. Dans leurs documents, ils disent qu'il est crypté

Autres conseils

Vous pouvez utiliser une expression régulière, quelque chose comme

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

et la capture de la valeur de la demande dans le groupe nommé. De là, vous pourrez peu de chance, de décrypter la valeur capturée.

Aucune garantie que le regex ci-dessus est correct - je l'ai pas testé. Il devrait au moins vous orienter dans la bonne direction!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top