Avatar billede madonion Nybegynder
19. april 2006 - 10:03 Der er 9 kommentarer og
1 løsning

Opdatering af database fra DIBS betaling.

Hej.

Jeg er ved at lave en dankort løsning for en betalings side. Jeg skal bruge DIBS som betalings service, og sidder meget fast.

Jeg skal opdatere en database med et beløb på brugerens kopi-kort når betalingen er godkendt. Jeg bruger DIBS feedbackURL som kan benyttes for at lave "server til server svar" når betalingen er godkendt. Denne feedback kan således køre et script når man når til den side hos DIBS som indikerer at betalingen er OK.

I min betaling gør jeg altså følgende:

<input type="hidden" name="callbackurl" value="http://betaling.dk/feedback.asp" />

så er DIBS vinduet klar over at der benyttes callbackURL - og denne del virker fint.

Min tvivl kommer så ind i billedet med hvad feedback.asp skal indeholde. Jeg har prøvet med følgende:

<%

' Databaseforbindelse
set Objcnn = server.createobject("ADODB.Connection")
Objcnn.open "PROVIDER=SQLOLEDB;DATA SOURCE=databaseserver;UID=xxxxx;PWD=*****;DATABASE=databasenavn "

'Oprettelse af recordset
set rs = Server.CreateObject("ADODB.recordset")
rs.ActiveConnection = Objcnn
rs.CursorType = 3
rs.LockType = 3

'SQL foresprørgsel
strSQLQuery = "SELECT TOP 1 * FROM cat_validation WHERE (name = 'brugernavn') ORDER BY creation DESC"
rs.Open strSQLQuery, Objcnn

balance = trim(rs("balance"))
Myresult = "100"


Ialt = cint(balance) + cint(Myresult)

rs("balance") = Ialt
rs.update


'Rydder op.
Set rs = Nothing

Objcnn.Close
Set Objcnn = Nothing

Session.Abandon()
%>

Hele denne smørre virker hvis jeg kører den ved at gå ind på 'http://betaling.dk/feedback' så opdateres databasen med 100 kr, lige som ønsket. (Der vil blive tale om sessioner når det endelige resultat står klar, således det er et krav at man kommer fra DIBS siden for at der sker en opdatering. Her er brugt konstanter for at teste det)
Men jeg kan ikke få DIBS siden til at køre dette script. Hvad gør jeg forkert?
Jeg mener at DIBS siden skal køre det script der er på callbackURL når betalingen er accepteret, men det sker ikke.... Nogen der kender til DIBS's betalings systemer og kan hjælpe?
Avatar billede fsconsult.dk Nybegynder
19. april 2006 - 10:29 #1
uden at have nærlæst hele din beskrivelse, så skal du være opmærksom på, at du på den side du angive som DIBS feedback side IKKE har forbindelse til brugerens session ...
Avatar billede madonion Nybegynder
19. april 2006 - 10:47 #2
Jeg er godt klar over den del af situationen fsconsult.dk. Jeg kan heldigvis konfigurere DIBS vinduet således at det videresender de informationer om brugeren/beløb jeg har brug for. Så de sessioner har jeg ikke brug for.

Jeg har prøvet at ændre feedback.asp til blot at indeholde:
<%
response.redirect "side1.asp"
>%

Dette har heller intet resultat. Jeg synes ikke rigtigt DIBS siden udfører de ting/script jeg har angivet på feedback.asp (som er min callbackURL).
Avatar billede ldanielsen Nybegynder
19. april 2006 - 10:52 #3
Du skriver:
<input type="hidden" name="callbackurl" value="http://betaling.dk/feedback.asp" />

skal det ikke være adressen på feedback.asp på dit eget site?
Avatar billede madonion Nybegynder
19. april 2006 - 10:59 #4
@ ldanielsen:
jo det er dårligt formuleret. Jeg havde ikke tjekket at der var noget der hed betaling.dk. men min callbackURL ER: http://egetsite.dk/feedback.asp
Alle steder der står betaling.dk er der tale om egetsite.dk
Avatar billede ldanielsen Nybegynder
19. april 2006 - 11:22 #5
Det ser jo rigtigt ud alt sammen. Men hvad med formen som su starter med, og som callbackurl sendes med? Der er vel ikke fejl, reservrede ord eller lignende i den? Prøv evt at lægge callbackurl først i formen. Prøv evt at udelade http://. Hvorfor er der Session.Abandon i scriptet, det har ikke nogen relevans i denne forbindelse, fjern det.

Du kan nok høre at jeg skyer i blinde nu, ikke :o)

Ring evt. til DIBS, de er både flinke og dygtige.
Avatar billede ldanielsen Nybegynder
19. april 2006 - 11:23 #6
skyder
Avatar billede madonion Nybegynder
24. april 2006 - 15:45 #7
Jeg er helt på bar bund stadig væk. Har kontaktet DIBS og her er deres svar:

Callback url er et server til server textsvar via POST.

Dvs. din url skal være et script som samle de parametre op som i gerne vil bruge og gemmer dem.

Du kan evt. starte med at lave et script der ikke gør andet end at skrive alt hvad det modtager i en taxtfil. På den måde kan du se hvad i modtager og hvilke navne der er brugt.

Og hvordan gør jeg så det?
Avatar billede ldanielsen Nybegynder
25. april 2006 - 09:26 #8
Det er nok lettere med en e-mail, hvis du altså har noget kode der kan sende e-mails. Og det tror jeg nok du har, ellers er der noget her :o)


feedback.asp:


<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Library" --> 
<%

'Det du skal sende er simpelthen Request.Form, der er en streng i formen "field=value&field2=value2"

Dim strBody
strBody = Request.Form

Dim objMessage, objConfig
Set objMessage = Server.CreateObject("CDO.Message")
Set objConfig = Server.CreateObject("CDO.Configuration")

With objConfig.Fields
  .Item(cdoSendUsingMethod) = cdoSendUsingPort
  .Item(cdoSMTPServer) = "DinSmtpServerHer"
  .Update   
End With 

With objMessage
  Set .Configuration = objConfig
  .To = "din@email.her"
  .From = "din@email.her"
  .Subject  = "strSubject"
  .Body = strBody
  .Send 
End With
   
Set objConfig = Nothing
Set objMessage = Nothing
%>
Avatar billede madonion Nybegynder
25. april 2006 - 10:36 #9
TANKETORSK fre EGEN side.

Den side som DIBS skal sende sit svar til kan jo ikke ligge på localhost!
Hvis jeg angiver til DIBS at de skal sende et svar til localhost, så sender DIBS jo et svar til sig selv!!

Siden er lagt op på en webserver og svaret sendes til denne. Nu virker det hele jo som det skal. :)
Avatar billede ldanielsen Nybegynder
25. april 2006 - 10:46 #10
OK, så var der jo en forklaring.
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
Computerworld tilbyder specialiserede kurser i database-management

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