Verschillende Transactie IDs bij enkele purchaseID ING iDeal
Na een tevergeefse zoekactie op het internet voor een oplossing van het probleem waar ik tegenaan loop heb ik maar besloten om het probleem hier voor te leggen in de hoop dat ik een oplossing vind.
Ik ben van origine cobol programmeur op het mainframe en de laatste jaren hou ik me veel bezig met php. Geen OOP helaas.
Maar sinds kort heb ik voor het eerst een webshop voor mezelf gebouwd met iDeal van de ING in PhP.
Het probleem is nu:
Wanneer de klant heeft afgerekend met iDeal wordt deze teruggestuurd naar de link die ik mee heb gegeven. Hiermee ontvang ik ook de TRXID (Transactie id) van de bank waarmee ik de status van de betaling kan opvragen.
Dit Transactie id heb ik ook gekoppeld aan een uniek PurchaseID in mijn database.
Maar blijkt bij sommige betalingen dat de status op expired staat terwijl de betaling uiteindelijk succesvol is gegaan.
De eerste keer dat dit gebeurde heb ik ingelogd op mijn iDeal dashboard en kwam tot de ontdekking dat hetzelfde PurchaseID meerdere Transactie id toegewezen heeft gekregen en deze verschillen van het Transactie id die ik in de link meekreeg voor controle van de status.
Ik moet dan handmatig het Transactie id aanpassen in mijn database om de laatste status op te vragen.
Weet iemand hoe ik het allerlaatste Transactie id moet opvragen bij de bank zodat ik de laatste status ontvang?
Dit is een screenshot die ik heb gemaakt van de laatste betaling waar dit voorkwam.
Hieruit blijkt dat het PurcaseID dat ik meegeef aan de bank wel hetzelfde blijft maar dat het Transactie idniet uniek is.
Ik ben voor het eerst op dit forum dus mocht deze vraag niet hier worden gesteld, alvast mn verontschuldigingen.
Gr,
Isac.
Gewijzigd op 28/09/2016 17:12:16 door Isac Riedje
Je plaatje linkt naar je eigen computer waar wij uiteraard niet op kunnen kijken. Gelieve deze even ergens te uploaden, zoals bijv. TinyPic.
Ik pas het meteen aan.
- Ariën -:
Onnodige quote weggehaald, en link naar foto aangepast (linkte naar site i.p.v. foto)
Toevoeging op 28/09/2016 17:38:07:
Bedankt Ariën. Je kan zo zien dat ik nog onwennig ben...
Gewijzigd op 28/09/2016 17:35:44 door - Ariën -
--
Gewijzigd op 07/06/2017 20:07:40 door - Ariën -
nee jammer genoeg heb ik nog geen oplossing
Ik zie eerlijk het probleem niet echt. Op de returnpage is de order bekend. Dan kun je lijkt mij toch eenvoudig genoeg een nieuw transactienummer koppelen.
Toevoeging op 07/06/2017 22:13:11:
In mijn database leg ik de transactieID, purchaseID vast en daarmee email etc. van de klant.
Daarna start het starttransactie script van iDeal.
Zo ziet mijn starttransactie eruit
Quote:
try
{
$response = $iDEALConnector->startTransaction(
$issuerId,
new Transaction(
$amount,
$descr,
$ec,
$expir,
$purchaseID,
'EUR',
'nl'
),
$merchantReturnUrl
);
/* @var $response AcquirerTransactionResponse */
$acquirerID = $response->getAcquirerID();
$issuerAuthenticationURL = $response->getIssuerAuthenticationURL();
$transactionID = $response->getTransactionID();
try
{
$response = $iDEALConnector->startTransaction(
$issuerId,
new Transaction(
$amount,
$descr,
$ec,
$expir,
$purchaseID,
'EUR',
'nl'
),
$merchantReturnUrl
);
/* @var $response AcquirerTransactionResponse */
$acquirerID = $response->getAcquirerID();
$issuerAuthenticationURL = $response->getIssuerAuthenticationURL();
$transactionID = $response->getTransactionID();
Als de klant heeft betaald krijgt mijn listener.php het volgende van de bank:
Quote:
$iDEALConnector = iDEALConnector::getDefaultInstance("iDeal.conf");
try
{
$response = $iDEALConnector->getTransactionStatus($transactionID);
/* @var $response AcquirerStatusResponse */
$acquirerID = $response->getAcquirerID();
$custName = $response->getConsumerName();
$custIBAN = $response->getConsumerIBAN();
$custBIC = $response->getConsumerBIC();
$tot = $response->getAmount();
$cur = $response->getCurrency();
$ts = $response->getStatusTimestamp();
$transactionID = $response->getTransactionID();
$st = $response->getStatus();
}
try
{
$response = $iDEALConnector->getTransactionStatus($transactionID);
/* @var $response AcquirerStatusResponse */
$acquirerID = $response->getAcquirerID();
$custName = $response->getConsumerName();
$custIBAN = $response->getConsumerIBAN();
$custBIC = $response->getConsumerBIC();
$tot = $response->getAmount();
$cur = $response->getCurrency();
$ts = $response->getStatusTimestamp();
$transactionID = $response->getTransactionID();
$st = $response->getStatus();
}
Ik krijg dus alleen transactionID terug van de bank die bij mij bekend zou moeten zijn. Maar omdat ik een nieuwe waarde transactionID terugkrijg weet ik niet welke purchaseID erbij hoort.