projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make invoice text mouse-accessible through watermark box, #24665
[freeside.git]
/
FS
/
FS
/
cust_payby.pm
diff --git
a/FS/FS/cust_payby.pm
b/FS/FS/cust_payby.pm
index
a65a171
..
9feaf14
100644
(file)
--- a/
FS/FS/cust_payby.pm
+++ b/
FS/FS/cust_payby.pm
@@
-2,6
+2,7
@@
package FS::cust_payby;
use base qw( FS::payinfo_Mixin FS::cust_main_Mixin FS::Record );
use strict;
use base qw( FS::payinfo_Mixin FS::cust_main_Mixin FS::Record );
use strict;
+use Digest::SHA qw( sha512_base64 );
use Business::CreditCard qw( validate cardtype );
use FS::UID qw( dbh );
use FS::Msgcat qw( gettext );
use Business::CreditCard qw( validate cardtype );
use FS::UID qw( dbh );
use FS::Msgcat qw( gettext );
@@
-427,12
+428,16
@@
sub check {
}
}
- if ( $self->paydate eq '' || $self->paydate eq '-' ) {
- return "Expiration date required"
- # shouldn't payinfo_check do this?
- unless $self->payby =~ /^(CHEK|DCHK)$/;
+ if ( $self->payby =~ /^(CHEK|DCHK)$/ ) {
+
$self->paydate('');
$self->paydate('');
- } else {
+
+ } elsif ( $self->payby =~ /^(CARD|DCRD)$/ ) {
+
+ # shouldn't payinfo_check do this?
+ return "Expiration date required"
+ if $self->paydate eq '' || $self->paydate eq '-';
+
my( $m, $y );
if ( $self->paydate =~ /^(\d{1,2})[\/\-](\d{2}(\d{2})?)$/ ) {
( $m, $y ) = ( $1, length($2) == 4 ? $2 : "20$2" );
my( $m, $y );
if ( $self->paydate =~ /^(\d{1,2})[\/\-](\d{2}(\d{2})?)$/ ) {
( $m, $y ) = ( $1, length($2) == 4 ? $2 : "20$2" );
@@
-451,6
+456,7
@@
sub check {
#&&
!$ignore_expired_card
&& ( $y<$nowy || ( $y==$nowy && $1<$nowm ) );
#&&
!$ignore_expired_card
&& ( $y<$nowy || ( $y==$nowy && $1<$nowm ) );
+
}
if ( $self->payname eq '' && $self->payby !~ /^(CHEK|DCHK)$/ &&
}
if ( $self->payname eq '' && $self->payby !~ /^(CHEK|DCHK)$/ &&
@@
-494,6
+500,14
@@
sub _banned_pay_hashref {
};
}
};
}
+sub _new_banned_pay_hashref {
+ my $self = shift;
+ my $hr = $self->_banned_pay_hashref;
+ $hr->{payinfo_hash} = 'SHA512';
+ $hr->{payinfo} = sha512_base64($hr->{payinfo});
+ $hr;
+}
+
=item paydate_mon_year
Returns a two element list consisting of the paydate month and year.
=item paydate_mon_year
Returns a two element list consisting of the paydate month and year.
@@
-560,7
+574,7
@@
Returns the field names used in the web interface (including some pseudo-fields)
sub cgi_cust_payby_fields {
#my $class = shift;
[qw( payby payinfo paydate_month paydate_year paycvv payname weight
sub cgi_cust_payby_fields {
#my $class = shift;
[qw( payby payinfo paydate_month paydate_year paycvv payname weight
- payinfo1 payinfo2 payinfo3 paytype paystate )];
+ payinfo1 payinfo2 payinfo3 paytype paystate
payname_CHEK
)];
}
=item cgi_hash_callback HASHREF
}
=item cgi_hash_callback HASHREF
@@
-582,7
+596,7
@@
sub cgi_hash_callback {
if ( $hashref->{payby} =~ /^(CHEK|DCHK)$/ ) {
if ( $hashref->{payby} =~ /^(CHEK|DCHK)$/ ) {
- unless ( grep $hashref->{$_}, qw(
payinfo1 payinfo2 payinfo3 payname )
) {
+ unless ( grep $hashref->{$_}, qw(
payinfo1 payinfo2 payinfo3 payname_CHEK)
) {
%$hashref = ();
return;
}
%$hashref = ();
return;
}
@@
-592,7
+606,7
@@
sub cgi_hash_callback {
if $conf->config('echeck-country') eq 'CA';
$hashref->{payinfo} .= $hashref->{'payinfo2'};
if $conf->config('echeck-country') eq 'CA';
$hashref->{payinfo} .= $hashref->{'payinfo2'};
- $hashref->{payname}
.
= $hashref->{'payname_CHEK'};
+ $hashref->{payname} = $hashref->{'payname_CHEK'};
} elsif ( $hashref->{payby} =~ /^(CARD|DCRD)$/ ) {
} elsif ( $hashref->{payby} =~ /^(CARD|DCRD)$/ ) {