Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 14:37 Der er 11 kommentarer og
1 løsning

Betalingsserver fra http til https

Hej Eksperter

Jeg er ved at lave en webshop, men får nogle problemer når folk skal betale.

Jeg bruger wannafinds betalingsserver - hvilket gør at når jeg skifter over fra http til https - går alle sessions og cookies tabt.

Wannafind skriver:
"Vær opmærksom på at SSLproxy’en ikke understøtter sessions, samt cookies"

Der er lavet en funktion som tjekker indholdet af kurven ud fra ens bruger session.

-------------------------------------------------------------------
<%
Totalt_kurv = 0
Set RS_kurv_status = Server.CreateObject("ADODB.RecordSet")
RS_kurv_status.open "Select * from kurv WHERE session_id = " & session.SessionID& "", Conn,1,3
    DO WHILE NOT RS_kurv_status.eof
        SET RS_vare_pris = Server.CreateObject("ADODB.RecordSet")
        RS_vare_pris.open "SELECT * FROM produkter WHERE id = " & RS_kurv_status("vare_nr") & "", Conn,1,3
            'Regn pris ud - gange hvor mange eksemplarer der er bestilt
            'Gemmer i variabel
            Totalt_kurv = Totalt_kurv + RS_vare_pris("pris") * RS_kurv_status("vare_antal")
           
    RS_kurv_status.movenext
    LOOP
%>
-------------------------------------------------------------------

Dette kan jeg ikke længere eftersom cookies og sessions ikke kan bruges.

Derfor har jeg forsøgt på siden inden jeg skifter over til https at ligge session id ned i en hidden form.

-------------------------------------------------------------------
<form action="https://betaling.wannafind.dk/proxy/p.php/http://www.sidensnavn.dk/default.asp?site_id=12&Action=new_order" method="post" name="tjek">
<input type="hidden" name="session_id" value="<%=session.SessionID%>">
...
-------------------------------------------------------------------

på den næste side har jeg så lavet om i scriptet der kalder kurven, så den henter session id fra formen:
-------------------------------------------------------------------
Totalt_kurv = 0

Set RS_kurv_status = Server.CreateObject("ADODB.RecordSet")
RS_kurv_status.open "Select * from kurv WHERE session_id = " & request.form("session_id"), Conn,1,3
    DO WHILE NOT RS_kurv_status.eof
        SET RS_vare_pris = Server.CreateObject("ADODB.RecordSet")
        RS_vare_pris.open "SELECT * FROM produkter WHERE id = " & RS_kurv_status("vare_nr") & "", Conn,1,3
            'Reng pris ud - gange hvor mange eksemplarer der er bestilt
            'Gemmer i variabel
            Totalt_kurv = Totalt_kurv + RS_vare_pris("pris") * RS_kurv_status("vare_antal")
           
    RS_kurv_status.movenext
    LOOP
-------------------------------------------------------------------

Men på trods af min gode idé vil dette ikke virke :o(

-------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC driver does not support the requested properties.

/files/file_12.asp, line 25
-------------------------------------------------------------------

Linje 25 er denne:
RS_kurv_status.open "Select * from kurv WHERE session_id = " & request.form("session_id"), Conn,1,3


Jeg bruger en MySQL database hvis det er til noget hjælp!!

Håber at I kan hjælpe mig med denne lille udfordring :o)

// Bruhn
Avatar billede cbadk Novice
14. februar 2005 - 14:56 #1
hejsa...

jep...man kan ikke skifte mellem https og http uden at session id/var og cookies går tabt.

Brug istedet for et GUID til at overføre mellem https og http!

Altså opret et record i din database med id'et og så send det videre i en streng!

/cbadk
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 15:21 #2
hvorfor virker det ikke som jeg har lavet det med et hidden field?
Avatar billede cbadk Novice
14. februar 2005 - 15:48 #3
prøv med denne:

Set RS_kurv_status = Server.CreateObject("ADODB.RecordSet")
RS_kurv_status.open "Select * from kurv WHERE session_id = " & "'" & request.form("session_id")& "'", Conn,1,3
    DO WHILE NOT RS_kurv_status.eof
        SET RS_vare_pris = Server.CreateObject("ADODB.RecordSet")
        RS_vare_pris.open "SELECT * FROM produkter WHERE id = " & RS_kurv_status("vare_nr") & "", Conn,1,3
            'Reng pris ud - gange hvor mange eksemplarer der er bestilt
            'Gemmer i variabel
            Totalt_kurv = Totalt_kurv + RS_vare_pris("pris") * RS_kurv_status("vare_antal")
           
    RS_kurv_status.movenext
    LOOP
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 15:53 #4
den melder ikke fejl nu, men beløbet er stadig 0 :o(
Avatar billede cbadk Novice
14. februar 2005 - 15:54 #5
oki ...har måske også en løsning på det :)

Prøv at smide koden op !
Avatar billede cbadk Novice
14. februar 2005 - 15:55 #6
Totalt_kurv = RS_vare_pris("pris") * RS_kurv_status("vare_antal")
Avatar billede cbadk Novice
14. februar 2005 - 16:01 #7
virker det ?:
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 16:05 #8
nope :o(
Avatar billede cbadk Novice
14. februar 2005 - 16:08 #9
har du husket at angive dem til tal i din database...altså IKKE tekst ?
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 16:12 #10
ja de er alle tal-felter (int)
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 16:26 #11
jeg har lige prøvet at udskrive session_id

i den form som normalt er hidden, har jeg lavet det om til tekst - så står der:
<input type="text" name="session_id" value="962599866">


Men når jeg kalder formen på næste side:
<%=request.form("session_id")%> skriver den intet
Avatar billede bruhnsweb Nybegynder
14. februar 2005 - 17:06 #12
Hvis jeg sender den med i url'en - virker det :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester