[ic] How do I get the errors to show on CC processing with Authorize.net

Jason Kohles interchange-users@lists.akopia.com
Fri Jun 8 13:28:01 2001


On Fri, Jun 08, 2001 at 12:19:39PM -0500, Robert Trembath wrote:
> Thanks Jason, I've already searched the list and found several. It's  kind
> of a mess trying to put the comment together to get it to work but I have
> done this and already implemented many of the changes suggested.
> 
> There was a reference to adding [data session cybercash_errors] to the
> checkout page. Is there a specific place this goes? I added it and get no
> error messages. I don't even know if it's communicating to authorize.net as
> it returns me to process.html within 1-2 seconds.
> 
The error stuff won't do anything until you get the problem with the
globalsub sorted out.

> Where do I add this code?
> 
> Thanks, Robert
> 
> -----Original Message-----
> From: interchange-users-admin@developer.akopia.com
> [mailto:interchange-users-admin@developer.akopia.com]On Behalf Of Jason
> Kohles
> Sent: Friday, June 08, 2001 11:31 AM
> To: interchange-users@developer.akopia.com
> Subject: Re: [ic] How do I get the errors to show on CC processing with
> Authorize.net
> 
> 
> On Fri, Jun 08, 2001 at 11:24:00AM -0500, Robert Trembath wrote:
> > I've posted 4 message in 3 hours and no dice. Is anyone out there today.
> > Usually this group is terrific about responding, but wassup?
> 
> This is a question that nobody ever jumps to answer because it gets asked
> every week or two, searching for authorize.net in the mailing list archives
> will give you a lot or information.  'bad custome payment GlobalSub' means
> that your GlobalSub couldn't be compiled, probably because it contains a
> syntax error somewhere.
> 
> [error all=1 show_error=1 joiner="<BR>" keep=1] will display all the errors
> in
> the page, even ones that are not checked for explicitly.
> 
> > Robert
> >
> > -----Original Message-----
> > From: interchange-users-admin@developer.akopia.com
> > [mailto:interchange-users-admin@developer.akopia.com]On Behalf Of Robert
> > Trembath
> > Sent: Friday, June 08, 2001 10:38 AM
> > To: interchange-users@developer.akopia.com
> > Subject: RE: [ic] How do I get the errors to show on CC processing with
> > Authorize.net
> >
> >
> > I finally got it to enter something in the error log:
> >
> > 131.226.161.178 mKSFVWZR:131.226.161.178 - [08/June/2001:09:27:11 -0500]
> > catalog /cgi-bin/catalog/process.html bad custom payment GlobalSub:
> > authorizenet
> >
> > Here is what's in my authorizenet:
> >
> > GlobalSub <<EOS
> > sub authorizenet {
> > 	my ($user, $secret, $amount) = @_;
> >
> > 	my (%actual) = Vend::Order::map_actual();
> >
> > 	if (! $user ) {
> > 		$user    =  $::Variable->{MV_PAYMENT_ID} ||
> >                     $::Variable->{CYBER_ID}
> >                     or return undef;
> > 	}
> >
> > 	if(! $secret) {
> >         $secret  =  $::Variable->{MV_PAYMENT_SECRET} ||
> >                     $::Variable->{CYBER_SECRET}
> >                     or return undef;
> >     }
> >
> >     my $server  =   $::Variable->{MV_PAYMENT_SERVER} ||
> >                     $::Variable->{CYBER_SERVER} ||
> >                     'secure.authorize.net';
> >
> >     my $script 	=   $::Variable->{MV_PAYMENT_SCRIPT} ||
> >                     $::Variable->{CYBER_SCRIPT} ||
> >                     '/gateway/transact.dll';
> >
> >     my $port    =   $::Variable->{MV_PAYMENT_PORT} ||
> >                     $::Variable->{CYBER_PORT} ||
> >                     443;
> >
> > 	my $precision = $::Variable->{MV_PAYMENT_PRECISION} ||
> >                     $::Variable->{CYBER_PRECISION} ||
> >                     2;
> > 	my $referer   = $::Variable->{MV_PAYMENT_REFERER};
> >
> > 	$actual{mv_credit_card_exp_month} =~ s/\D//g;
> >     $actual{mv_credit_card_exp_month} =~ s/^0+//;
> >     $actual{mv_credit_card_exp_year} =~ s/\D//g;
> >     $actual{mv_credit_card_exp_year} =~ s/\d\d(\d\d)/$1/;
> >
> >     $actual{mv_credit_card_number} =~ s/\D//g;
> >
> >     my $exp = sprintf '%02d%02d',
> >                         $actual{mv_credit_card_exp_month},
> >                         $actual{mv_credit_card_exp_year};
> >
> > 	 $actual{cyber_mode} = 'AUTH_CAPTURE'
> >         unless $actual{cyber_mode};
> >
> > 	my %type_map = (
> > 		mauth_capture 			=>	'AUTH_CAPTURE',
> > 		mauthonly				=>	'AUTH_ONLY',
> > 		CAPTURE_ONLY			=>  'CAPTURE_ONLY',
> > 		CREDIT					=>	'CREDIT',
> > 		VOID					=>	'VOID',
> > 		PRIOR_AUTH_CAPTURE		=>	'PRIOR_AUTH_CAPTURE',
> >
> > 	);
> >
> > 	if (defined $type_map{$actual{cyber_mode}}) {
> >         $actual{cyber_mode} = $type_map{$actual{cyber_mode}};
> >     }
> >     else {
> >         $actual{cyber_mode} = 'AUTH_CAPTURE';
> >     }
> >
> >     if(! $amount) {
> >         $amount = Vend::Interpolate::total_cost();
> >         $amount = sprintf("%.${precision}f", $amount);
> >     }
> >
> >     my($orderID);
> >     my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
> > gmtime(time());
> >
> >     # We'll make an order ID based on date, time, and MiniVend session
> >
> >     # $mon is the month index where Jan=0 and Dec=11, so we use
> >     # $mon+1 to get the more familiar Jan=1 and Dec=12
> >     $orderID = sprintf("%02d%02d%02d%02d%02d%05d%s",
> >             $year + 1900,$mon + 1,$mday,$hour,$min,$Vend::SessionName);
> >
> >     my %query = (
> >                     x_Card_Num		=> $actual{mv_credit_card_number},
> >                     x_First_Name        => $actual{b_fname},
> >                     x_Last_Name         => $actual{b_lname},
> >                     x_Address           => $actual{b_address1},
> >                     x_City              => $actual{b_city},
> >                     x_State             => $actual{b_state},
> >                     x_Zip		=> $actual{b_zip},
> >                     x_Type		=> $actual{mv_payment_mode},
> >                     x_Amount    	=> $amount,
> >                     x_Exp_Date  	=> $exp,
> >                     x_Method    	=> 'CC',
> >                     x_Invoice_Num       => $actual{mv_order_number},
> > #                    x_Company           => $actual{company},
> > #                    x_Phone             => $actaul{day_phone},
> >                     x_Password  	=> $secret,
> >                     x_Login     	=> $user,
> >                     x_Version   	=> '3.0',
> >                     x_ADC_URL   	=> 'FALSE',
> >                     x_ADC_Delim_Data	=> 'TRUE',
> >
> >
> >     );
> >
> >     my @query;
> >
> >     for (keys %query) {
> >         my $key = $_;
> >         my $val = $query{$key};
> >         $val =~ s/["\$\n\r]//g;
> >         $val =~ s/\$//g;
> >         my $len = length($val);
> >         if($val =~ /[&=]/) {
> >             $key .= "[$len]";
> >         }
> >         push @query, "$key=$val";
> >     }
> >     my $string = join '&', @query;
> >
> >     use Net::SSLeay qw(post_https make_form make_headers);
> >
> >     my ($page, $response, %reply_headers)
> >                 = post_https($server, $port, $script,
> >                 	   make_headers( Referer => $referer),
> >                        make_form(
> >                                %query
> >                        ));
> >
> >     # Minivend names are on the  left, Authorize.Net on the right
> >     my %result_map = ( qw/
> >             MStatus               x_response_code
> >             pop.status            x_response_code
> >             MErrMsg               x_response_reason_text
> >             pop.error-message     x_response_reason_text
> >             order-id              x_trans_id
> >             pop.order-id          x_trans_id
> >             pop.auth-code         x_auth_code
> >             pop.avs_code          x_avs_code
> >             pop.avs_zip           x_zip
> >             pop.avs_addr          x_address
> >     /
> >     );
> >
> >
> > #::logError(qq{\nauthorizenet page: $page response: $response\n});
> >
> >     my ($response_code,
> >     	$response_subcode,
> >     	$response_reason_code,
> >     	$response_reason_text,
> >     	$auth_code,
> >     	$avs_code,
> >     	$trans_id) = split (/,/,$page);
> >
> > #::logError(qq{authorizenet response_reason_text=$response_reason_text
> > response_code: $response_code});
> >
> >     my %result;
> >     if ($response_code == 1) {
> >     	$result{MStatus} = 'success';
> >     	$result{'order-id'} = 1; # ? Why this this set to 1? -mark
> >     } else {
> >     	$result{MStatus} = 'failure';
> >
> > 		# NOTE: A lot more AVS codes could be checked for here.
> >     	if ($avs_code eq 'N') {
> >     		$result{MErrMsg} = "You must enter the correct billing address of
> your
> > credit card. The bank returned the following error: " .
> > $response_reason_text;
> >     	} else {
> >     		$result{MErrMsg} = "$response_reason_text" ;
> > 			my $msg = errmsg("Authorizenet error: %s. Please call in your order or
> > try again.",
> > 					$response_reason_text,
> > 					);
> >     	}
> >     }
> >
> >     return (%result);
> >
> > }
> > EOS
> >
> > This is located in /usr/lib/interchange/eg/globalsub
> >
> > I've followed Mike's directions in this file and added the needed lines to
> > interchange.cfg and catalog.cfg
> >
> > Please help ASAP as I am past deadline!
> > Robert
> >
> > -----Original Message-----
> > From: interchange-users-admin@developer.akopia.com
> > [mailto:interchange-users-admin@developer.akopia.com]On Behalf Of Robert
> > Trembath
> > Sent: Friday, June 08, 2001 10:13 AM
> > To: interchange-users@developer.akopia.com
> > Subject: RE: [ic] How do I get the errors to show on CC processing with
> > Authorize.net
> >
> >
> >
> > Did some searching through the list made some changes that Mike mentioned
> in
> > a previous post to variables in the authorizenet page on the x_address and
> > x_zip lines. But still encountering a problem.
> > Please Help!
> > Robert
> >
> > -----Original Message-----
> > From: interchange-users-admin@developer.akopia.com
> > [mailto:interchange-users-admin@developer.akopia.com]On Behalf Of Robert
> > Trembath
> > Sent: Friday, June 08, 2001 8:52 AM
> > To: interchange-users@developer.akopia.com
> > Subject: [ic] How do I get the errors to show on CC processing with
> > Authorize.net
> >
> >
> > Good morning everyone,
> > A small question, I don't seem to be getting any error messages back from
> > authorize.net if a card doen't go through. Any time I try to use a credir
> > card I get redirected back to the payment screen and it says my errors
> will
> > be in red, although there are no errors in red!
> > If I use a different payment type it goes through just fine.
> >
> > So I need to see what errors are coming back from authorize.net or what
> else
> > might be stopping the process.
> >
> > Thanks,
> > Robert
> >
> > _______________________________________________
> > Interchange-users mailing list
> > Interchange-users@lists.akopia.com
> > http://lists.akopia.com/mailman/listinfo/interchange-users
> >
> > _______________________________________________
> > Interchange-users mailing list
> > Interchange-users@lists.akopia.com
> > http://lists.akopia.com/mailman/listinfo/interchange-users
> >
> > _______________________________________________
> > Interchange-users mailing list
> > Interchange-users@lists.akopia.com
> > http://lists.akopia.com/mailman/listinfo/interchange-users
> >
> > _______________________________________________
> > Interchange-users mailing list
> > Interchange-users@lists.akopia.com
> > http://lists.akopia.com/mailman/listinfo/interchange-users
> 
> --
> Red Hat E-Business Solutions                    Jason Kohles
> 11480 Sunset Hills Road                         Senior System Architect
> Reston, VA 20190                                jkohles@redhat.com
> _______________________________________________
> Interchange-users mailing list
> Interchange-users@lists.akopia.com
> http://lists.akopia.com/mailman/listinfo/interchange-users
> 
> _______________________________________________
> Interchange-users mailing list
> Interchange-users@lists.akopia.com
> http://lists.akopia.com/mailman/listinfo/interchange-users

-- 
Red Hat E-Business Solutions                    Jason Kohles
11480 Sunset Hills Road                         Senior System Architect
Reston, VA 20190                                jkohles@redhat.com