-
- Webunity

-
Total Posts: 55
Joined: 2008-06-17
|
Ik kwam erachter dat de module van iDEAL helaas NIET werkt voor ABN amro, en eigenlijk voornamelijk geprogrammeerd is voor ING bank.
Hieronder (MIJN) implementatie, gebaseerd op de BETA versie van iDEAL 1.1.2
1) Open <magentodir>\app\code\core\Mage\Ideal\Model\Basic.php
2) Ga naar regel 104, en vervang de complete functie “getBasicCheckoutFormFields” met onderstaande code.
3) Voer in het admin gedeelte bij MerchantID je merchantid in. Deze zal verder niet worden gebruikt.
4) voer je LOGIN NAAM (pspid) voor de juiste omgeving in bij merchant_key
/** * Generates array of fields for redirect form * * @return array */ public function getBasicCheckoutFormFields() { // // Moved this information so it is available also to ABN-Amro's iDEAL (basic) via Internetkassa $order = $this->getInfoInstance()->getOrder(); $shippingAddress = $order->getShippingAddress(); $currency_code = $order->getBaseCurrencyCode(); $description = $this->getConfigData('description'); if ($description == '') { $description = Mage::app()->getStore()->getName() . ' iDEAL payment'; }
// // ABN internetkassa v0.1 by G.j. vd Hoven (Webunity) <info@webunity.nl> if (stripos($this->getApiUrl(), 'internetkassa.abnamro.nl')) { // // Gather ammount $ammount = $order->getBaseGrandTotal();
// // Basic information $fields = array( 'pspid' => $this->getConfigData('merchant_key'), // Login name for the backend of ABN 'orderid' => $order->getIncrementId(), 'amount' => $ammount * 100, 'currency' => $currency_code, 'language' => $this->getConfigData('language'), 'title' => $description, 'accepturl' => Mage::getUrl('ideal/basic/success', array('_secure' => true)), 'declineurl' => Mage::getUrl('ideal/basic/failure', array('_secure' => true)), 'exceptionurl' => Mage::getUrl('ideal/basic/failure', array('_secure' => true)), 'cancelurl' => Mage::getUrl('ideal/basic/cancel', array('_secure' => true)) ); } elseif (stripos($this->getApiUrl(), 'secure-ing.com')) { $fields = array( 'merchantID' => $this->getConfigData('merchant_id'), 'subID' => '0', 'amount' => $order->getBaseGrandTotal()*100, 'purchaseID' => $order->getIncrementId(), 'paymentType' => 'ideal', 'validUntil' => date('Y-m-d\TH:i:s.000\Z', strtotime ('+1 week')) // plus 1 week );
$i = 1; foreach ($order->getItemsCollection() as $item) { $fields = array_merge($fields, array( "itemNumber".$i => $item->getSku(), "itemDescription".$i => $item->getName(), "itemQuantity".$i => $item->getQtyOrdered()*1, "itemPrice".$i => $item->getBasePrice()*100 )); $i++; }
if ($order->getBaseShippingAmount() > 0) { $fields = array_merge($fields, array( "itemNumber".$i => $order->getShippingMethod(), "itemDescription".$i => $order->getShippingDescription(), "itemQuantity".$i => 1, "itemPrice".$i => $order->getBaseShippingAmount()*100 )); $i++; }
if ($order->getBaseTaxAmount() > 0) { $fields = array_merge($fields, array( "itemNumber".$i => 'Tax', "itemDescription".$i => '', "itemQuantity".$i => 1, "itemPrice".$i => $order->getBaseTaxAmount()*100 )); $i++; }
if ($order->getBaseDiscountAmount() > 0) { $fields = array_merge($fields, array( "itemNumber".$i => 'Discount', "itemDescription".$i => '', "itemQuantity".$i => 1, "itemPrice".$i => -$order->getBaseDiscountAmount()*100 )); $i++; }
$fields = $this->appendHash($fields);
$fields = array_merge($fields, array( 'language' => $this->getConfigData('language'), 'currency' => $currency_code, 'description' => $description, 'urlCancel' => Mage::getUrl('ideal/basic/cancel', array('_secure' => true)), 'urlSuccess' => Mage::getUrl('ideal/basic/success', array('_secure' => true)), 'urlError' => Mage::getUrl('ideal/basic/failure', array('_secure' => true)) )); }
// // Combine requeststring $requestString = ''; $returnArray = array(); foreach ($fields as $k => $v) { $returnArray[$k] = $v; $requestString .= '&'.$k.'='.$v; }
// // Debugging? if ($this->getDebug()) { Mage::getModel('ideal/api_debug') ->setRequestBody($this->getApiUrl() . "\n" . $requestString) ->save(); }
return $returnArray; }
Bij mij werkte dit, d.w.z. dat ik iig al geen errors kreeg.
LET OP:
* Krijg je de melding: Unknown merchantid, dan heb je niet je login naam bij Merchant_KEY ingevuld.
* De melding <i>unknown order/1/r/</i> heeft te maken met de referral bij de bank. Bij de bank staat jouw URL geregistreerd. Hier moet je invullen: http(s)://<magento_url>/ideal/basic/redirect/
Succes ermee!
|