Caution: This documentation is for eZ Publish legacy, from version 3.x to 6.x.
For 5.x documentation covering Platform see eZ Documentation Center, for difference between legacy and Platform see 5.x Architecture overview.

Trouble shooting

eZ Paynet Payment Gateway is not activated

The eZ Paynet Payment Gateway is not activated in eZ Publish.

You will need to check if the extension is properly activated in site.ini. Edit the "site.ini.append.php" configuration file located in the "settings/override/" directory (or "settings/siteaccess/example/") and make sure you have have the following entry under the "[ExtensionSettings]" group:

ActiveExtensions[]=ezpaynet

Make sure there are no spaces before or after the name.

Consider also checking the debug output from eZ Publish to find out what is wrong.

Browser hangs on the link: https://secure.edb.com/d3SecureAuth/bankid?javaversion=1.5.0_04&os=WIN

The browser hangs on the following link: https://secure.edb.com/d3SecureAuth/bankid?javaversion=1.5.0_04&os=WIN with the status set to "done".

This problem may occur when the customer has a Verified by Visa enabled credit card. The problem is not
in eZ Publish nor in PaynetTerminal, but in the authentication site. (Paynet redirects the browser to the
authentication site and further redirection stops.)

To prevent this the cardholder has to lower the "privacy level" in Internet Explorer. The
authentication site redirects from mpi1.3dsecure.no to secure.edb.com. In that redirect they
use cookies. IE denies to use that cookie and the authentication page won't load properly.

Two solution (and they both depends on the cardholder):

1. lower "privacy level" in ie browser or use another browser could also help
2. manually add that you accept cookies from 3dsecure.no and edb.com

Empty orders appear in the administration interface

Very occasionally an empty order appear in the administration interface

This problem happens in PaynetTerminal prior to version 1.2. Occasionally the Paynet server
does not get a reply from the PaynetTerminal extension. Processing the request might be to slow,
a problem on the network, or something in Paynet goes wrong. Anyhow, the Paynet server
will send a new order confirmation, which caused the PaynetTerminal extension to behave in a way
it shouldn't.

To solve the problem, do either the first or the second solution:

  • Get version 1.2 or higher (recommended)
  • Add a check for duplicate receipts in the PaynetTerminal extension.

This check is in PaynetTerminal version 1.2 as follows:

Index: modules/paynetterminal/receipt.php
===================================================================
--- modules/paynetterminal/receipt.php  (revision 9686)
+++ modules/paynetterminal/receipt.php  (working copy)
@@ -59,7 +59,7 @@
 
     $orderID    = $checker->getFieldValue( 'utref' );
 
-    if( $checker->requestValidation() )
+    if( $checker->requestValidation() && !$checker->isAlreadyApproved( $orderID ) )
     {
         $currency   = $checker->getFieldValue( 'currency' );
         $amount     = $checker->getFieldValue( 'amount' );
Index: classes/ezpaynetchecker.php
===================================================================
--- classes/ezpaynetchecker.php (revision 9686)
+++ classes/ezpaynetchecker.php (working copy)
@@ -87,6 +87,35 @@
         return false;
     }
 
+    /*!
+        Sometimes Paynet doesn't a response of their receipt callback in time. Therefore the
+        callback is resend and caused the eZ Publish shop to show NULL-Orders in the administration
+        interface.
+        This method makes sure that the order is not approved already.
+     */
+    function isAlreadyApproved( $orderID )
+    {
+        $paymentObject = eZPaymentObject::fetchByOrderID( $orderID );
+
+        if ( $paymentObject === null )
+        {
+            $order = eZOrder::fetch( $orderID );
+
+            if( $order->attribute("order_nr") > 0 )
+            {
+                $this->logger->writeTimedString( "The order is already processed. This is probably caused by a duplicated receipt callback from the Paynet server." );
+
+                return true;
+            }
+            else
+            {
+                $this->logger->writeTimedString( "The paymentObject IS set, but the order number is NOT set for eZOrder::OrderID: $orderID." );
+            }
+        }
+
+        return false;
+    }
+
     // overrides
     /*!
         We use a hash to validate the callback. So there is no need to build a

Raymond Bosman (02/02/2006 12:18 pm)

Svitlana Shatokhina (17/10/2006 9:09 am)

Raymond Bosman, Svitlana Shatokhina


Comments

  • cyclical redirection to complete page - bug in 1.2

    In redirect.php the complete page url is made thus:

    $script = $_SERVER["SCRIPT_NAME"];
    ...
    eZHttpTool::redirect("$service://$host$script/shop/$action/");

    This creates cyclical redirection with ever-lenghtening url.

    To fix, set

    $script = '';