From fca110eff969104793774ed717985e91c53f5318 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 7 Apr 2002 00:00:41 +0000 Subject: - config option for signup server payment types - credit card type pulldown on signup server (closes: Bug#383) --- fs_signup/FS-SignupClient/cgi/signup.cgi | 51 ++++++++++++++++++++++++------- fs_signup/FS-SignupClient/cgi/signup.html | 38 ++++++++++++++++++----- fs_signup/fs_signup_server | 7 +++-- 3 files changed, 75 insertions(+), 21 deletions(-) (limited to 'fs_signup') diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index 0b2370a..7cf4230 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.17 2002-04-06 21:39:22 ivan Exp $ +# $Id: signup.cgi,v 1.18 2002-04-07 00:00:40 ivan Exp $ use strict; use vars qw( @payby $cgi $locales $packages $pops $init_data $error @@ -16,9 +16,10 @@ use vars qw( @payby $cgi $locales $packages $pops $init_data $error use subs qw( print_form print_okay expselect signup_default success_default ); use CGI; use CGI::Carp qw(fatalsToBrowser); +use Text::Template; +use Business::CreditCard; use HTTP::Headers::UserAgent 2.00; use FS::SignupClient 0.03 qw( signup_info new_customer ); -use Text::Template; #acceptable payment methods # @@ -91,6 +92,7 @@ if ( -e $success_html ) { } ( $locales, $packages, $pops, $init_data ) = signup_info(); +@payby = @{$init_data->{'payby'}} if @{$init_data->{'payby'}}; $cgi = new CGI; @@ -118,13 +120,18 @@ if ( defined $cgi->param('magic') ) { $error = ''; if ( $cgi->param('_password') ne $cgi->param('_password2') ) { - $error = "Passwords don't match"; + $error = "Passwords don't match"; #msgcat $password = ''; $password2 = ''; } else { $password2 = $cgi->param('_password2'); - $error = new_customer ( { + if ( $payby eq 'CARD' && $cgi->param('CARD_type') + && cardtype($payinfo) ne $cgi->param('CARD_type') ) { + $error = 'Not an '. $cgi->param('CARD_type'). '| - is: |'. cardtype($payinfo). '|'; #msgcat + } + + $error ||= new_customer ( { 'last' => $last = $cgi->param('last'), 'first' => $first = $cgi->param('first'), 'ss' => $ss = $cgi->param('ss'), @@ -428,31 +435,53 @@ Contact Information Email invoice -Billing type +<%= scalar(@payby) > 1 ? 'Billing type' : '' %> + <%= + + my $cardselect = ''; + my %payby = ( - 'CARD' => qq!Credit card
*
*Exp !. expselect("CARD"). qq!
*Name on card
!, + 'CARD' => qq!Credit card
*$cardselect
*Exp !. expselect("CARD"). qq!
*Name on card
!, 'BILL' => qq!Billing
P.O.
*Exp !. expselect("BILL", "12-2037"). qq!
*Attention
!, 'COMP' => qq!Complimentary
*Approved by
*Exp !. expselect("COMP"), 'PREPAY' => qq!Prepaid card
*!, ); my %paybychecked = ( - 'CARD' => qq!Credit card
*
*Exp !. expselect("CARD", $paydate). qq!
*Name on card
!, + 'CARD' => qq!Credit card
*$cardselect
*Exp !. expselect("CARD", $paydate). qq!
*Name on card
!, 'BILL' => qq!Billing
P.O.
*Exp !. expselect("BILL", $paydate). qq!
*Attention
!, 'COMP' => qq!Complimentary
*Approved by
*Exp !. expselect("COMP", $paydate), 'PREPAY' => qq!Prepaid card
*!, ); for (@payby) { - $OUT .= qq!!; + if ( scalar(@payby) == 1) { + $OUT .= '"; } else { - $OUT .= qq!> $payby{$_}!; + $OUT .= qq!!; + } else { + $OUT .= qq!> $payby{$_}!; + } + } } %> diff --git a/fs_signup/FS-SignupClient/cgi/signup.html b/fs_signup/FS-SignupClient/cgi/signup.html index b97511e..5d2f2d9 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.html +++ b/fs_signup/FS-SignupClient/cgi/signup.html @@ -75,31 +75,53 @@ Contact Information -
$paybychecked{$_}'. + qq!!. + "$paybychecked{$_} $paybychecked{$_}
Email invoice
Billing type
+<%= scalar(@payby) > 1 ? 'Billing type' : '' %> + <%= + + my $cardselect = ''; + my %payby = ( - 'CARD' => qq!Credit card
*
*Exp !. expselect("CARD"). qq!
*Name on card
!, + 'CARD' => qq!Credit card
*$cardselect
*Exp !. expselect("CARD"). qq!
*Name on card
!, 'BILL' => qq!Billing
P.O.
*Exp !. expselect("BILL", "12-2037"). qq!
*Attention
!, 'COMP' => qq!Complimentary
*Approved by
*Exp !. expselect("COMP"), 'PREPAY' => qq!Prepaid card
*!, ); my %paybychecked = ( - 'CARD' => qq!Credit card
*
*Exp !. expselect("CARD", $paydate). qq!
*Name on card
!, + 'CARD' => qq!Credit card
*$cardselect
*Exp !. expselect("CARD", $paydate). qq!
*Name on card
!, 'BILL' => qq!Billing
P.O.
*Exp !. expselect("BILL", $paydate). qq!
*Attention
!, 'COMP' => qq!Complimentary
*Approved by
*Exp !. expselect("COMP", $paydate), 'PREPAY' => qq!Prepaid card
*!, ); for (@payby) { - $OUT .= qq!!; + if ( scalar(@payby) == 1) { + $OUT .= '"; } else { - $OUT .= qq!> $payby{$_}!; + $OUT .= qq!!; + } else { + $OUT .= qq!> $payby{$_}!; + } + } } %> @@ -126,7 +148,7 @@ Contact Information - diff --git a/fs_signup/fs_signup_server b/fs_signup/fs_signup_server index 4c06946..b902d9f 100755 --- a/fs_signup/fs_signup_server +++ b/fs_signup/fs_signup_server @@ -18,13 +18,14 @@ use vars qw( $opt $Debug ); $Debug = 2; -my @payby = qw(CARD PREPAY); - my $user = shift or die &usage; &adminsuidsetup( $user ); my $conf = new FS::Conf; +#my @payby = qw(CARD PREPAY); +my @payby = $conf->config('signup_server-payby'); + my $machine = shift or die &usage; my $agentnum = shift or die &usage; @@ -64,6 +65,8 @@ while (1) { 'security_phrase' => $conf->exists('security_phrase'), + 'payby' => [ $conf->config('signup_server-payby') ], + }; warn "[fs_signup_server] Sending init data...\n" if $Debug; -- cgit v1.1
$paybychecked{$_}'. + qq!!. + "$paybychecked{$_} $paybychecked{$_}
Password + (blank to generate)