Startsida Forum E-handelsforumet Betalsystem Swish för e-handel implementation

Visar 10 inlägg - 51 till 60 (av 81 totalt)
  • Författare
    Inlägg
  • #180910
    Joel B
    Deltagare

    Curl behöver i detta fall använda sig av OpenSSL och inte NSS. Det bör lösa era problem.

    #180913
    TommyK
    Deltagare

    @Joel B 86180 wrote:

    Curl behöver i detta fall använda sig av OpenSSL och inte NSS. Det bör lösa era problem.

    I mitt fall är det något annat problem.

    curl –version
    curl 7.47.1 (x86_64-pc-linux-gnu) libcurl/7.43.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.28 librtmp/2.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets[/CODE][CODE]curl –version
    curl 7.47.1 (x86_64-pc-linux-gnu) libcurl/7.43.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.28 librtmp/2.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
    Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets[/CODE]

    #180933
    robertpohl
    Deltagare

    @TommyK

    Ser inte att du länkar in CA certet

    #180936
    TommyK
    Deltagare

    @robertpohl 86204 wrote:

    @TommyK

    Ser inte att du länkar in CA certet

    Tack för att du orkar kolla. Det är för jag lagt till certet i servern som det funkar så långt ändå. Jag får/fick samma resultat innan jag gjorde det också;

    # curl -i -v –request POST https://mss.swicpc.bankgirot.se/swish-cpcapi/api/v1/paymentrequests/ –cert swish1231181189.p12:swish –cert-type p12 –cacert swish-ca.pem –tlsv1.1
    * Trying 194.242.111.76…
    * Connected to mss.swicpc.bankgirot.se (194.242.111.76) port 443 (#0)
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    * CAfile: swish-ca.pem
    CApath: /etc/ssl/certs
    * TLSv1.1 (OUT), TLS header, Certificate Status (22):
    * TLSv1.1 (OUT), TLS handshake, Client hello (1):
    * TLSv1.1 (IN), TLS handshake, Server hello (2):
    * TLSv1.1 (IN), TLS handshake, Certificate (11):
    * TLSv1.1 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.1 (IN), TLS handshake, Request CERT (13):
    * TLSv1.1 (IN), TLS handshake, Server finished (14):
    * TLSv1.1 (OUT), TLS handshake, Certificate (11):
    * TLSv1.1 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.1 (OUT), TLS handshake, CERT verify (15):
    * TLSv1.1 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.1 (OUT), TLS handshake, Finished (20):
    * TLSv1.1 (IN), TLS alert, Server hello (2):
    * error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure
    * Closing connection 0
    curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure[/CODE][CODE]# curl -i -v –request POST https://mss.swicpc.bankgirot.se/swish-cpcapi/api/v1/paymentrequests/ –cert swish1231181189.p12:swish –cert-type p12 –cacert swish-ca.pem –tlsv1.1
    * Trying 194.242.111.76…
    * Connected to mss.swicpc.bankgirot.se (194.242.111.76) port 443 (#0)
    * ALPN, offering http/1.1
    * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
    * successfully set certificate verify locations:
    * CAfile: swish-ca.pem
    CApath: /etc/ssl/certs
    * TLSv1.1 (OUT), TLS header, Certificate Status (22):
    * TLSv1.1 (OUT), TLS handshake, Client hello (1):
    * TLSv1.1 (IN), TLS handshake, Server hello (2):
    * TLSv1.1 (IN), TLS handshake, Certificate (11):
    * TLSv1.1 (IN), TLS handshake, Server key exchange (12):
    * TLSv1.1 (IN), TLS handshake, Request CERT (13):
    * TLSv1.1 (IN), TLS handshake, Server finished (14):
    * TLSv1.1 (OUT), TLS handshake, Certificate (11):
    * TLSv1.1 (OUT), TLS handshake, Client key exchange (16):
    * TLSv1.1 (OUT), TLS handshake, CERT verify (15):
    * TLSv1.1 (OUT), TLS change cipher, Client hello (1):
    * TLSv1.1 (OUT), TLS handshake, Finished (20):
    * TLSv1.1 (IN), TLS alert, Server hello (2):
    * error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure
    * Closing connection 0
    curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure[/CODE]

    #181129
    hedqvist
    Deltagare

    Hej,

    Jag har utvecklat en modul för Swish Handel till WooCommerce, jag hjälper gärna er andra att komma på rätt spår om ni har några frågor.

    #181233
    JenL
    Deltagare

    Jag är jätte frustrerad.

    Jag har en Prestashop Webbutik och skulle fixa en SWISH modul för detta. Prestaworks har utvecklat en modul, yay.

    ”För att använda Swish behöver du dels ett Swish-konto för företag
    kopplat mot bankgirot, men även en server som har ett SSL-certifikat.
    Swish kräver att du har ett SSL-certifikat på din server för att kunna
    använda deras betalsätt i din butik.”

    Okay, kollade med Support för min webhotel. Och där tog det slut. Jag har ingen dedikerad IP-adress som jag behöver för att köpa en SSL-certifikat för min webshop.

    Har inte råd med en dedikerat server…. så stort är min shop inte.

    Mycket irriterade, just för oss med små webbutiker.

    #181234
    jonathanb
    Deltagare

    Dedikerad server för att kunna installera SSL? Låter galet, kolla igen med webhotellet eller byt om de inte kan hjälpa dig.

    #181236
    RickardP
    Deltagare

    Digrad affärsystem släppte denna C# kod på ett annat forum som ska hjälpa enligt dem, inte hunnit testat.

    private HttpWebRequest CreateSwishRequest(String url, String clientCertPath, String clientCertPass)
    {
    //Basic set up
    ServicePointManager.CheckCertificateRevocationList = false;
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11; //Tls12 does not work

    //Load client certificates
    var clientCerts = new X509Certificate2Collection();
    clientCerts.Import(clientCertPath, clientCertPass ?? ””, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet);

    //Assert CA certs in cert store, and get root CA
    var rootCertificate = AssertCertsInStore(clientCerts);

    var req = HttpWebRequest.Create(url) as HttpWebRequest;
    req.ClientCertificates = clientCerts;
    req.Method = ”POST”;
    req.ContentType = ”application/json; charset=UTF-8”;
    req.AllowAutoRedirect = false;

    //Verify server root CA by comparing to client cert root CA
    req.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => {
    var chainRootCa = chain?.ChainElements?.OfType().LastOrDefault()?.Certificate;
    if (rootCertificate == null || chainRootCa == null)
    return false;
    return rootCertificate.Equals(chainRootCa); //Same root CA as client cert
    };

    return req;
    }

    private X509Certificate2 AssertCertsInStore(X509Certificate2Collection certs)
    {
    //Create typed array
    var certArr = certs.OfType().ToArray();
    //Build certificate chain
    var chain = new X509Chain();
    chain.ChainPolicy.ExtraStore.AddRange(certArr.Where(o => !o.HasPrivateKey).ToArray());
    var privateCert = certArr.FirstOrDefault(o => o.HasPrivateKey);
    if (privateCert == null)
    return null;
    var result = chain.Build(privateCert);
    //Get CA certs
    var caCerts = chain.ChainElements.OfType().Where(o => !o.Certificate.HasPrivateKey).Select(o => o.Certificate).ToArray();
    if (caCerts == null || caCerts.Length == 0)
    return null;
    //Assert CA certs in intermediate CA store
    var intermediateStore = new X509Store(StoreName.CertificateAuthority, StoreLocation.CurrentUser);
    intermediateStore.Open(OpenFlags.ReadWrite);
    foreach (var ca in caCerts)
    {
    if (!intermediateStore.Certificates.Contains(ca))
    intermediateStore.Add(ca);
    }
    intermediateStore.Close();
    //Return last CA in chain (root CA)
    return caCerts.LastOrDefault();
    }

    #181252
    hedqvist
    Deltagare

    @JenL 86618 wrote:

    Jag är jätte frustrerad.

    Jag har en Prestashop Webbutik och skulle fixa en SWISH modul för detta. Prestaworks har utvecklat en modul, yay.

    ”För att använda Swish behöver du dels ett Swish-konto för företag
    kopplat mot bankgirot, men även en server som har ett SSL-certifikat.
    Swish kräver att du har ett SSL-certifikat på din server för att kunna
    använda deras betalsätt i din butik.”

    Okay, kollade med Support för min webhotel. Och där tog det slut. Jag har ingen dedikerad IP-adress som jag behöver för att köpa en SSL-certifikat för min webshop.

    Har inte råd med en dedikerat server…. så stort är min shop inte.

    Mycket irriterade, just för oss med små webbutiker.

    Det räcker ju med att skaffa en webbhotell som har stöd för SSL. Kan personligen tipsa om Oderland.

    #181550
    folke123
    Deltagare

    Hej!

    Är det någon som har implementerat lösningen själv i t.ex PHP som skulle kunna visa hur? Eller om det finns någon lite enklare guide än de som SWISH har publicerat.

    Och sen en fråga, om kunden använder sin mobila webbrowser, hanteras det som att kunden hade använt en stationär maskin? Dvs att han måste öppna swish appen etc, eller sker det direkt i webläsaren då?

Visar 10 inlägg - 51 till 60 (av 81 totalt)
  • Du måste vara inloggad för att svara på detta ämne.