Announcement

Collapse
No announcement yet.

Does Actinic require SSL support?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    I may be wrong here but I thought that (with a standard Nochex Seller account - a non APC configured account) when the customer selects to return to the website after payment then the order is marked as complete. If the customer does not return and closes the browser say - the payment stays as pending - an assumption is made that the payment has been completed when returned - not that the card was accepted or perhaps declined by Nochex.

    To have the ability to se if the card was declined then you would need Nochex APC. (which is only available if you have the new style Merchant account with them) Nochex's website mentions APC as a feature of Merchant not Seller accounts.

    There have been other threads in the past from a couple of people trying to get the new Merchant Nochex account working - there was only one post from someone who had apparently got this working. I did mention that persons contact details many posts back (in other threads) and can't remember now who that was. (A search should bring it up again)

    Comment


      #17
      Hi Duncan

      The problem your describing was certainly what we were experiencing with our FREE based shopping cart. However, we upgraded to Actinic based on a recomendation from Nochex to over come that problem!

      I did think you were saying you had confirmation of payment from Nochex? Are you actually saying APC isnt even an option for you? Sorry if i've got mistaken there.

      But that leaves me wondering whether ANYBODY has actually got this 'seemless integration' talked about by Nochex and Actinc. As I remember that post the person was simply trying to connect to the https://secure.nochex.com rather than www.nochex.com.

      We can setup Actinic to connect to https://secure.nochex.com, but either way the APC is a problem.

      Pete

      Comment


        #18
        99% of our Nochex payments come through in Actinic as full payment received - on occasion we might get pending which is usually someone who declined to continue payment on the Nochex site. I can't remember an instance when we have pending and yet the Nochex payment was completed.

        Hang in there for Actinic support to look into the issue with Nochex.

        Comment


          #19
          I've still not heard anything from Actinic regarding a solution, but Nochex has just phoned me again (a different guy), and once again said that the Actinic script recieves data from the nochex servers and MUST post it back for the APC to work. He confirmed that this post must be done to the HTTPS site and therefore the host does need SSL support for Perl.

          Last night I searched through other posting for people with the same problem and emailed them. I did get one nice reply who said that Nochex had helped him sort the problem.

          I emailed Actinc support yesturday asking about this but I'm still awaiting a reply. If i was cynical I would begin to believe that nobody at Actinic understands how their script works

          Unfortunatly the final script seems to be generated automatically by Actinic and is 8504 lines long, and seems to be written in a way that obscures any refrence to HTTPS://www.Nochex or the 'Post' command required to handshake with Nochex servers, so i cant check for myself.

          So far it is looking like Actinic lack of understanding for their own product has resulted in us loosing 5 days of orders, and will result in us loosing more money until the problem is sorted.

          Our only course of action would now appear to change our host, a process that will take several days before our store will be up and running.

          Pete

          Comment


            #20
            Dear Pete,

            Originally posted by petesouthwest
            Hiya

            But thats not how the Nochex documentaion says:

            http://help.nochex.com/esupport/inde...details&_i=104


            and the PDF definatly shows handshaking going on:


            So the script on my server is the one distributed by Actinc. And Presumably os00001.pl


            Pete
            Yes, it is done exactly in this way. When the payment is accepted by Nochex server, then it sends the authorisation callback to the OrderScript.pl which is called osxxxxxx.pl where xxxxx is your script ID. OrderScript checks if AC_POSTPROCESS parameter exists. As it exists in case of Nochex, it passes the control to perl routine in PostOCCNOCHEX.fil located in acatalog dir.
            This program will handle the call, by calling back Nochex server via HTTPS connection, sending back all parameters arrived. Then it waits for AUTHORISED or DECLINED message from Nochex server. If the answer is AUTHORISED, then it calls RecordAuthorisation routine of OrderScript.pl which creates the NNNNNNN.occ file, where NNNNNNN is the order number. The NNNNNNNN.ord file is the order details file, created when the checkout process was initiated. If both files are exist when you download the orders and contain proper data, then EC will state the order as 'Full Payment'.
            If any error happens during the RecordAuthorisation routine, then an error message is generated and stored in the error.err file.

            So, if the authorisation request is accepted by the server and forwarded to OrderScript.pl, then there must be some trace what has happened.

            The way of finding out what happened is the following:

            - Do a test shopping, make a note of order number (let's call it ON)
            - Check on the server if the ON.ord and ON.occ files are exists inside acatalog dir.
            - If .occ file doesn't axist, then check in the web server log, if the call looks like: (Assuming your script ID is 1)
            /cgi-bin/os000001.pl?PATH=%2e%2e%2facatalog%2f&SEQUENCE=3&ACTION=AUTHORIZE_52....
            is accepted.
            - If it is accepted then check the error.err file in 'acatalog' and probably in 'cgi-bin' dir
            - Check the error message regarding this call.
            - Check if there is enough space on the web server for your account, as it sometime happens, if your site exeeds the disk quota, the .occ file and error message can't be created.


            As I have no access to your server, I can't do this check myself.

            I hope, I've helped and if you have any further question, I'm happy to answer it.

            Tamas Viola
            Software Developer
            Tamas Viola
            ------------
            Developer

            Comment


              #21
              Hi Tomas

              That’s great thank you it has helped a lot. I just really want to get this working.

              So from the script PostOCCNOCHEX.fil:
              Code:
              #
              # The returned data must be sent back to nochex for authorisation
              # 
              
              my ($status, $sError, $sHttpStatus, $sResponse);
              my $ssl_socket;
              
              ($status, $sError, $sHttpStatus, $sResponse) = ACTINIC::HTTPS_SendAndReceive('www.nochex.com', 443, 
              			'/nochex.dll/apc/apc', $sPostedData, 'POST', $::TRUE, $ssl_socket);
              
              
              if ($status != $::SUCCESS ||							# transmission or
              	 $sHttpStatus !~ /200/)								# processing failed
              	{
              	ACTINIC::RecordErrors($sError, $sPath);		# record the error to error.err
              	return ($::FAILURE);
              	}
              
              # 
              # HTTPS_SendAndReceive has a bug so the total response comes in the sHTTPStatus string.  Let's just use it all here
              # 
                $sResponse = $sHttpStatus . $sResponse;  
              #
              # If the response is bad, abort
              #
              Following the calls and looking at HTTPS_SendAndReceive shows:
              Code:
               #######################################################
              
              sub HTTPS_SendAndReceive
              	{
              # ACTINIC::ASSERT($#_ >= 2, "Invalid argument count in HTTP_SendAndReceive ($#_)", __LINE__, __FILE__);
              	#
              	# Grab parameters
              	#
              	my ($sServer, $sPort, $sPath, $sContent, $sMethod, $bCloseConnection, $ssl_socket) = @_;
              	#
              	# Set GET as default method
              	#
              	if (!defined $sMethod)
              		{
              		$sMethod = "GET";
              		}
              	#
              	# Set $::TRUE as default bCloseConnection value
              	#
              	if (!defined $bCloseConnection)
              		{
              		$bCloseConnection = $::TRUE;
              		}
              	my $sData = "$sMethod $sPath HTTP/1.0\r\n";
              	$sData .= "Content-Type: application/x-www-form-urlencoded\r\n";
              	$sData .= "Content-Length: " . (length $sContent) ."\r\n";
              	$sData .= "Accept: */*\r\n";
              	$sData .= "User-Agent: ActinicEcommerce\r\n";
              	$sData .= "\r\n";
              	$sData .= $sContent;
              
              	my $sResponse;
              	my $nResult = $::SUCCESS;
              	my $sMessage = '';
              	#
              	# Open the communication socket	if necessary
              	#
              	if (!defined $ssl_socket)
              		{
              		#
              		# First attempt: Net::SSL (OpenSSL-based) connection
              		#
              		eval
              			{
              			require Net::SSL;					# Try loading the SSL library
              			#
              			# Connect to the server
              			#
              			$ssl_socket = new Net::SSL(PeerAddr => $sServer, PeerPort => $sPort);
              			if (!$ssl_socket)
              				{
              				$nResult = $::FAILURE;
              				$sMessage = GetPhrase(-1, 1934, $!);
              				}
              			};
              		#
              		# Second attempt: ActinicSSL connection
              		#
              		if ($@)									# Error occured - the SSL library is probably not available
              			{
              			require sc000001;
              			($nResult, $sMessage, $ssl_socket) = new ActinicSSL($sServer, $sPort);
              			}
              		}
              but for the life of me I cant work out how the 'new ActinicSSL($sServer, $sPort);' changes a request that requires an SSL library and the SSL port 443 open to one that works on port 80 (standard HTTP) and doesn’t require SSL library?

              Can you please explain asap?

              Pete

              Comment

              Working...
              X