[bop-devel] Re: Business-OnlinePayment OnlinePayment.pm, 1.16,
1.17
Phil Lobbes
phil at perkpartners.com
Sun Nov 19 22:51:06 PST 2006
I incorporated most of the changes / ideas. See my most recent CVS
comments, I believe there's still a bug in fraud detection behavior if
the fraud detection isn't found (this is unchanged behavior -- but I
suspect not what we really want).
Phil
Ivan Kohler <ivan at 420.am> wrote:
> Can you take a quick look at the patch in
>
> http://rt.cpan.org/Ticket/Display.html?id=22074
>
> and see if there's any functional difference compared to your changes?
>
> --
> _ivan
>
>
> On Mon, Nov 20, 2006 at 04:57:39AM +0000, Phil Lobbes wrote:
> > Update of /home/cvs/cvsroot/Business-OnlinePayment
> > In directory wavetail:/tmp/cvs-serv18276
> >
> > Modified Files:
> > OnlinePayment.pm
> > Log Message:
> > * Add Class data %WrappedSubmitClassMethod to remember "wrapped" submits
> > * Fix new() to check %WrappedSubmitClassMethod to avoid creating deep recursion
> > * Minor documentation change in print statements use ',' instead of '.'
> >
> >
> > Index: OnlinePayment.pm
> > ===================================================================
> > RCS file: /home/cvs/cvsroot/Business-OnlinePayment/OnlinePayment.pm,v
> > retrieving revision 1.16
> > retrieving revision 1.17
> > diff -u -d -r1.16 -r1.17
> > --- OnlinePayment.pm 10 Oct 2006 19:46:41 -0000 1.16
> > +++ OnlinePayment.pm 20 Nov 2006 04:57:37 -0000 1.17
> > @@ -10,6 +10,9 @@
> > $VERSION = '3.00_04';
> > $VERSION = eval $VERSION; # modperlstyle: convert the string into a number
> >
> > +# Remember subclasses we have "wrapped" submit() with _pre_submit()
> > +my %WrappedSubmitClassMethod = ();
> > +
> > my %fields = (
> > authorization => undef,
> > error_message => undef,
> > @@ -27,7 +30,6 @@
> > transaction_type => undef,
> > );
> >
> > -
> > sub new {
> > my($class,$processor,%data) = @_;
> >
> > @@ -55,15 +57,20 @@
> > }
> >
> > unless ( $subclass->can('submit') eq $class->can('submit') ) {
> > - no strict 'refs';
> > - no warnings 'redefine';
> > my $submit = qualify_to_ref('submit', $subclass);
> >
> > - $self->{_child_submit} = \&$submit;
> > - *{"${subclass}::submit"} = sub {
> > - my $self = shift;
> > - $self->_pre_submit();
> > - }
> > + # "wrap" submit ONLY once, cache info for later calls to new()
> > + if ( ! exists $WrappedSubmitClassMethod{$subclass} ) {
> > + no warnings 'redefine';
> > + no strict 'refs';
> > +
> > + $WrappedSubmitClassMethod{$subclass} = \&$submit;
> > + *{"${subclass}::submit"} = sub {
> > + my $self = shift;
> > + $self->_pre_submit();
> > + }
> > + }
> > + $self->{_child_submit} = $WrappedSubmitClassMethod{$subclass};
> > }
> >
> > return $self;
> > @@ -89,7 +96,7 @@
> > }
> > }
> >
> > -sub _pre_submit{
> > +sub _pre_submit {
> > my ($self) = @_;
> > my $fraud_detection = $self->fraud_detect();
> >
> > @@ -213,9 +220,9 @@
> > $transaction->submit();
> >
> > if($transaction->is_success()) {
> > - print "Card processed successfully: ".$transaction->authorization()."\n";
> > + print "Card processed successfully: ", $transaction->authorization(), "\n";
> > } else {
> > - print "Card was rejected: ".$transaction->error_message()."\n";
> > + print "Card was rejected: ", $transaction->error_message(), "\n";
> > }
> >
> > =head1 DESCRIPTION
> >
>
> --
> _ivan
> _______________________________________________
> bop-devel mailing list
> bop-devel at 420.am
> http://420.am/cgi-bin/mailman/listinfo/bop-devel
More information about the bop-devel
mailing list