projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8ec8ca1
)
FS RT #25694 - added two configuration options for requiring CVV data to be entered...
author
C.J. Adams-Collier
<cjac@colliertech.org>
Sat, 20 Sep 2014 00:00:51 +0000
(17:00 -0700)
committer
C.J. Adams-Collier
<cjac@colliertech.org>
Mon, 6 Oct 2014 20:42:41 +0000
(13:42 -0700)
FS/FS/ClientAPI/MyAccount.pm
patch
|
blob
|
history
FS/FS/Conf.pm
patch
|
blob
|
history
fs_selfservice/FS-SelfService/cgi/card.html
patch
|
blob
|
history
fs_selfservice/FS-SelfService/cgi/selfservice.cgi
patch
|
blob
|
history
httemplate/misc/process/payment.cgi
patch
|
blob
|
history
diff --git
a/FS/FS/ClientAPI/MyAccount.pm
b/FS/FS/ClientAPI/MyAccount.pm
index
b2f38ea
..
9bc88d7
100644
(file)
--- a/
FS/FS/ClientAPI/MyAccount.pm
+++ b/
FS/FS/ClientAPI/MyAccount.pm
@@
-747,6
+747,8
@@
sub edit_info {
$payby = $1;
}
$payby = $1;
}
+ my $conf = new FS::Conf;
+
if ( $payby =~ /^(CARD|DCRD)$/ ) {
$new->paydate($p->{'year'}. '-'. $p->{'month'}. '-01');
if ( $payby =~ /^(CARD|DCRD)$/ ) {
$new->paydate($p->{'year'}. '-'. $p->{'month'}. '-01');
@@
-759,6
+761,10
@@
sub edit_info {
$new->set( 'payby' => $p->{'auto'} ? 'CARD' : 'DCRD' );
$new->set( 'payby' => $p->{'auto'} ? 'CARD' : 'DCRD' );
+ if ( $conf->exists('selfservice-onfile_require_cvv') ){
+ return { 'error' => 'CVV2 is required' } unless $p->{'paycvv'};
+ }
+
} elsif ( $payby =~ /^(CHEK|DCHK)$/ ) {
my $payinfo;
} elsif ( $payby =~ /^(CHEK|DCHK)$/ ) {
my $payinfo;
@@
-835,8
+841,9
@@
sub payment_info {
'card_types' => card_types(),
'card_types' => card_types(),
- 'withcvv' => $conf->exists('selfservice-require_cvv'), #or enable optional cvv?
- 'require_cvv' => $conf->exists('selfservice-require_cvv'),
+ 'withcvv' => $conf->exists('selfservice-require_cvv'), #or enable optional cvv?
+ 'require_cvv' => $conf->exists('selfservice-require_cvv'),
+ 'onfile_require_cvv' => $conf->exists('selfservice-onfile_require_cvv'),
'paytypes' => [ @FS::cust_main::paytypes ],
'paytypes' => [ @FS::cust_main::paytypes ],
@@
-1025,6
+1032,8
@@
sub validate_payment {
or return { 'error' => "CVV2 (CVC2/CID) is three digits." };
$paycvv = $1;
}
or return { 'error' => "CVV2 (CVC2/CID) is three digits." };
$paycvv = $1;
}
+ } elsif ( $conf->exists('selfservice-onfile_require_cvv') ) {
+ return { 'error' => 'CVV2 is required' };
} elsif ( !$onfile && $conf->exists('selfservice-require_cvv') ) {
return { 'error' => 'CVV2 is required' };
}
} elsif ( !$onfile && $conf->exists('selfservice-require_cvv') ) {
return { 'error' => 'CVV2 is required' };
}
diff --git
a/FS/FS/Conf.pm
b/FS/FS/Conf.pm
index
b6fa81d
..
4c02797
100644
(file)
--- a/
FS/FS/Conf.pm
+++ b/
FS/FS/Conf.pm
@@
-2706,6
+2706,20
@@
and customer address. Include units.',
},
{
},
{
+ 'key' => 'backoffice-require_cvv',
+ 'section' => 'billing',
+ 'description' => 'Require CVV for manual credit card entry.',
+ 'type' => 'checkbox',
+ },
+
+ {
+ 'key' => 'selfservice-onfile_require_cvv',
+ 'section' => 'self-service',
+ 'description' => 'Require CVV for on-file credit card during self-service payments.',
+ 'type' => 'checkbox',
+ },
+
+ {
'key' => 'selfservice-require_cvv',
'section' => 'self-service',
'description' => 'Require CVV for credit card self-service payments, except for cards on-file.',
'key' => 'selfservice-require_cvv',
'section' => 'self-service',
'description' => 'Require CVV for credit card self-service payments, except for cards on-file.',
diff --git
a/fs_selfservice/FS-SelfService/cgi/card.html
b/fs_selfservice/FS-SelfService/cgi/card.html
index
c7db2b3
..
dfe6371
100644
(file)
--- a/
fs_selfservice/FS-SelfService/cgi/card.html
+++ b/
fs_selfservice/FS-SelfService/cgi/card.html
@@
-26,7
+26,7
@@
</TD>
</TR>
<%=
</TD>
</TR>
<%=
- if ( $withcvv ) {
+ if ( $withcvv
|| $require_cvv || $onfile_require_cvv
) {
$OUT .= qq!<TR>!;
$OUT .= qq!<TD ALIGN="right">CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>)</TD>!;
$OUT .= qq!<TD><INPUT TYPE="text" NAME="paycvv" VALUE="" SIZE=4 MAXLENGTH=4></TD>!;
$OUT .= qq!<TR>!;
$OUT .= qq!<TD ALIGN="right">CVV2 (<A HREF="javascript:myopen('cvv2.html','cvv2','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=480,height=288')">help</A>)</TD>!;
$OUT .= qq!<TD><INPUT TYPE="text" NAME="paycvv" VALUE="" SIZE=4 MAXLENGTH=4></TD>!;
diff --git
a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
index
2b4bb43
..
1ec5c0b
100755
(executable)
--- a/
fs_selfservice/FS-SelfService/cgi/selfservice.cgi
+++ b/
fs_selfservice/FS-SelfService/cgi/selfservice.cgi
@@
-306,6
+306,7
@@
sub process_change_pay {
'error' => '<FONT COLOR="#FF0000">Postal or email required.</FONT>',
};
}
'error' => '<FONT COLOR="#FF0000">Postal or email required.</FONT>',
};
}
+
_process_change_info( 'change_pay', @list );
}
_process_change_info( 'change_pay', @list );
}
diff --git
a/httemplate/misc/process/payment.cgi
b/httemplate/misc/process/payment.cgi
index
981614e
..
27b8186
100644
(file)
--- a/
httemplate/misc/process/payment.cgi
+++ b/
httemplate/misc/process/payment.cgi
@@
-122,6
+122,8
@@
if ( $payby eq 'CHEK' ) {
or errorpage("CVV2 (CVC2/CID) is three digits.");
$paycvv = $1;
}
or errorpage("CVV2 (CVC2/CID) is three digits.");
$paycvv = $1;
}
+ }elsif( $conf->exists('backoffice-require_cvv') ){
+ errorpage("CVV2 is required");
}
}
}
}