Jag är helt ny här på forumet och är i dagligdags webbdesigner. Men jag har tagit mig vatten över huvudet och ska försöka implementera kortbetalning i den webbshop som företaget som jag jobbar på har. jag har redan gjort om hela desigenen på sidan och nu har vi valt Samport för att göra våra betalningar. Hela vår hemsida/webbshop är kodad i ASP. Inte av mig dock utan av en annan person.
Nu till mitt problem. Jag har en webbshop redan, den är klar och funktionell. Men jag vill lägga till att man ska kunna betala med kort. I dagslägen kan man endast betala mot faktura eller i förskott. Jag har skapat ett demokontor hos Samport och laddat ner en exemplfil från dem och implementerat den. Den fugerar som den ska, men jag får inte dit någon data från databasen. Där det borde så mitt namn står det "fornamn" alltså det namnet som jag kallar på förnamn från databasen.
Jag kan verkligen inte ASP alls och jag fattar inte vad jag gör för fel. Supportkillen på Samport är skitotrevlig och vägrar hjälpa mig. Kan någon vänlig själ förklara för mig vad det är jag ska göra? Ska jag skriva ASP-koden i Samports ASP-fil eller ska jag kalla på Samportdatan i vår ASP-fil? Normalt hämtar jag ju data från databasen genom att skriva =RecSet("fornamn"). Men TellusPay har en egen XML-standard som gör att jag ska skriva <fornamn> istället. Men jag fattar inte hur jag ska få dessa två att funger ihop. Jag fattar att jag på något sätt måste ha både och i mitt dokument, men hur?
Snälla, kan någon förklara innan mitt huvud sprängs. :(
(Jag har en bild som förklarar vad jag menar, men jag verkar inte kunna infoga den här...)
Jag har ingen xml-fil direkt som jag kan kolla på. Hittade en exempelfil på deras webmanager, men det var inte några exempel på det i den. Jag har iallafall lagt upp lite filer i mitt filbibliotek nu. Vet inte om ni kommer åt dem. Har inte klurat ut hur sidan funkar än. ;)
Men det du säger tydal verkar ju vettigt, men det funkade inte när jag försökte. Jag är nog inte tillräckligt bra på ASP för att komma på hur jag ska göra det själv. :-(
Hela lösningen är sk Hostad lösning, dvs. kunden slussas till Samports sida där hela betalningen görs och sen slussas kunden tillbaka igen så det ska ju vara enkelt. Det som jag borde kunna göra rent logiskt är ju att se till att det som kunden lägger i sin kundvagn förs vidare till sidan där kunden betalar med kort. Inte så svårt i mitt huvud... Massor värre att utföra visade det sig....
Kortfattat så funkar tellus så här:
Steg 1.
I din shop när kunden väljer kreditkort och klickar på "skicka order" så skickar du kunden till en aspsida på din webplats för att samla ihop all info.
Typ
Steg 2.
På den sidan får du sedan hämta upp alla produkter samt kundinfo och lägga in allt i Tellus förbestämda parametrar och sedan slussa användaren till tellus server.
Ex.
<%
'Hämta alla produkter och kundinfo från databas och lägg in i respektive parameter.
Dim objHTTP, strHTML
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "https://secure.telluspay.com/WebOrder/add/?TP01=???&TP700=???&TP701=???&TP740=???", False
objHTTP.Send
strHTML = objHTTP.responseText
Set objHTTP = Nothing
If err.number = 0 then
Response.redirect "https://secure.telluspay.com/WebOrder/?"& Trim(strHTML)
Else
Response.Write "General Error!<br>" & err.description
End If
%>
Vilka paramterar som finns får du kolla i manualen, men t.ex. förnamn är: TP8021.
Testa lite å återkom om du inte får till det för jag vet också hur besväliga supporten hos Tellus kan vara! :)
Nja, inte precis. Jag fick hjälp igår av en kompis som kan ASP och vi löste väl lite av problemet, men det funkar fortfarande inte. Det vi har problem med är att komma på hur vi ska få vår databasinformation att komma över tillsammans med resten av datan.
Så här har vi gjort nu (eller rättare sagt jag, vi gjorde på ett annat sätt... )
Det här gjorde vi först (jag har lagt in det som står i blått, men jag kommer inte ihåg om det var så där som det skulle se ut.)
Du har missförstått stränghanteringen. :)
Man bygger inte ihop en xmlsträng utan en vanlig textsträng.
För att skicka in produkterna, skriv så här:
<%
Dim Data
Data = "1:Testorder:1:1000,2:Testorder2:1:2000,T:Extra produktrad,T:Ytterligare en produktrad"
...
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "https://secure.telluspay.com/WebOrder/add/?TP740=" & Data & " & Fortsätt_här med_alla_andra_parametrar, False
%>
Produktraden anges i detta format: <artnum>:<description>:<qty>:<price>
Samt att man kan ange textrad med: T:<Description>
Så, för att skicka in produkter samt förnamn skriver du så här:
<%
Dim Data
Data = "1:Testorder:1:1000,2:Testorder2:1:2000,T:Extra produktrad,T:Ytterligare en produktrad"
...
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "https://secure.telluspay.com/WebOrder/add/?TP740=" & Data & "&TP8021=Nisse", False
%>
Jo, det har jag förstått. :-) Det funkar också. Det fick jag att funka rätt så omgående. Men kruxet är ju hur jag får in min kundkorg istället för parametrarna. Jag känner mig verkligen totalt korkad just nu. Jag stirrar på koden och fattar verkligen inte hur jag ska gå tillväga. Det känns som att jag missar något vitalt i det hela. Det är säkert något väldigt fundamentalt enkelt, men min hjärna har gått i baklås... ;-) Någonstan måste jag ju säga att <artnum> = artikelnr och att det ska hämtas från vår databas. och att TP8021 = fornamn och det ska hämtas från vår kunddatabas. Eller? Gah... att det är fredag hjälper inte till det heller...
Det är bara att göra en vanlig databashämtning, har du koll på hur man gör det?
Annars finns 1000 svar här under aspforumet som tar upp databashämtningar.
Ex.
<%
Dim Data, FirstName, objRs
Set objRs = objConn.execute("SELECT ArticleNe, ProductName, Quantity, Price, FirstName FROM Tabell")
FirstName = objRs("FirstName")
Do Until objRs.Eof
Data = Data & objRs("ArticeNr") & ":" & objRs("ProductName") & ":" & objRs("Quantity") & ":" & objRs("Price")
If objRs.AbsolutePosition < objRs.RecordCount Then Data = Data & ","
objRs.MoveNext
Loop
...
objHTTP.Open "GET", "https://secure.telluspay.com/WebOrder/add/?TP740=" & Data & "&TP8021=" & FirstName, False
%>
Jo, det är gjort, men utan framgång. När man kör koden bara för sig själv så får vi upp infon, men så fort vi stoppar in den i asp-filen som kom från Samport så blir det fel. Det enda som kommer upp är General Error. Inkompatibla typer.
Så här ser ASP-koden ut nu: Det kanske är något fel i den?
Dim Data
Data = ""
Do Until RecSet.EOF
Do Until RecSet.EOF
Data = Data & RecSet("artikelnr") & ":" & RecSet("storlek") & " " & RecSet("farg") & ":" & RecSet("antal") & ":" & RecSet("pris") & ","
RecSet.MoveNext
Loop
Dim Data
Data = ""
Do Until RecSet.EOF
Data = Data & RecSet("artikelnr") & ":" & RecSet("storlek") & " " & RecSet("farg") & ":" & RecSet("antal") & ":" & RecSet("pris") & ","
RecSet.MoveNext
Loop
Data = Left(Data, Len(Data)-1)
...