electronic checks work in signup.cgi
[freeside.git] / fs_signup / FS-SignupClient / cgi / signup.cgi
index b6cc08a..6672e60 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -Tw
 #
-# $Id: signup.cgi,v 1.33 2002-11-28 10:54:13 ivan Exp $
+# $Id: signup.cgi,v 1.35 2002-12-24 23:03:27 ivan Exp $
 
 use strict;
 use vars qw( @payby $cgi $locales $packages $pops $init_data $error
@@ -143,14 +143,29 @@ $cgi = new CGI;
 if ( defined $cgi->param('magic') ) {
   if ( $cgi->param('magic') eq 'process' ) {
 
-    $cgi->param('state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/
-      or die "Oops, illegal \"state\" param: ". $cgi->param('state');
-    $state = $1;
-    $county = $3 || '';
-    $country = $4;
+    if ( $cgi->param('state') =~ /^(\w*)( \(([\w ]+)\))? ?\/ ?(\w+)$/ ) {
+      $state = $1;
+      $county = $3 || '';
+      $country = $4;
+    } elsif ( $cgi->param('state') =~ /^(\w*)$/ ) {
+      $state = $1;
+      $cgi->param('county') =~ /^([\w ]*)$/
+        or die "illegal county: ". $cgi->param('county');
+      $county = $1;
+      $cgi->param('country') =~ /^(\w+)$/
+        or die "illegal country: ". $cgi->param('country');
+      $country = $1;
+    } else {
+      die "illegal state: ". $cgi->param('state');
+    }
 
     $payby = $cgi->param('payby');
-    $payinfo = $cgi->param( $payby. '_payinfo' );
+    if ( $payby eq 'CHEK' ) {
+      #$payinfo = join('@', map { $cgi->param( $payby. "_payinfo$_" ) } (1,2) );
+      $payinfo = $cgi->param('CHEK_payinfo1').'@'.$cgi->param('CHEK_payinfo2');
+    } else {
+      $payinfo = $cgi->param( $payby. '_payinfo' );
+    }
     $paydate =
       $cgi->param( $payby. '_month' ). '-'. $cgi->param( $payby. '_year' );
     $payname = $cgi->param( $payby. '_payname' );