コード例 #1
0
        /// <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());
        }
コード例 #2
0
        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);
        }