X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment.git;a=blobdiff_plain;f=OnlinePayment.pm;h=f3d221c33584adf86a987057ca7229bd67c5db8d;hp=41654511a4ec34d4c6cd6f1dcc1ba3b587600735;hb=d9599cfca52e5db568d40f76cd0e510a5cd2deda;hpb=d0a0086336b8c7b9f0ea3e4dea903f6a44bdefcc diff --git a/OnlinePayment.pm b/OnlinePayment.pm index 4165451..f3d221c 100644 --- a/OnlinePayment.pm +++ b/OnlinePayment.pm @@ -6,7 +6,7 @@ use Carp; require 5.005; -$VERSION = '3.03_01'; +$VERSION = '3.03'; $VERSION = eval $VERSION; # modperlstyle: convert the string into a number # Remember subclasses we have "wrapped" submit() with _pre_submit() @@ -33,8 +33,12 @@ my @methods = qw( response_code response_header response_page + avs_code + cvv2_response ); +__PACKAGE__->build_subs(@methods); + #fallback sub _info { my $class = shift; @@ -86,7 +90,6 @@ sub new { croak("unknown processor $processor ($@)") if $@; my $self = bless {processor => $processor}, $subclass; - $self->build_subs(@methods); if($self->can("set_defaults")) { $self->set_defaults(%data); @@ -157,7 +160,6 @@ sub _pre_submit { unless ( $@ =~ m/^Can\'t locate/ ); } else { my $risk_tx = bless( { processor => $fraud_detection }, $subclass ); - $risk_tx->build_subs(@methods); if ($risk_tx->can('set_defaults')) { $risk_tx->set_defaults(); } @@ -270,15 +272,24 @@ Business::OnlinePayment - Perl extension for online payment processing type => 'Visa', amount => '49.95', card_number => '1234123412341238', - expiration => '0100', + expiration => '06/15', name => 'John Q Doe', ); - $transaction->submit(); - - if($transaction->is_success()) { - print "Card processed successfully: ", $transaction->authorization(), "\n"; + + eval { $transaction->submit(); }; + + if ( $@ ) { + + print "$processor error: $@\n"; + } else { - print "Card was rejected: ", $transaction->error_message(), "\n"; + + if ( $transaction->is_success() ) { + print "Card processed successfully: ". $transaction->authorization()."\n"; + } else { + print "Card was rejected: ". $transaction->error_message(). "\n"; + } + } =head1 DESCRIPTION @@ -501,7 +512,7 @@ Credit card number. =item expiration -Credit card expiration. +Credit card expiration, MM/YY. =item cvv2 @@ -629,14 +640,19 @@ verification (if the processor supports it). =head2 submit() -Submit the transaction to the processor for completion +Submit the transaction to the processor for completion. + +If there is a gateway communication error or other "meta" , the submit method +will throw a fatal exception. You can catch this with eval {} if you would +like to treat gateway co =head1 TRANSACTION RESULT METHODS =head2 is_success() -Returns true if the transaction was submitted successfully, false if -it failed (or undef if it has not been submitted yet). +Returns true if the transaction was approved by the gateway, false if +it was submitted but not approved, or undef if it has not been +submitted yet. =head2 error_message() @@ -652,10 +668,8 @@ are: "expired", "nsf" (non-sufficient funds), "stolen", "pickup", "blacklisted" and "declined" (card/transaction declines only, not other errors). -Note that (as of Aug 2006) this is only supported by some of the -newest processor modules, and that, even if supported, a failure -status is an entirely optional field that is only set for specific -kinds of failures. +Note that not all processor modules support this, and that if supported, +it may not be set for all declines. =head2 authorization() @@ -776,7 +790,7 @@ Phil Lobbes Ephil at perkpartners dot comE Copyright (c) 1999-2004 Jason Kohles Copyright (c) 2004 Ivan Kohler -Copyright (c) 2007-2012 Freeside Internet Services, Inc. +Copyright (c) 2007-2014 Freeside Internet Services, Inc. All rights reserved. @@ -796,21 +810,18 @@ http://420.am/cgi-bin/mailman/listinfo/bop-devel/ =head1 REPOSITORY -The code is available from our public CVS repository: +The code is available from our public git repository: - export CVSROOT=":pserver:anonymous@cvs.freeside.biz:/home/cvs/cvsroot" - cvs login - # The password for the user `anonymous' is `anonymous'. - cvs checkout Business-OnlinePayment + git clone git://git.freeside.biz/Business-OnlinePayment.git Or on the web: - http://freeside.biz/cgi-bin/viewvc.cgi/Business-OnlinePayment/ + http://freeside.biz/gitweb/?p=Business-OnlinePayment.git Many (but by no means all!) processor plugins are also available in the same repository, see: - http://freeside.biz/cgi-bin/viewvc.cgi/ + http://freeside.biz/gitweb/ =head1 DISCLAIMER