Forumsvar skapade

Visar 10 inlägg - 1 till 10 (av 53 totalt)
  • Författare
    Inlägg
  • #183910
    RickardP
    Deltagare

    @Patrik Pålsson 90240 wrote:

    Hej, vill först säga tack för att du delat med dig genom en dedikerad sida om ämnet. Min erfarenhet med Swish består i att utveckla ett plugin till NopCommerce i .Net 4.5 MVC miljö. Det pratar med PayEx som betalväxel. Jag har bara kört mot deras testmiljö än så länge men det fungerar väl. I deras Admin interface kan man ladda upp ett certifikat som man får från den bank man har Swish avtal med. Med andra ord slipper man hela certifikat hanteringen själv. I mitt fall kommer både bank och betalväxel ta ut en avgift.

    Hur blir kostnaden i ditt fall, Rickard?

    Jag kan också tipsa om gratis SSL certifikat på https://letsencrypt.org/
    Det funkar utmärkt, är gratis och uppdaterar sig automatiskt. Du behöver ha full åtkomst till din VPS för att lägga in certifikatet.

    När man gör direkt integrationen mot GetSwish AB så är det endast bankens avgifter som man betalar, inga mellanhänders kostnader.

    Fördelen med tex Payex är ju att du bara behöver ha en integration och payex sköter det hela åt en men det blir ju en merkostnad dock.

    Lets Encrypt har jag också använt och fungerar väldigt bra.

    #183873
    RickardP
    Deltagare

    Har ikväll släppt http://www.tabetaltmedswish.se/ som är ett test projekt i C# ASP.NET MVC 5 som går att forka eller ladda ner för att se exempel kod hur man får Swish För Handel att fungera.

    #183850
    RickardP
    Deltagare

    @allstars 90159 wrote:

    Jag implementerade QR kod i ett anmälningsförfarande igår. Gick snabbt men sen kom jag på att det blir väldigt knepigt om användaren själv sitter med mobil.
    Fungerar ju jättebra när man använder dator. Lite svårt att ta kort på QR-koden med samma device. Då hade man velat ha en länk istället med protokoll som leder in till appen med förifyllda uppgifter. Men det går inte dag, väl?!

    Det är dem lägena som Swish För Handel är väldigt bra.

    #183818
    RickardP
    Deltagare

    Nu har ju Axel redan förklarat ovan hur det fungerar men jag har nu lagt in en till undersida om hur QR koden fungerar: http://betalamedswish.se/QR/Info

    #183808
    RickardP
    Deltagare

    @nmn 90099 wrote:

    Att skriva ut QR koden och sätta upp den på en skylt är ju siten perfekt för men att anropa den varje gång vid utcheckning i en webshop har just det problem jag tog upp. Bättre då att släppa källkoden som open source så man själv kan integrera den.

    Det jag funderat på att göra, men just nu inte haft tid.

    #183800
    RickardP
    Deltagare

    @nmn 90097 wrote:

    Bra initiativ men får man inte ett gigantiskt säkerhetshål via ert API om man låter 3:e part skapa QR koden? Bara för er att ändra till ert eget swish nummer och sedan sitta och samla in alla betalningar…

    Visserligen visas ju kontoinnehavaren för den som betalar men folk är ju alltid dummare än man tror, Nigeriabreven drar ju fortfarande in pengar…

    Om man tror ont om folk ska man sjävklart inte använda tredje part grejer, däremot kan mna ju geneera qr koderna genom siten och bekräfta att dem fungerar i så fall som dem ska.

    Det är up till var och en hur dem vill göra.

    Ska nästa vecka försöka skriva ner hur QR koderna fungerar också så kan man ju ha egen intern qr kod generering istället.

    #181904
    RickardP
    Deltagare

    Inga förslag?

    Får väl bli Stripe annars, dem verkar ha bland dem bättre priserna och integration.

    #181249
    RickardP
    Deltagare

    Jag har fått 51 000kr överfört med swish en gång men den personen fick ju lov att öka sina gränser för swish.

    #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();
    }

    #181164
    RickardP
    Deltagare

    Sidan står bara och laddar för mig så ingen bra början.

Visar 10 inlägg - 1 till 10 (av 53 totalt)