webForumDet fria alternativet

Hur koppla en databas till TellusPay?

ASP

13 svar · 959 visningar · startad av MrsGoth

Medlem sedan okt. 200612 inlägg
Frågan#1

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...)

Medlem sedan juni 20034 013 inlägg
#2

Har aldrig använt TellusPay, men titta på hur deras exempel-XML-fil ser ut och skapa en likadan utifrån det du har i databasen.

Det kanske ska stå så här:

<fornamn>Kalle</fornamn>
<efternamn>Karlsson</efternamn>

Och då får du ju ut det genom att skriva:

<fornamn><%=RecSet("fornamn")%></fornamn>
<efternamn><%=RecSet("efternamn")%></efternamn>

För att hjälpa dig mer behöver jag nog få se lite filer...

Medlem sedan dec. 20025 483 inlägg
#3

Hej och välkommen till wF! :bire

Ladda upp filen genom att trycka på "Hantera bifogade filer" -> (bläddra efter aktuell fil) -> "Ladda upp" -> (stäng popupfönstret) -> (skicka svar).

I "Hantera bifogade filer" står vilka filändelser som accepteras. Är filändelsen ej godkänd kan du zippa och bifoga den.

Medlem sedan okt. 200612 inlägg
#4

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....

Medlem sedan juni 20003 076 inlägg
#5

Tjena!
Har det löst 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

<input type="button" onclick="window.location.href='go_to_tellus.asp' ;" />

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! :)

Medlem sedan okt. 200612 inlägg
#6

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.)

[red]'Data = Data & RecSet("artikelnr") & [blue]"<artnum>:" [/blue] & RecSet("storlek") & ", " & RecSet("farg") & [blue]"<description>:" [/blue] & RecSet("antal") & [blue]"<qty>:" [/blue] & RecSet("pris") & [blue]"<price>:"".[/blue]00"[/red]

Då fick vi ett general error....

...då höftade jag lite och gjode så här istället:

Data = Data & "<artnum>"= & RecSet("artnum"): & "<description>"= & RecSet("artikel"): & "<qty>"= & RecSet("antal"): & "<price>"= & RecSet("pris") ".00"

Det funkar inte heller, nu får jag kompileringsfel.... x( (vilket inte är så konstigt eftersom jag inte kan skriva ASP... ;) )

Varför ska det vara så krångligt??? Livet ska vara lätt och jag ska förstå allt... ;)

Medlem sedan juni 200032 967 inlägg
#7

Ta bort = som du lagt till före &-tecknen när du lägger samman strängen.

mvh

Medlem sedan okt. 200612 inlägg
#8

Det funkade inte bättre. Jag tror jag fortsätter på raden som min ASP-kille gjorde. Det känns mer säkert. ;-)

Data = RecSet("artikelnr") & "<artnum>:" & RecSet("storlek") & "<description>:" & RecSet("antal") & "<qty>:" & RecSet("pris") & "<price>:"".00"
Medlem sedan juni 20003 076 inlägg
#9

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
%>

Förstått!? :)

Medlem sedan okt. 200612 inlägg
#10

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...

Medlem sedan juni 20003 076 inlägg
#11

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
%>
Medlem sedan okt. 200612 inlägg
#12

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
Medlem sedan juni 20003 076 inlägg
#13

Ja, lite fel är det! ;)
Ändra till:


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)
...
Medlem sedan okt. 200612 inlägg
#14

Nu är det fixat. :-) Äntligen så funkar det. Nu är det bara lite annat som ska funka med... ;-)

276 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)