/// <summary> /// Refund a payment with paymentReference from a payment status that says PAID /// </summary> /// <param name="id">paymentReference</param> /// <param name="a">Amount to refund</param> /// <param name="p">payeePaymentReference = Order ID eller annat som identifierar ordern som är betald och i detta fall återköpt</param> /// <returns></returns> public ActionResult Refund(string id, int a, string p) { string result = string.Empty; // Kontrollera om web.config är satt att vara i test läge if (Config.TestMode) { // Hämta sökvägen till certifikatet string certificatePath = HostingEnvironment.MapPath(@"~/App_Data/" + Config.Test.CertificateFileName); // Läs in certifikat filen som en byte array, detta är endast för att visa att funktionen nedan kan ta en byte array som skulle kunna hämtats från en databas byte[] certDataBytes = System.IO.File.ReadAllBytes(certificatePath); // Kontrollera betalnings status med hjälp av certifikatet som en byte array // "Återköp" strängen är meddelandet användaren ser vid återbetalning i Swish appen, här bör man kankse i en produktionsmiljö skicka med mer detaljer result = SwishHelper.PaymentRefundWithWithByteArray(p, id, a, "Återköp", Config.Test.RefundCallbackURL, certDataBytes, Config.Test.CertificatePassword, Config.Test.PaymentRefundURL, Config.Test.PayeeAlias); } else { // Hämta sökvägen till certifikatet string certificatePath = HostingEnvironment.MapPath(@"~/App_Data/" + Config.Production.CertificateFileName); // Läs in certifikat filen som en byte array, detta är endast för att visa att funktionen nedan kan ta en byte array som skulle kunna hämtats från en databas byte[] certDataBytes = System.IO.File.ReadAllBytes(certificatePath); // Kontrollera betalnings status med hjälp av certifikatet som en byte array // "Återköp" strängen är meddelandet användaren ser vid återbetalning i Swish appen, här bör man kankse i en produktionsmiljö skicka med mer detaljer result = SwishHelper.PaymentRefundWithWithByteArray(p, id, a, "Återköp", Config.Production.RefundCallbackURL, certDataBytes, Config.Production.CertificatePassword, Config.Production.PaymentRefundURL, Config.Production.PayeeAlias); } return(View()); }
private X509Certificate2 GetX509Certificate2ByX(string certificateFileName, string certificatePassword = "") { //Basic set up ServicePointManager.CheckCertificateRevocationList = false; //Tls12 does not work ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11; //Load client certificates var clientCerts = new X509Certificate2Collection(); // Hämta sökvägen till certifikatet string certificatePath = HostingEnvironment.MapPath(certificateFileName); // Läs in certifikat filen som en byte array, detta är endast för att visa att funktionen nedan kan ta en byte array som skulle kunna hämtats från en databas byte[] certDataBytes = System.IO.File.ReadAllBytes(certificatePath); clientCerts.Import(certDataBytes, certificatePassword, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet); //Assert CA certs in cert store, and get root CA X509Certificate2 rootCertificate = SwishHelper.AssertCertsInStore(clientCerts); return(rootCertificate); }