I've just tried it, and I'm getting 500 internal server errors.
This is the original perl code I was using (the variables have been changed to *'s for security reasons):-
#!/usr/bin/perl
use LWP;
&ReadParse;
$timetoget = time;
&GetDate;
&AssignVariables;
$paytox = &DoGet($urltopost);
print "Content-type: text/html\n\n";
if ($paytox ne "") {
print "AUTHORISED PAYMENT<br><br>";
print "Response recieved...<br><br>$paytox";
} else {
print "DECLINED PAYMENT<br><br>";
print "No response...";
}
exit;
sub ReadParse {
local (*in) = @_ if @_;
local ($i, $key, $val);
if ( $ENV{'REQUEST_METHOD'} eq "GET" ) {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
} else {
$in = ( grep( !/^-/, @ARGV )) [0];
$in =~ s/\\&/&/g;
}
@in = split(/&/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
}
return length($in);
}
sub AssignVariables {
$userid = "***";
$xpin = "****";
$xhash = "*****";
$transid = $in{'trans_id'};
$urltopost = "https://www.paytox.com/?cmd=retrieve_trans&user_id=$
+userid&xipn=$xpin&xhash=$xhash&trans_id=$transid";
}
sub DoPost {
$browser = LWP::UserAgent->new( ) unless $browser;
my $resp = $browser->post(@_);
return ($resp->content, $resp->status_line, $resp->is_success, $resp
+)
if wantarray;
return unless $resp->is_success;
return $resp->content;
}
sub DoGet {
$browser = LWP::UserAgent->new( ) unless $browser;
my $resp = $browser->get(@_);
return ($resp->content, $resp->status_line, $resp->is_success, $resp
+)
if wantarray;
return unless $resp->is_success;
return $resp->content;
}
sub GetDate {
@days = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Frida
+y','Saturday');
@months = ('jan','feb','mar','apr','may','jun','jul','aug','sep','
+oct','nov','dec');
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(
+$timetoget);
$year = $year+1900;
$Date = "$days[$wday] $months[$mon]/$mday/$year";
}
|