Vinnaren i pepparkakshustävlingen!
2021-11-15, 09:30
  #1
Medlem
Hur kan man omdirigera en användare efter ett POST-anrop från en annan källa?

Sitter med Swish sandboxmiljö och undrar hur jag ska hantera deras callback efter signerat köp för att omdirigera användaren till en annan sida. De skickar först ett ID på den betalningsförfrågan man skapat, sedan dyker köpet upp i mobilen, efter signering får man ett POST-anrop till valfri URL med lite data från Swish.

Jag går nu i tankarna att sätta upp något sånt här:

- Callback-URLn lagrar POSTen från Swish i databas.
- Betalsidan där kunden uppmuntras öppna sin Swishapp gör ett återkommande Ajaxanrop till databasen och kollar efter betalningförfrågans ID typ var 5:e sekund.
- Om IDt hittas har signeringen genomförts och kunder skickas vidare.

Men jag tänker att detta borde gå att göra utan javascript men hur?
Citera
2021-11-15, 10:12
  #2
Medlem
JohannesSnajdares avatar
Nja, det blir nog svårt att göra på något annat sätt än det du redan tänkt ut.
Den callback som kommer in är ju helt åtskild från den session som användaren har igång så du måste mellanlagra någonstans, antingen i databas eller i minnet eller nåt.

Sen om sidan pollar eller inte är ju en smaksak, det går ju att göra nåt med t.ex. websockets & push.

Men konceptuellt är det ju samma sak, sidan måste kolla med sitt betalnings-ID som man fick när swishsessionen initierades om betalningen genomförts eller avbrutits.
Citera
2022-08-09, 17:13
  #3
Medlem
attackes avatar
Absolut går det att lösa utan javascript, men det kommer inte bli vackert.
Det är som att ta en tidsmaskin tillbaks till 90-talet då.

Alternativen till att använda ajax requests är att ladda om hela sidan, då kommer vyn flimra om och du kommer få flera olika requests till servern från besökaren (de kanske laddar CSS/JS/Bilder som presenteras på sidan)

Ett kanske lite finare sätt att lösa det är att ladda alternativ adress via en iframe.
Men iframe bör undvikas som pesten.
Det var efter det som ajax (XMLRPC) kom och räddade oss från det.
Citera
2022-08-11, 14:39
  #4
Medlem
Citat:
Ursprungligen postat av do-ob
Men jag tänker att detta borde gå att göra utan javascript men hur?
Av nyfikenhet: Varför känner du att du vill göra det utan javascript?
Citera
2022-10-21, 16:12
  #5
Medlem
Citat:
Ursprungligen postat av Koenigsegg
Av nyfikenhet: Varför känner du att du vill göra det utan javascript?
För att jag kan så pass lite om säkerhet att det känns lite som öppet mål att studsa runt betalningsanrop med JS som alla kan se. Även om den verkligt känsliga datan måhända sköts på servernivå så sparar jag sessions-id och annat i db, vilket kan ge skurkar något att fiska med.
Citera
2022-10-21, 17:47
  #6
Medlem
PissBusss avatar
Citat:
Ursprungligen postat av do-ob
För att jag kan så pass lite om säkerhet att det känns lite som öppet mål att studsa runt betalningsanrop med JS som alla kan se. Även om den verkligt känsliga datan måhända sköts på servernivå så sparar jag sessions-id och annat i db, vilket kan ge skurkar något att fiska med.

Låter som att du är fel person att göra integrationen.

Hur som helst gör du så att du svarar klienten med HTTP 302 och rätt mål i Location, se https://en.wikipedia.org/wiki/HTTP_302 .
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback