[PHP] Paypal, hoe na te gaan of iemand heeft betaald

Pagina: 1
Acties:
  • 122 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
Ik heb een webshop gemaakt met paypal erbij, de transactie verloopt goed en ik heb hem zo ingesteld dat na de betaling, paypal een POST doet naar de webshop, waarin aan de hand van de geposte variabelen te zien is dat er is betaald, vervolgens wordt de tabel met bestellingen geupdate om aan te geven dat er is betaald

nu zit ik alleen met het volgende probleem, pas nadat de gebruiker op 'continue' heeft gedrukt na de betaling bij paypal, en vervolgens de POST waardes zijn gelezen door de webshop, is pas duidelijk dat er betaald is. Als de gebruiker na betaling de paypal pagina wegklikt zonder continue te zien, krijgt de webshop geen bevestiging dat er is betaald, en blijft de status op 'onbetaald'

is er een methode om te kunnen zien of er is betaald, zonder dat de gebruiker terug hoeft naar de webshop?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wat heeft Paypal er zelf over te zeggen? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
Denk niet dat paypal op dit soort mails gaat antwoorden, ze zijn al vrijwel onbereikbaar als je problemen hebt met betalen.

Acties:
  • 0 Henk 'm!

Verwijderd

Daar is IPN voor. Staat genoeg info over op de PayPal site.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

plakbandrol schreef op dinsdag 19 september 2006 @ 02:29:
Denk niet dat paypal op dit soort mails gaat antwoorden, ze zijn al vrijwel onbereikbaar als je problemen hebt met betalen.
Ze hebben dan ook gewoon supportpagina's op hun eigen website die je ook zelf door kan nemen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Arjen Tempel
  • Registratie: Januari 2002
  • Niet online
Veel info over het gebruik van de PayPal API is ook te vinden op de PayPal DevCentral Forums.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Je zegt zelf dat paypal een post-request naar de webshop doet. Dit is een actie tussen jouw server en de paypal server. Hier heeft de bezoeker helemaal niks mee te maken en geen enkele invloed op. Ik snap dan ook niet wat nu exact je probleem is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 20-09 22:44

MBV

Janoz schreef op dinsdag 19 september 2006 @ 10:56:
Je zegt zelf dat paypal een post-request naar de webshop doet. Dit is een actie tussen jouw server en de paypal server. Hier heeft de bezoeker helemaal niks mee te maken en geen enkele invloed op. Ik snap dan ook niet wat nu exact je probleem is.
Als ik hem goed begrijp, stuurt Paypal het POST-bericht pas zodra de gebruiker op continue heeft gedrukt, en wil hij hem hebben zodra paypal de betaling heeft geaccepteerd.

Kan je niet op je bankrekening kijken of het echt is aangekomen? POST lijkt me namelijk wel erg simpel te faken als je de API kent :X

Acties:
  • 0 Henk 'm!

  • MichelVH
  • Registratie: Oktober 2001
  • Laatst online: 16-09 20:54
Dat hadden ze natuurlijk zelf ook wel bedacht bij Paypal, daarom zit er een soort van checksum op. Wat ze dus niet hadden bedacht, was dat de gebruiker de pagina wel eens weg kon klikken voordat de POST gedaan werd, de welbekende 'if you are not redirected within 5 seconds click here' pagina. Wat dat betreft zit bijvoorbeeld iDeal beter in elkaar.

De oplossing voor de TS is inderdaad het implementeren van IPN in plaats van PDT.

Don't be afraid of the dark, be afraid of what it hides


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

MBV schreef op dinsdag 19 september 2006 @ 15:32:
[...]


Als ik hem goed begrijp, stuurt Paypal het POST-bericht pas zodra de gebruiker op continue heeft gedrukt, en wil hij hem hebben zodra paypal de betaling heeft geaccepteerd.

Kan je niet op je bankrekening kijken of het echt is aangekomen? POST lijkt me namelijk wel erg simpel te faken als je de API kent :X
Wat vreemd dat er na de betaling een actie van de gebruiker nodig is om de betaling rond te krijgen? Dat lijkt me enorm fout gevoelig. Waarom zou, na de betaling bij paypal uitgevoerd te hebben, de bevestiging in een html pagina naar de gebruiker gestuurd moeten worden die vervolgens op een knopje drukt om die gegevens bij de webshop te krijgen? Lijkt me toch een behoorlijk probleem mbt betalingen die wel worden uitgevoerd, maar waar de webshop nooit wat van te horen krijgt....

Wordt er niet gewoon vanaf de server van paypal een request rechtstreeks naar www.dewebshopapplicatie.nl/paypalCallBack.php oid gedaan?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Ramasha
  • Registratie: September 2005
  • Laatst online: 24-01 19:28
Om het probleem van de 'vergeten' POST-request op te lossen zat ik mezelf al een tijdje te verdiepen in Paypal. Of het mogelijk is doormiddel van PHP een verbinding te maken met de paypal server en vervolgens alle betalingen te 'downloaden' om zo te kijken welke betalingen (gewoon via een manuele overmaking) zijn doorgekomen en die dus te verwerken.
Ik ben al heel wat manuals, 'sandbox' opties, forums doorgelopen maar kan toch echt niets vinden, en volgens mij is het wel mogelijk.

Misschien is deze gedachtengang ook een oplossing voor de TS.

Acties:
  • 0 Henk 'm!

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
Ik heb me ook al verdiept in IPN, maar dat wil ook niet lukken, ik heb de URL aangegeven in $paypal[notify_url] waar hij heen moet posten, diezelfde URL heb ik ook opgegeven in paypal zelf bij "URL Direct betalingsbericht (DBB)" maar bij de betaling word deze URL helemaal niet aangeroepen, laat staan dat ik variabelen kan uitlezen

Acties:
  • 0 Henk 'm!

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
Ramasha schreef op dinsdag 19 september 2006 @ 16:49:
Om het probleem van de 'vergeten' POST-request op te lossen zat ik mezelf al een tijdje te verdiepen in Paypal. Of het mogelijk is doormiddel van PHP een verbinding te maken met de paypal server en vervolgens alle betalingen te 'downloaden' om zo te kijken welke betalingen (gewoon via een manuele overmaking) zijn doorgekomen en die dus te verwerken.
Ik ben al heel wat manuals, 'sandbox' opties, forums doorgelopen maar kan toch echt niets vinden, en volgens mij is het wel mogelijk.

Misschien is deze gedachtengang ook een oplossing voor de TS.
Lijkt me erg sterk dat je met een php script data kan uitlezen van je betalingen, daar komen heel wat veiligheidsrisico's bij kijken

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
plakbandrol schreef op dinsdag 19 september 2006 @ 17:52:
[...]
Lijkt me erg sterk dat je met een php script data kan uitlezen van je betalingen, daar komen heel wat veiligheidsrisico's bij kijken
An sich hoeft dat geen probleem te zijn. Als je op de juiste manier authentificeert moet het gewoon mogelijk zijn (desnoods met "screenscraping"). Waarom zouden er veiligheidsrisico's bij komen kijken? En welke zouden er meer bij komen kijken dan bij een ordinaire browsersessie? Het gebeurt server-side, als je het (goed) doet gaat het via HTTPS (zal waarsch. niet eens over HTTP kunnen) en het is niets anders dan een request dat je via je browser ook zou kunnen sturen.

[ Voor 15% gewijzigd door RobIII op 19-09-2006 18:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
RobIII schreef op dinsdag 19 september 2006 @ 18:07:
[...]

An sich hoeft dat geen probleem te zijn. Als je op de juiste manier authentificeert moet het gewoon mogelijk zijn (desnoods met "screenscraping"). Waarom zouden er veiligheidsrisico's bij komen kijken? En welke zouden er meer bij komen kijken dan bij een ordinaire browsersessie? Het gebeurt server-side, als je het (goed) doet gaat het via HTTPS (zal waarsch. niet eens over HTTP kunnen) en het is niets anders dan een request dat je via je browser ook zou kunnen sturen.
Ok, maar al zou het kunnen, dan zit je nog met het probleem dat wanneer er iets aan de opmaak van paypal wordt veranderd, de code niet meer werkt. Het blijft een workaround.

Wat misschien nog makkelijker is, is de e-mail van de betalingsbevestiging forwarden en die analyseren.

[ Voor 6% gewijzigd door plakbandrol op 19-09-2006 20:12 ]


  • plakbandrol
  • Registratie: Juni 2002
  • Laatst online: 16-09 09:35
Ok ik heb het probleem opgelost

Na het uitspitten van de acces logs, bleek paypal wel op mijn server een POST te doen, alleen de URL klopte niet, ik had de absolute URL opgegeven, terwijl alleen de filenaam voldoende was

na het gebruiken van de sample code lijkt het goed te werken, de status wordt nu geupdate naar 'betaald' enkele seconde nadat paypal aangeeft dat de betaling is geslaagd, zonder dat er teruggegaan naar de site hoeft te worden
Pagina: 1