Hallo,
ik heb het iDeal betaalsysteem (de advanced versie) in een website geintegreerd. Dit werkt prima, betalingen worden afgerond en mijn website communiceert met iDeal en krijgt de benodigde statussen van betaling binnen als deze worden opgevraagd. Nu kan het zijn dat een klant via mijn site naar het betaalsysteem van de bank gaat, betaalt en vervolgens zijn browser afsluit voordat ie terugkomt. Nu heeft de klant wel betaalt maar is dit nog niet bekend in mijn systeem. Daarom wil ik periodiek (elke 15 min bijvoorbeeld) in mijn eigen db kijken welke betalingen nog een open status hebben, vervolgens de status opvragen en op basis hiervan de status bijwerken.
Hiervoor heb ik een stuk script geschreven dat op zich goed werkt. Als ik dit script aanroep via mijn browser (dus simpelweg navigeer naar de betreffende PHP pagina) dan wordt het script uitgevoerd, verloopt die communicatie met iDeal prima, en worden de statussen in mijn eigen db bijgewerkt.
Als ik echter precies hetzelfde script uit laat voeren via een cron job dan gaat de communicatie met iDeal ineens fout. Dan kan mijn script de status niet ophalen en komt terecht in het stukje dat hoort binnen de accolades van
Iemand enig idee hoe een goed werkend script ineens een ander resultaat geeft als het via een cron job wordt uitgevoerd?
Hieronder mijn hele script:
ik heb het iDeal betaalsysteem (de advanced versie) in een website geintegreerd. Dit werkt prima, betalingen worden afgerond en mijn website communiceert met iDeal en krijgt de benodigde statussen van betaling binnen als deze worden opgevraagd. Nu kan het zijn dat een klant via mijn site naar het betaalsysteem van de bank gaat, betaalt en vervolgens zijn browser afsluit voordat ie terugkomt. Nu heeft de klant wel betaalt maar is dit nog niet bekend in mijn systeem. Daarom wil ik periodiek (elke 15 min bijvoorbeeld) in mijn eigen db kijken welke betalingen nog een open status hebben, vervolgens de status opvragen en op basis hiervan de status bijwerken.
Hiervoor heb ik een stuk script geschreven dat op zich goed werkt. Als ik dit script aanroep via mijn browser (dus simpelweg navigeer naar de betreffende PHP pagina) dan wordt het script uitgevoerd, verloopt die communicatie met iDeal prima, en worden de statussen in mijn eigen db bijgewerkt.
Als ik echter precies hetzelfde script uit laat voeren via een cron job dan gaat de communicatie met iDeal ineens fout. Dan kan mijn script de status niet ophalen en komt terecht in het stukje dat hoort binnen de accolades van
PHP:
1
2
| if(!$result->isOK()) { |
Iemand enig idee hoe een goed werkend script ineens een ander resultaat geeft als het via een cron job wordt uitgevoerd?
Hieronder mijn hele script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| <? //include needed files include_once("../include.php"); require_once(dirname(__FILE__) . "/ThinMPI.php"); require_once(dirname(__FILE__) . "/AcquirerStatusRequest.php"); $Sql = "SELECT * FROM storting WHERE status = 0"; $Result = mysql_query($Sql); while ($Row = mysql_fetch_array($Result, MYSQL_ASSOC)) { //Create StatusRequest $data = & new AcquirerStatusRequest(); //Set parameters $transID = $Row["trxid"]; $transID = str_pad($transID, 16, "0"); $data -> setTransactionID( $transID ); //Create ThinMPI instance and process request $rule = new ThinMPI(); $result = $rule->ProcessRequest( $data ); if(!$result->isOK()) { //hier kom je terecht als de status niet kan worden opgehaald, dit gebeurt dus ALLEEN als ik dit script aanroep via de cron job } else if(!$result->isAuthenticated()) { //code voor als betaling onsuccesvol is, bijwerken in db } else { //code voor als betaling succesvol is, bijwerken in db }//einde succesvol betaald } ?> |