63 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/local/bin/perl
 | 
						|
# ==================================================================
 | 
						|
# Gossamer Links - enhanced directory management system
 | 
						|
#
 | 
						|
#   Website  : http://gossamer-threads.com/
 | 
						|
#   Support  : http://gossamer-threads.com/scripts/support/
 | 
						|
#   CVS Info : 087,071,086,086,085      
 | 
						|
#   Revision : $Id: postback.cgi,v 1.6 2005/03/05 01:29:08 brewt Exp $
 | 
						|
#
 | 
						|
# Copyright (c) 2001 Gossamer Threads Inc.  All Rights Reserved.
 | 
						|
# Redistribution in part or in whole strictly prohibited. Please
 | 
						|
# see LICENSE file for full details.
 | 
						|
# ==================================================================
 | 
						|
#
 | 
						|
# This file (postback.cgi) is meant for handling postback for "remote" payment
 | 
						|
# methods such as PayPal or WorldPay.  Normal users should not reach this page,
 | 
						|
# as this typically produces a blank (or nearly blank) page.  No sort of user
 | 
						|
# authentication is performed, and no user-based functionality is provided.
 | 
						|
# Additionally, if no postback is found, or an error occurs, an ordinary die
 | 
						|
# (producing a 500 Internal Server Error) is performed - payment providers
 | 
						|
# often recognize this and will post the request again after a certain amount
 | 
						|
# of time.
 | 
						|
 | 
						|
# Pragmas
 | 
						|
use strict;
 | 
						|
use lib '/var/home/slowtwitch/slowtwitch.com/cgi-bin/articles/admin';
 | 
						|
 | 
						|
# Internal modules
 | 
						|
use Links qw/$CFG $IN/;
 | 
						|
use Links::Payment;
 | 
						|
 | 
						|
Links::init('/var/home/slowtwitch/slowtwitch.com/cgi-bin/articles/admin');
 | 
						|
$| = 1;
 | 
						|
 | 
						|
# Start
 | 
						|
main();
 | 
						|
 | 
						|
sub main {
 | 
						|
# -----------------------------------------------------------------------------
 | 
						|
# Unlike the other .cgi's, we don't perform the various checks (such as the
 | 
						|
# enabled/disabled check) because we ought to receive a posted payment even if
 | 
						|
# the site has been disabled for some reason.
 | 
						|
 | 
						|
    # Check for payment postbacks
 | 
						|
    if ($CFG->{payment}->{enabled} and $CFG->{payment}->{postback} and @{$CFG->{payment}->{postback}}) {
 | 
						|
        for my $postback (@{$CFG->{payment}->{postback}}) {
 | 
						|
            next unless exists $CFG->{payment}->{$postback->{type}}->{methods}->{$postback->{method}}
 | 
						|
                and exists $CFG->{payment}->{$postback->{type}}->{used}->{$postback->{method}};
 | 
						|
            my $var = $postback->{var};
 | 
						|
            if (my $val = $IN->param($var)) {
 | 
						|
                if (!$postback->{var_regex} or $val =~ /$postback->{var_regex}/) {
 | 
						|
                    if (Links::Payment->postback($postback)) {
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    Links::Payment->invalid_postback;
 | 
						|
    die 'postback.cgi called, but no payment method postback could be identified.';
 | 
						|
}
 | 
						|
 |