projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
should fix UTF-8 issues with self-service XML-RPC interface, RT#13656
[freeside.git]
/
fs_selfservice
/
FS-SelfService
/
cgi
/
signup.cgi
diff --git
a/fs_selfservice/FS-SelfService/cgi/signup.cgi
b/fs_selfservice/FS-SelfService/cgi/signup.cgi
index
02acf14
..
23d814e
100755
(executable)
--- a/
fs_selfservice/FS-SelfService/cgi/signup.cgi
+++ b/
fs_selfservice/FS-SelfService/cgi/signup.cgi
@@
-201,7
+201,7
@@
if ( $magic eq 'process' || $action eq 'process_signup' ) {
my $payinfo = $cgi->param('payinfo');
$payinfo =~ s/\D//g;
my $payinfo = $cgi->param('payinfo');
$payinfo =~ s/\D//g;
- $payinfo =~ /^(\d{13,16})$/
+ $payinfo =~ /^(\d{13,16}
|\d{8,9}
)$/
or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
$payinfo = $1;
validate($payinfo)
or $error ||= $init_data->{msgcat}{invalid_card}; #. $self->payinfo;
$payinfo = $1;
validate($payinfo)
@@
-229,10
+229,11
@@
if ( $magic eq 'process' || $action eq 'process_signup' ) {
payby payinfo paycvv paydate payname paystate paytype
invoicing_list referral_custnum promo_code reg_code
payby payinfo paycvv paydate payname paystate paytype
invoicing_list referral_custnum promo_code reg_code
+ override_ban_warn
pkgpart refnum agentnum
username sec_phrase _password popnum
mac_addr
pkgpart refnum agentnum
username sec_phrase _password popnum
mac_addr
- countrycode phonenum sip_password pin
+ countrycode phonenum sip_password pin
prepaid_shortform
),
grep { /^snarf_/ } $cgi->param
),
),
grep { /^snarf_/ } $cgi->param
),
@@
-249,10
+250,19
@@
if ( $magic eq 'process' || $action eq 'process_signup' ) {
qw( popup_url reference amount );
print_collect($rv);
} elsif ( $error ) {
qw( popup_url reference amount );
print_collect($rv);
} elsif ( $error ) {
+
#fudge the snarf info
no strict 'refs';
${$_} = $cgi->param($_) foreach grep { /^snarf_/ } $cgi->param;
#fudge the snarf info
no strict 'refs';
${$_} = $cgi->param($_) foreach grep { /^snarf_/ } $cgi->param;
+
+ if ( $error =~ /^_duplicate_(card|ach)/ ) {
+ my $what = ($1 eq 'card') ? 'Credit card' : 'Electronic check';
+ $error = "Warning: $what already used to sign up recently";
+ $init_data->{'override_ban_warn'} = 1;
+ }
+
print_form();
print_form();
+
} else {
print_okay(
'pkgpart' => scalar($cgi->param('pkgpart')),
} else {
print_okay(
'pkgpart' => scalar($cgi->param('pkgpart')),
@@
-277,7
+287,7
@@
if ( $magic eq 'process' || $action eq 'process_signup' ) {
sub print_form {
sub print_form {
- $error = "Error: $error" if $error;
+ $error = "Error: $error" if $error
&& $error !~ /^Warning:/i
;
my $r = {
$cgi->Vars,
my $r = {
$cgi->Vars,
@@
-292,6
+302,8
@@
sub print_form {
#$cgi->delete('init_popstate');
$r->{self_url} = $cgi->self_url;
#$cgi->delete('init_popstate');
$r->{self_url} = $cgi->self_url;
+ $r->{prepaid_shortform} = $cgi->param('prepaid_shortform');
+
print $cgi->header( '-expires' => 'now' ),
$signup_template->fill_in( PACKAGE => 'FS::SelfService::_signupcgi',
HASH => $r
print $cgi->header( '-expires' => 'now' ),
$signup_template->fill_in( PACKAGE => 'FS::SelfService::_signupcgi',
HASH => $r