Интеграция Sage Pay Server с .NET MVC

Как мы интегрируем SagePay с .NET MVC

Когда мы пытаемся использовать в MVC, он возвращает vpsprotocol только как 2.23 вместо 3.00.

Может ли кто-нибудь сообщить нам, как правильно включить ссылку на dll в .NET MVC

Спасибо

Шрини


person Srinivas S    schedule 04.02.2015    source источник


Ответы (2)


Компонент SagePayMVC, разработанный Джермеми Скиннером, значительно упростит процесс интеграции с сервером sagepay.

http://www.jeremyskinner.co.uk/2009/09/27/using-sagepay-with-asp-net-mvc/

С Уважением

Мэтью

person user3796141    schedule 13.05.2015
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person Wouter; 13.05.2015

Вот мой пример реализации Sage Pay Server Integration and Protocol Guidelines 3.00 с MVC и .Net Core 2.2
Часть кода с "VPSProtocol", "3.00"

 [HttpPost("submited")]
    public async Task<IActionResult> SubmitedPayment(PaymentDTO paymentDTO)
    {
        paymentDTO.Description = "Invoice Description";
        paymentDTO.VendorTxCode = Guid.NewGuid().ToString().ToUpper();
        paymentDTO.NotificationURL = $"{_configuration["AppUrl"]}/Payment/RedirectURL";
        paymentDTO.Vendor = _configuration["Vendor"];
        var client = new HttpClient();
        var data = PostData(paymentDTO);
        var result = await client.PostAsync(_configuration["SagePayUrl"], new FormUrlEncodedContent(data));
        var contentResponse = await result.Content.ReadAsStringAsync();
        if (contentResponse.Contains("Status=OK"))
            return Redirect(await SaveSuccessResponseData(paymentDTO, contentResponse));
        ViewBag.StatusDetail = contentResponse;
        return View("Error");
    }
   private Dictionary<string, string> PostData(PaymentDTO paymentDTO)
    {
        return new Dictionary<string, string>
        {
            { "VPSProtocol", "3.00" },
            { "TxType", "PAYMENT" },
            { "Vendor", _configuration["Vendor"] },
            { "Currency", paymentDTO.Currency },
            { "Amount", paymentDTO.Amount.ToString() },
            { "Description", paymentDTO.Description },
            { "VendorTxCode", paymentDTO.VendorTxCode },
            { "NotificationURL", paymentDTO.NotificationURL},
            { "BillingFirstnames", paymentDTO.BillingFirstnames },
            { "BillingSurname", paymentDTO.BillingSurname },
            { "BillingAddress1", paymentDTO.BillingAddress1 },
            { "BillingAddress2", paymentDTO.BillingAddress2 },
            { "BillingCity", paymentDTO.BillingCity },
            { "BillingPostCode", paymentDTO.BillingPostCode },
            { "BillingCountry", paymentDTO.BillingCountry },
            { "DeliveryFirstnames", paymentDTO.DeliveryFirstnames ?? paymentDTO.BillingFirstnames},
            { "DeliverySurname", paymentDTO.DeliverySurname ?? paymentDTO.BillingSurname},
            { "DeliveryAddress1", paymentDTO.DeliveryAddress1 ?? paymentDTO.BillingAddress1},
            { "DeliveryAddress2", paymentDTO.DeliveryAddress2 ?? paymentDTO.BillingAddress2},
            { "DeliveryCity", paymentDTO.DeliveryCity ?? paymentDTO.BillingCity},
            { "DeliveryPostCode", paymentDTO.DeliveryPostCode ?? paymentDTO.BillingPostCode},
            { "DeliveryCountry", paymentDTO.DeliveryCountry ?? paymentDTO.BillingCountry},
            { "BillingState", paymentDTO.BillingState },
            { "DeliveryState", paymentDTO.DeliveryState ?? paymentDTO.BillingState},
            { "CustomerEMail", paymentDTO.CustomerEMail}
        };
    }

Весь проект доступен на GitHub https://github.com/AleksandrChuikov/SagePay-ServerIntegration-MVC-.NET-Core-2.2

person Aleksandr Chuikov    schedule 16.06.2019