From 4fd93195ade51660b09fd5cb6b41c2c0bf97d9e5 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 13 May 2003 10:25:08 +0000 Subject: [PATCH] untested update for linkpoint 2.6 changes, ick --- Changes | 1 + LinkPoint.pm | 38 +++++++++++++++++++++----------------- t2/bad_auth.t | 6 ++---- t2/credit_card.t | 6 ++---- test.pem | 31 +++++++++++++++++++++++++++++++ 5 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 test.pem diff --git a/Changes b/Changes index ef0b721..729749c 100644 --- a/Changes +++ b/Changes @@ -8,6 +8,7 @@ Revision history for Perl extension Business::OnlinePayment::LinkPoint. - don't spew debugging output by default - move load.t test from t1/ to t2/ - better error message when LinkPoint doesn't return a statusMessage + - update for LinkPoint API 2.6 0.01 Wed Nov 21 04:00:26 2001 - original version; created by ivan 1.0 diff --git a/LinkPoint.pm b/LinkPoint.pm index b0c496a..520fdc0 100644 --- a/LinkPoint.pm +++ b/LinkPoint.pm @@ -1,6 +1,6 @@ package Business::OnlinePayment::LinkPoint; -# $Id: LinkPoint.pm,v 1.7 2003-03-31 20:41:56 ivan Exp $ +# $Id: LinkPoint.pm,v 1.8 2003-05-13 10:25:08 ivan Exp $ use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); @@ -8,8 +8,6 @@ use Carp qw(croak); use AutoLoader; use Business::OnlinePayment; -use lperl; #lperl.pm from Linkpoint. - require Exporter; @ISA = qw(Exporter AutoLoader Business::OnlinePayment); @@ -17,12 +15,17 @@ require Exporter; @EXPORT_OK = qw(); $VERSION = '0.02'; +use lperl; #2.6; #lperl.pm from LinkPoint +$LPERL::VERSION =~ /^(\d+\.\d+)/ + or die "can't parse lperl.pm version: $LPERL::VERSION"; +die "lperl.pm minimum version 2.6 required\n" unless $1 >= 2.6; + sub set_defaults { my $self = shift; #$self->server('staging.linkpt.net'); $self->server('secure.linkpt.net'); - $self->port('1139'); + $self->port('1129'); } @@ -88,7 +91,6 @@ sub get_fields { sub submit { my($self) = @_; - $self->map_fields(); my %content = $self->content; @@ -115,7 +117,13 @@ sub submit { $content{'address'} =~ /^(\S+)\s/; my $addrnum = $1; - $self->server('staging.linkpt.net') if $self->test_transaction; + my $result = $content{'result'}; + if ( $self->test_transaction) { + $result ||= 'GOOD'; + $self->server('staging.linkpt.net'); + } else { + $result ||= 'LIVE'; + } $self->revmap_fields( hostname => \( $self->server ), @@ -123,18 +131,13 @@ sub submit { storename => \( $self->storename ), keyfile => \( $self->keyfile ), addrnum => \$addrnum, - + result => \$result, cardNumber => 'card_number', cardExpMonth => \$month, cardExpYear => \$year, ); - my $lperl = new LPERL - $self->lbin, - 'FILE', - $self->can('tmp') - ? $self->tmp - : '/tmp'; + my $lperl = new LPERL; my $action = $content{action}; $self->required_fields(qw/ @@ -148,7 +151,7 @@ sub submit { name email phone address city state zip country /); - #print "$_ => $post_data{$_}\n" foreach keys %post_data; + warn "$_ => $post_data{$_}\n" foreach keys %post_data; my %response; { @@ -168,7 +171,7 @@ sub submit { } } else { $self->is_success(1); - $self->result_code($response{'AVCCode'}); + $self->result_code($response{'AVSCode'}); $self->authorization($response{'trackingID'}); # $self->order_number($response{'neworderID'}); } @@ -189,8 +192,6 @@ Business::OnlinePayment::LinkPoint - LinkPoint backend for Business::OnlinePayme my $tx = new Business::OnlinePayment( 'LinkPoint', 'storename' => 'your_store_number', 'keyfile' => '/path/to/keyfile.pem', - 'lbin' => '/path/to/binary/lbin', - 'tmp' => '/secure/tmp', # a secure tmp directory ); $tx->content( @@ -230,6 +231,9 @@ For detailed information see L. This module implements an interface to the LinkPoint Perl Wrapper http://www.linkpoint.com/product_solutions/internet/lperl/lperl_main.html +Version 0.2 of this module has been updated for the LinkPoint Perl Wrapper +version 2.6. + =head1 BUGS =head1 AUTHOR diff --git a/t2/bad_auth.t b/t2/bad_auth.t index 16788a1..2374eaf 100644 --- a/t2/bad_auth.t +++ b/t2/bad_auth.t @@ -3,10 +3,8 @@ BEGIN { $| = 1; print "1..1\n"; } use Business::OnlinePayment; my $tx = new Business::OnlinePayment("LinkPoint", - 'storename' => '000000', - 'keyfile' => '/path/to/cert.pem', - 'lbin' => '/path/to/lbin', - 'tmp' => '/path/to/secure/tempdir', + 'storename' => '1909100155', + 'keyfile' => './test.pem', ); $tx->content( diff --git a/t2/credit_card.t b/t2/credit_card.t index 87de559..b70e9c0 100644 --- a/t2/credit_card.t +++ b/t2/credit_card.t @@ -3,10 +3,8 @@ BEGIN { $| = 1; print "1..1\n"; } use Business::OnlinePayment; my $tx = new Business::OnlinePayment("LinkPoint", - 'storename' => '000000', - 'keyfile' => '/path/to/cert.pem', - 'lbin' => '/path/to/lbin', - 'tmp' => '/path/to/secure/tempdir', + 'storename' => '1909100155', + 'keyfile' => './test.pem', ); $tx->content( diff --git a/test.pem b/test.pem new file mode 100644 index 0000000..ddf1529 --- /dev/null +++ b/test.pem @@ -0,0 +1,31 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQDfozXvSCCHOnOR8hQvlRywnLlKJq9AZL8+gYi57t/lCjPA7N1q +WWTBH0RdW/HOTJ9KtaH22DQ+PiAg9RfWqj/cqpR6W9iGrZ1NuL2nN8iuPYcqQ2S1 +/rRCT4I4rxJqTFFkD200Q7jPe2JMnUZiFsxXVTEW1WPXhrXvLJbTPzZtNQIDAQAB +AoGAQvfTydCWdQgq3XRZWRpU2gpEbhEBf83reuM9Nzhx8VtJvibv8s3MHwym4zIK +SdWmCbA0TP/XPSBLbLMYLV8T+gfsAXlTGqCfz+PGDW9g6/feOnR4s42unCxmZLiI +R57Pl/7ytWfO1YmUpLvtZnVj78ljMF/9o5g2s43KkJj9zAECQQD5Cajhn+AThaDq +VEGmxCrEh/otHvTLBGzakMUeP7x0HiVIGHIJ0MYBr54LtiheiE+qA7j7zCdgDj95 +nosFFacBAkEA5ePDnqkLJzP89SemOQ2nPl80b0y7tINXMrixXzbitorXlsHEh0H2 +PgRCNnv8//4l1ijRMBdLrvrp787ppYTaNQJAXWcmFBlmbWv9AmY/iVChybxGNI4b +udkbCo6pn8K/5702tmeUveGzogY//JyBX5M4bcefpbDYQ8qUPAUelvWcAQJBAOLA +9VxTOygRFIqv8DpIaFWSTMMXufIEtwbVvEbBeYA6lQoj2HjdrEhhpPne9J+AjMuf ++S5pXAKdhhA/VKEp2J0CQBUSDo82paE2eLpx3kDRROIl+p1VGEWo3uyUL67KfzNr +hcEU5ZSl7EnrGjN6Ui/8759ARTp3GJ78lW2R5Ow/+64= +-----END RSA PRIVATE KEY----- +-----BEGIN CERTIFICATE----- +MIICjzCCAfgCAQAwDQYJKoZIhvcNAQEEBQAwgY8xCzAJBgNVBAgTAkNBMRYwFAYD +VQQHEw1TYW4gRnJhbmNpc2NvMSwwKgYDVQQKEyNTaWxpY29uIEludGVyYWN0aXZl +IFNvZnR3YXJlIERlc2lnbjEUMBIGA1UEAxMLSXZhbiBLb2hsZXIxJDAiBgkqhkiG +9w0BCQEWFWl2YW4tbGlua3BvaW50QDQyMC5hbTAeFw0wMzA0MDEwMjUwMTNaFw0z +MzAzMjkwMjUwMTNaMIGPMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNU2FuIEZyYW5j +aXNjbzEsMCoGA1UEChMjU2lsaWNvbiBJbnRlcmFjdGl2ZSBTb2Z0d2FyZSBEZXNp +Z24xFDASBgNVBAMTC0l2YW4gS29obGVyMSQwIgYJKoZIhvcNAQkBFhVpdmFuLWxp +bmtwb2ludEA0MjAuYW0wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN+jNe9I +IIc6c5HyFC+VHLCcuUomr0Bkvz6BiLnu3+UKM8Ds3WpZZMEfRF1b8c5Mn0q1ofbY +ND4+ICD1F9aqP9yqlHpb2IatnU24vac3yK49hypDZLX+tEJPgjivEmpMUWQPbTRD +uM97YkydRmIWzFdVMRbVY9eGte8sltM/Nm01AgMBAAEwDQYJKoZIhvcNAQEEBQAD +gYEAfKv7S2p4TRWWMzl/i/eEsKMRVJgc3rVpr7MqR4xjU0PlQVbLxa97sZKkNmMe +4k3HyBbQcyJyogUV3T+LblQSL3XRhSEbRKtHBx7rSREbO3WHkJFA1+STQ0TY+HGq +6XJPdXkhL6ngi0Or+9kVN981Qxox0w+LBlO/0p3lIRIbdZw= +-----END CERTIFICATE----- -- 2.11.0