ik heb een script waarmee je een betaling aan de bank kan doen via ideal
de bank geeft je de mogelijkheid om een handmatige en een automatische respons te krijgen
ik heb gekozen voor de automatische response
echter het probleem dat ik heb is dat als het script 'paymentok.php' aangesproken wordt via de autoresponse url van de bank ALLE SESSIEVARIABELEN niet in het script beschikbaar zijn voor de functies

echter als ik het script gewoon via mijn webbrowser aanspreek werkt alles perfect.
weet niet hoe ik dit nu aan moet pakken ik zit de hele middag al te !$%#@$%^^&&&

<?php
$Data="amount=$bedrag|currencyCode=978|merchantId=002020000000001|normalReturnUrl=http://www.website.nl/terug.php|keyVersion=1|automaticResponseUrl=http://www.website.nl/payment_ok.php|transactionReference=$factuur_sleutel";;
?>

mvg bas
Dat lijkt op een "known issue": sommige banken kunnen maar één variabele in de return-URL aan.

Let daarom op hoe je die variabelen verpakt in de return-URL en hoe je die vervolgens weer uitpakt.
ik heb geen variabelen in de return url zitten het is gewoon een statisch adres
ik kan de $_POST['Data'] van de bank bijv ook gewoon naar het scherm echo'en
echter als ik het script met sessievariabelen aan de gang wil laten gaan zijn ze niet beschikbaar.
dit alles terwijl de sessie nog niet is afgesloten en alles dus nog gewoon bescikbaar hoort te zijn

dus als ik het script zelf activeer werkt het wel ,maar als het script door de bank geactiveerd wordt
ben ik de sessievariabelen kwijt(of ik doe iets fout met includen ofzo)
Bas de jong op 11/01/2013 19:20:05
dus als ik het script zelf activeer werkt het wel ,maar als het script door de bank geactiveerd wordt
ben ik de sessievariabelen kwijt(of ik doe iets fout met includen ofzo)
Maar de bank heeft ook geen sessie op je server. En al helemaal nooit dezelfde sessie als een andere gebruiker (jij). Het ligt dus vermoedelijk aan de afhandeling van de respons vanaf de bank: daar moet je de fout zoeken.
ik werk vanuit een frame op een html pagina missch dat ik daarom problemen heb

[size=xsmall]Toevoeging op 11/01/2013 19:29:39:[/size]

als ik puur het adres van het script in de browser typ krijg ik wel mijn sessievariabelenn te zien maar niet de geposte data van de bank, maar datkomt missch omdat ik het frame verlaat
ik denk dat ik beter zonder frame kan gaan werken

ik ga het even proberen zonder frame
Het is enige tijd geleden dat ik de ideal handleiding heb gelezen, waar volgens mij mag je de betaal pagina van de bank niet in een frame oproepen.
Je moet trouwens ook niet met sessies werken in dit soort situaties, maar de status van de transacties in de db bijhouden.
hm ok dus je bedoeld dat ik sowieso bestellingen op moet slaan in de db en daarna de betaalstatus moet controleren ofzo

[size=xsmall]Toevoeging op 11/01/2013 19:49:44:[/size]

eerste keer dat ik met een winkel bezig ben dus als je op dit punt een goed advies voor me hebt hoor ik dat heel graag van je.

ben nog niet zo ervaren
Wordt er gebruik gemaakt van een PSP of is het een directe koppeling met de Bank?

Ik heb nog niet scherp welke URL jij precies bedoeld. Is het de:

Return url.
Wordt aangeroepen wanneer een gebruiker op jouw site terugkomt. Dat kan doordat de betaling gelukt is of dat de gebruiker de betaling afgebroken heeft.

Postback url.
Wordt aangeroepen wanneer de status van een betaling in eerst instantie nog niet duidelijk is. Dat kan zijn doordat een gebruiker de browser na het betaling heeft afgesloten of dat de bank vertraging heeft met het verwerken van de betaling.

Gr,

Niels
ik maak gebruik van de normal return url voor een net berichtje dat de betaling voltooid is
de autoreturnurl wordt alleen geactiveerd als er een succesvolle betaling is gewwest bij de bank

beide urls retourneren post data als je dat nodig hebt

[size=xsmall]Toevoeging op 11/01/2013 19:59:29:[/size]

ik kan gewoon niet bedenken waarom het script dat de betalingsgegevens verwerkt wel werkt als ik hem zelf activeer en dat hij niet meer werkt als hij door de bankserver geactiveerd wordt
Hoi Bas,

Allereerst raad ik je aan om een Payment Service Provider (PSP) te kiezen.
Waarom precies een PSP?

- Voordelige transactiekosten. (Nemen op grote schaal transacties af)
- Vele betaalmethoden.
- Financiële ondersteuning
- PSP is verantwoordelijk voor de betalingen. Jij krijgt dus altijd je geld.
- Vele standaard scripts waardoor implementatie heel eenvoudig wordt.

Tot slot,

Kan je eens een voorbeeld van een return URL sturen?

Gr,

Niels
het is trouwens een directe koppeling met de rabo omnikassa

[size=xsmall]Toevoeging op 11/01/2013 20:06:19:[/size]

hier een voorbeeldje

<?php
$factuur_sleutel = $_SESSION['userid'].substr((time()),9);
// set factuursleutel voor dataveld omnikassa in sessievariabele
$_SESSION['factuurnummer'] = $factuur_sleutel;
// geef klantgegevens weer op basis van userid
customer_data($_SESSION['userid']);
// toon factuurgegevens met functie 
factuurgegevens();
//
echo "<br>";
// hier set ik de variabelen voor het betaalverzoek aan de omnikassa
$totaal =$_SESSION['total'];
$bedrag=($totaal * 100);
$Data="amount=$bedrag|currencyCode=978|merchantId=002020000000001|normalReturnUrl=http://www.website.nl/bedankt.php|keyVersion=1|automaticResponseUrl=http://www.website.nl/verwerkfactuur.php|transactionReference=$factuur_sleutel";
$SecretKey="002020000000001_KEY1";
$hash= hash('sha256', ($Data.$SecretKey));
?>
<p>
<form method="post" action="https://payment-webinit.simu.omnikassa.rabobank.nl/paymentServlet">
<input type="hidden" name="Data" value= <?php echo $Data;?> >
<input type="hidden" name="InterfaceVersion" value="HP_1.0">
<input type="hidden" name="Seal" value= <?php echo $hash;?> >
<input type="submit" value="<?php echo 'Totaalbedrag: &euro;'.number_format($totaal, 2).''; ?>  -->Ga naar kassa">
</form>
<p/>
<?php
?>

Reageren