File: DirectPayments.t

package info (click to toggle)
libbusiness-paypal-api-perl 0.69-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 280 kB
  • ctags: 51
  • sloc: perl: 1,856; makefile: 2
file content (158 lines) | stat: -rw-r--r-- 6,465 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;

if( ! $ENV{WPP_TEST} || ! -f $ENV{WPP_TEST} ) {
    plan skip_all => 'No WPP_TEST env var set. Please see README to run tests';
}
else {
    plan tests => '7';
}

use Business::PayPal::API qw( DirectPayments CaptureRequest ReauthorizationRequest VoidRequest RefundTransaction );

my @methlist = qw( DirectPayments CaptureRequest ReauthorizationRequest VoidRequest RefundTransaction);
use_ok('Business::PayPal::API', @methlist);

require 't/API.pl';

my %args = do_args();

my ($transale,$tranvoid,$tranbasic,$tranrefund);
my ($ppsale,$ppvoid,$ppbasic,$pprefund,$pprefund1,$ppcap,$ppcap1);
my (%respsale,%resprefund,%resprefund1,%respbasic,%respcap,%respcap1,%respvoid);

#Test Full Refund on Sale

#$Business::PayPal::API::Debug=1;
$ppsale = new Business::PayPal::API(%args);
%respsale = $ppsale->DoDirectPaymentRequest (
                        PaymentAction    => 'Sale',
                        OrderTotal    => 11.87,
                        TaxTotal       => 0.0,
                        ItemTotal  => 0.0,
                        CreditCardType      => 'Visa',
                        CreditCardNumber        => '4561435600988217',
                        ExpMonth       => '01',
                        ExpYear        => +(localtime)[5]+1901,
                        CVV2       => '123',
                        FirstName      => 'JP',
                        LastName      => 'Morgan',
                        Street1  => '1st Street LaCausa',
                        Street2  => '',
                        CityName      => 'La',
                        StateOrProvince     => 'CA',
                        PostalCode       => '90210',
                        Country   => 'US',
                        Payer    => 'mall@example.org',
                        CurrencyID  => 'USD',
                        IPAddress        => '10.0.0.1',
                        MerchantSessionID      => '10113301',
                        );
#$Business::PayPal::API::Debug=0;
if(like( $respsale{'Ack'}, qr/Success/, 'Direct Payment Sale')) {
            $transale = $respsale{'TransactionID'};
#$Business::PayPal::API::Debug=1;
            $pprefund = new Business::PayPal::API(%args);
            %resprefund = $pprefund->RefundTransaction (
                            TransactionID => $transale,
                            RefundType    => 'Full',
                            Memo          => 'Full direct sale refund',
                            );
#$Business::PayPal::API::Debug=0;
            like( $resprefund{'Ack'}, qr/Success/, 'Full Refund For Sale');
      }

#Basic Authorization and Capture

%args=do_args();
#$Business::PayPal::API::Debug=0;
$ppbasic = new Business::PayPal::API(%args);
%respbasic = $ppbasic->DoDirectPaymentRequest (
                        PaymentAction    => 'Authorization',
                        OrderTotal    => 13.87,
                        TaxTotal       => 0.0,
                        ItemTotal  => 0.0,
                        CreditCardType      => 'Visa',
                        CreditCardNumber        => '4561435600988217',
                        ExpMonth       => '01',
                        ExpYear        => +(localtime)[5]+1901,
                        CVV2       => '123',
                        FirstName      => 'JP',
                        LastName      => 'Morgan',
                        Street1  => '1st Street LaCausa',
                        Street2  => '',
                        CityName      => 'La',
                        StateOrProvince     => 'CA',
                        PostalCode       => '90210',
                        Country   => 'US',
                        Payer    => 'mall@example.org',
                        CurrencyID  => 'USD',
                        IPAddress        => '10.0.0.1',
                        MerchantSessionID      => '10113301',
                        );

#$Business::PayPal::API::Debug=0;
if( like( $respbasic{'Ack'}, qr/Success/, 'Direct Payment Basic Authorization') ) {
    $tranbasic = $respbasic{'TransactionID'};

    #Test Partial Capture
    #$Business::PayPal::API::Debug=1;
    $ppcap = new Business::PayPal::API(%args);

    %respcap = $ppcap->DoCaptureRequest (
					 AuthorizationID => $tranbasic,
					 CompleteType    => 'NotComplete',
					 Amount        => '3.00',
					 Note          => 'Partial Capture',
					);
    #$Business::PayPal::API::Debug=0;
    like( $respcap{'Ack'}, qr/Success/, 'Partial Capture');

    #Test Full Capture
    #$Business::PayPal::API::Debug=1;
    $ppcap1 = new Business::PayPal::API(%args);
    %respcap1 = $ppcap1->DoCaptureRequest (
					   AuthorizationID => $tranbasic,
					   CompleteType    => 'Complete',
					   Amount          => '6.00',
					  );
    #$Business::PayPal::API::Debug=0;
    like( $respcap1{'Ack'}, qr/Success/, 'Full Capture');
}
else { skip( "direct payment auth failed", 2 ) }


#Test Void
$ppbasic = new Business::PayPal::API(%args);
%respbasic = $ppbasic->DoDirectPaymentRequest (
                        PaymentAction    => 'Authorization',
                        OrderTotal    => 17.37,
                        TaxTotal       => 0.0,
                        ItemTotal  => 0.0,
                        CreditCardType      => 'Visa',
                        CreditCardNumber        => '4561435600988217',
                        ExpMonth       => '01',
                        ExpYear        => +(localtime)[5]+1901,
                        CVV2       => '123',
                        FirstName      => 'JP',
                        LastName      => 'Morgan',
                        Street1  => '1st Street LaCausa',
                        Street2  => '',
                        CityName      => 'La',
                        StateOrProvince     => 'CA',
                        PostalCode       => '90210',
                        Country   => 'US',
                        Payer    => 'mall@example.org',
                        CurrencyID  => 'USD',
                        IPAddress        => '10.0.0.1',
                        MerchantSessionID      => '10113301',
                        );

#$Business::PayPal::API::Debug=1;
$ppvoid = new Business::PayPal::API(%args);
%respvoid = $ppvoid->DoVoidRequest ( AuthorizationID => $respbasic{TransactionID},
				     Note            => 'Authorization Void', );
#$Business::PayPal::API::Debug=0;
like( $respvoid{'Ack'}, qr/Success/, 'Authorization Voided');