Способ оплаты в nopcommerce

С уважением,

Я разрабатываю метод оплаты плагина на основе стандарта PayPal, только у меня есть проблема. Он должен отправлять данные платежа методом POST (шлюз pagosonline), затем последний шаг - отправить эту информацию методом POST и перенаправить на шлюз pagosonline, чтобы завершить процесс оплаты, проблема в том, что paypalstandar перенаправляет переменные в методе GET, и мне нужно сделать это с помощью метода POST, как в этом случае? Я пытаюсь сделать это с помощью NameValueCollection() и webclient(), но, видимо, это делается с помощью ajax или чего-то подобного, и мне нужно перенаправить на шлюз.

для финализации я помещаю код, который у меня есть в методе postprocesspayment в классе процессора (C#).

    public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
    {
        var key = _paypalStandardPaymentSettings.EncryptKey;
        var idus = _paypalStandardPaymentSettings.IdUsuario;
        var refe = postProcessPaymentRequest.Order.OrderGuid;
        var valor = Math.Round(postProcessPaymentRequest.Order.OrderTotal, 2);
        var mone = "COP";

        var firma_plana = key + "~" + idus + "~" + refe + "~" + valor + "~" + mone;

        MD5 md5 = MD5CryptoServiceProvider.Create();
        ASCIIEncoding encoding = new ASCIIEncoding();

        byte[] stream = null;
        StringBuilder sb = new StringBuilder();

        stream = md5.ComputeHash(encoding.GetBytes(firma_plana));
        for (int i = 0; i < stream.Length; i++) sb.AppendFormat("{0:x2}", stream[i]);

        var firma_md5 = sb.ToString();


        var webClient = new WebClient();
        var form = new NameValueCollection();

        form.Add("usuarioId", idus);
        form.Add("descripcion", _paypalStandardPaymentSettings.Descripcion);
        form.Add("refVenta", refe.ToString());
        form.Add("valor", valor.ToString("0.00", CultureInfo.InvariantCulture));
        form.Add("baseDevolucionIva", "0");
        form.Add("iva", "0");
        form.Add("moneda", "COP");
        form.Add("firma", firma_md5);

        webClient.UploadValues(GetPaypalUrl(), form);
    }

Благодарю.


person kid_goth    schedule 22.05.2013    source источник
comment
язык программирования С#   -  person kid_goth    schedule 23.05.2013


Ответы (1)


UploadValues ​​имеет перегрузку для использования метода:

webClient.UploadValues(GetPaypalUrl(), "POST", form);
person Carlos Martinez T    schedule 23.05.2013