#!/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

"; print "Response recieved...

$paytox"; } else { print "DECLINED PAYMENT

"; 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','Friday','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"; }