[PHP] code status ideal betaling werkt,maar niet via cronjob

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

Onderwerpen


Verwijderd

Topicstarter
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

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  
}
?>

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 18-09 12:47

killercow

eth0

maak je paden in de includes eens absoluut, dat is meestal de verklaring voor dit soort problemen.

openkat.nl al gezien?


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Je kunt de browser url oook met curl aanroepen. Eventueel zet je er nog een htaccess authorisatie op. Hoef je niets te veranderen.

Met een authorisatie zal je url er als volgt uitzien: http://user:password@mijnsite/ideal/statuscheck.php

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
bedankt voor de reacties

- wat de includes betreft. Die bestanden die in het script via include_once en require_once worden geladen, worden wel goed geladen anders zouden die functies helemaal niet werken. Of bedoel je eventuele paden die weer staan IN de bestanden die geladen worden?
Je kunt de browser url oook met curl aanroepen
uhm ook hiervoor bedankt maar wat is curl precies?

  • sky-
  • Registratie: November 2005
  • Niet online

sky-

qn nna 👌

don't be afraid of machines, be afraid of the people who build and train them.


Verwijderd

Bevat het ThinMPI-object misschien ook nog informatie over de foutsituatie?

Verwijderd

Topicstarter
ah ok, curl kan wellicht een optie zijn, maar omdat ik zelf niet even dit kan installeren (de provider beheert de server) ligt dit wat lastig.

Verder zit er inderdaad een mogelijkheid in om een eventuele foutmelding van iDeal op te vragen, maar dit heb ik reeds geprobeerd en die blijft in mijn geval leeg..

Verwijderd

Logt ThinMPI toevallig ook naar een logfile?

  • Koelkasten
  • Registratie: Februari 2001
  • Laatst online: 08-09 19:51

Koelkasten

har har koelkast op je knar

onder welke user draait de webserver? voert cron ook onder deze user dit php script uit?

Daarnaast controleer of de php CLI wel goed geinstaleerd is kun je vanaf de command prompt wel het php script uitvoeren?

Mogelijk roep je ergens een Server variabele aan die alleen bestaat als je via een browser het script benaderd bijvoorbeeld een $_GET['blaat'] die niet aanwezig is op het moment dat je niet via een browser het script aanroept.

Sommige mensen....

Pagina: 1