<?php /* Verwerk de status rapportage/update van de Rabo OmniKassa Report URL / automaticResponseUrl */ // Laad instellingen & bibliotheek require_once 'settings.php'; require_once 'omnikassa.cls.5.php'; // Controleer of de benodigde POST-data is ontvangen if (empty($_POST['Data']) || empty($_POST['Seal'])) { $sHtml = '<p>Ongeldige Omnikassa Response.</p>'; } else { $oOmniKassa = new OmniKassa(); $oOmniKassa->setSecurityKey($aSettings['security_key'], $aSettings['security_key_version']); $aOmniKassaResponse = $oOmniKassa->validate(); if ($aOmniKassaResponse && is_array($aOmniKassaResponse)) { // De referentiecode die bij het starten van het betaalverzoek is opgegeven, belangrijk om in de // database de bijbehorende bestelling op te zoeken. $sTransactionReference = $aOmniKassaResponse['transaction_reference']; // De huidige status van de betaalverzoek. De ontvangen responseCode wordt door de bibliotheek // omgezet in de waarde SUCCESS, PENDING, CANCELLED, EXPIRED of FAILED. $sTransactionStatus = $aOmniKassaResponse['transaction_status']; // Bij sommige betaalmethoden (zoals iDEAL) wordt deze waarde gevuld met het "authorisationId", // dit is de door de iDEAL server toegewezen unieke TransactionID. $sTransactionId = $aOmniKassaResponse['transaction_id']; // Het orderID (Alleen de karakters [a-zA-Z0-9] en gelimiteerd tot 32 karakters). // Door de mutaties die soms plaats vinden in dit orderID is dit doorgaans GEEN goede // waarde om de bestelling op te zoeken in de database. $sOrderId = $aOmniKassaResponse['order_id']; // Houd er rekening mee dat de status mogelijk al is verwerkt door de "Return URL"
function prepareVariablesIdealOmnikassa() { //TODO - remove this - this is only to calculate exact amount $this->Reservation_Details_EMail = $this->getReservationDetails($this, false); $query = " \tSELECT *\r\n\t\t\t\t\t\tFROM #__hotelreservation_paymentprocessors \r\n\t\t\t\t\t\tWHERE is_available = 1 AND paymentprocessor_id = " . $this->payment_processor_sel_id . "\r\n\t\t\t\t\t\tORDER BY paymentprocessor_name\r\n\t\t\t\t\t\t"; $this->_db->setQuery($query); $configuration =& $this->_db->loadObject(); if ($configuration->paymentprocessor_type == PROCESSOR_IDEAL_OMNIKASSA) { $iDeal = new OmniKassa(); if ($configuration->paymentprocessor_mode == 'test') { $iDeal->setPaymentServerUrl($configuration->paymentprocessor_address_devel); } else { $iDeal->setPaymentServerUrl($configuration->paymentprocessor_address); } $iDeal->setMerchantId($configuration->paymentprocessor_username); $iDeal->setSecretKey($configuration->paymentprocessor_password); $iDeal->setKeyVersion(2); $iDeal->addPaymentMeanBrand("IDEAL,VISA,MASTERCARD,MAESTRO,MINITIX"); $iDeal->setCurrencyNumericCode(978); $iDeal->setNormalReturnUrl(JURI::base() . "index.php/component/jhotelreservation/omnikassaresponse"); $iDeal->setAutomaticResponseUrl(JURI::base() . "index.php/component/jhotelreservation/omnikassaautomaticresponse"); $iDeal->setAmount(my_round($this->total_cost > 0 ? $this->total_cost : $this->total - $this->total_payed, 2)); $iDeal->setTransactionReference($this->getStringIDConfirmation()); // $iDeal->setOrderId(1); $iDeal->setCustomerLanguage('nl'); ?> <form target='_self' name='form_<?php echo $configuration->paymentprocessor_type; ?> ' id= 'form_<?php echo $configuration->paymentprocessor_type; ?> ' method='post' action='<?php echo $iDeal->getPaymentServerUrl(); ?> '> <div class='div_redirect_paysite'> <?php echo JText::_('LNG_WAIT_TO_REDIRECT_PAY_SITE', true); ?> </div> <?php echo $iDeal->getHtmlFields(); ?> </form> <script> window.onload = function(){ //alert(document.forms['form_<?php echo $configuration->paymentprocessor_type; ?> ']); document.forms['form_<?php echo $configuration->paymentprocessor_type; ?> '].submit(); }; </script> <?php } }
// Bepaal het ordernummer (wordt vermeld in het Dashboard van de Rabo OmniKassa en bij de afschrijving van de klant). // Normaal wordt dit nummer uit het systeem gehaald, in dit voorbeeld wordt een random nummer gebruikt $sOrderId = $orderId; // Bepaal het totaalbedrag dat de klant moet betalen in de Rabo OmniKassa // Normaal wordt dit bedrag uit het systeem gehaald, in dit voorbeeld wordt een random bedrag gebruikt tussen de 1.00 en de 250.00 EURO $fOrderAmount = round($totalPrice, 2); // Als u geen betaalmethode opgeeft, dan ziet de klant in de Rabo OmniKassa een overzicht met alle beschikbare betaalmethoden waarvan hij er 1 kan kiezen. // Als u 1 betaalmethode instelt, wordt het scherm met de betaalkeuze overgeslagen, en start de betaling gelijk. // Als u meerdere betaalmethoden instelt, dan ziet de klant in de Rabo OmniKassa alleen de opgegeven betaalmethoden waarvan hij er 1 kan kiezen. // Note: u kunt alleen betaalmethoden aanbieden die u bij de Rabobank hebt aangevraagd. // Beschikbare betaalmethoden: IDEAL, MINITIX, VISA, MASTERCARD, MAESTRO, INCASSO, ACCEPTGIRO, REMBOURS. $aPaymentMethods = array(); // Laat de klant zelf een betaalmethode kiezen op de betaalpagina van de Rabo OmniKassa. // $aPaymentMethods = array('IDEAL'); // Alleen iDEAL toestaan (keuzescherm wordt overgeslagen) // $aPaymentMethods = array('IDEAL', 'MINITIX', 'VISA', 'MASTERCARD', 'MAESTRO'); // iDEAL, MiniTix, Visa, Mastercard of Maestro toestaan. $oOmniKassa = new OmniKassa($aSettings['test_mode']); $oOmniKassa->setMerchant($aSettings['merchant_id']); $oOmniKassa->setSecurityKey($aSettings['security_key'], $aSettings['security_key_version']); // Stel de return URL en report URL in (normalReturnUrl, automaticResponseUrl) $oOmniKassa->setReportUrl($aSettings['website_url'] . $this->generateUrl('subscriber_frondend_confirmation', array('id' => $item->getId()))); // Mag geen additionele parameters bevatten $oOmniKassa->setReturnUrl($aSettings['website_url'] . $this->generateUrl('subscriber_frondend_confirmation', array('id' => $item->getId()))); // Mag geen additionele parameters bevatten // Stel order informatie in $oOmniKassa->setOrderId($sOrderId); // Unieke order referentie, tot 32 karakters ([a-zA-Z0-9]+) $oOmniKassa->setAmount($fOrderAmount); // Bedrag (in EURO's, tot 2 decimalen, gebruik een punt als scheidingsteken) // Stel de beschikbare betaalmethode(n) in voor de koper (indien ingesteld). if (isset($aPaymentMethods) && is_array($aPaymentMethods) && sizeof($aPaymentMethods)) { $oOmniKassa->setPaymentMethod($aPaymentMethods);