SYNOPSIS

    use Business::PayPal::API qw(DirectPayments);

    ## see Business::PayPal::API documentation for parameters

    my $pp = new Business::PayPal::API(
                        Username => 'name_api1.example.org',
                        Password => 'somepass',
                        CertFile => '/path/to/tester1.cert_key_pem.txt',
                        KeyFile  => '/path/to/tester1.cert_key_pem.txt',
                        sandbox  => 1,
                        );

    my %response = $pp->DoDirectPaymentRequest (
                        PaymentAction      => 'Sale',
                        OrderTotal         => 13.59,
                        TaxTotal           => 0.0,
                        ShippingTotal      => 0.0,
                        ItemTotal          => 0.0,
                        HandlingTotal      => 0.0,
                        InvoiceID          => 'your-tracking-number',
                        CreditCardType     => 'Visa',
                        CreditCardNumber   => '4561435600988217',
                        ExpMonth           => '01',
                        ExpYear            => '2007',
                        CVV2               => '123',
                        FirstName          => 'James',
                        LastName           => 'PuffDaddy',
                        Street1            => '1st Street LaCausa',
                        Street2            => '',
                        CityName           => 'La',
                        StateOrProvince    => 'Ca',
                        PostalCode         => '90210',
                        Country            => 'US',
                        Payer              => '[email protected]',
                        ShipToName         => 'Jane Doe',
                        ShipToStreet1      => '1234 S. Pleasant St.',
                        ShipToStreet2      => 'Suite #992',
                        ShipToCityName     => 'Vacation Town',
                        ShipToStateOrProvince => 'FL',
                        ShipToCountry      => 'US',
                        ShipToPostalCode   => '12345',
                        CurrencyID         => 'USD',
                        IPAddress          => '10.0.0.1',
                        MerchantSessionID  => '10113301',
                        );

DESCRIPTION

Business::PayPal::API::DirectPayments implements PayPal's DirectPayments \s-1API\s0 using SOAP::Lite to make direct \s-1API\s0 calls to PayPal's \s-1SOAP\s0 \s-1API\s0 server. It also implements support for testing via PayPal's sandbox. Please see Business::PayPal::API for details on using the PayPal sandbox.

DoDirectPaymentRequest

Implements PayPal's DoDirectPaymentRequest \s-1API\s0 call. Supported parameters include:

PaymentAction ( Sale|Authorize, Sale is default ) OrderTotal TaxTotal ShippingTotal ItemTotal HandlingTotal InvoiceID CreditCardType CreditCardNumber ExpMonth ( two digits, leading zero ) ExpYear ( four digits, 20XX ) CVV2 FirstName LastName Street1 Street2 CityName StateOrProvince PostalCode Country Payer ShipToName ShipToStreet1 ShipToStreet2 ShipToCityName ShipToStateOrProvince ShipToCountry ShipToPostalCode CurrencyID (USD is default) IPAddress MerchantSessionID

as described in the PayPal \*(L"Web Services \s-1API\s0 Reference\*(R" document.

Returns a hash containing the results of the transaction. The Ack element and TransactionID are the most useful return values.

Example:

my %resp = $pp->DoDirectPaymentRequest( PaymentAction => 'Sale', OrderTotal => '10.99', ... );

unless( $resp{Ack} !~ /Success/ ) { for my $error ( @{$response{Errors}} ) { warn "Error: " . $error->{LongMessage} . "\n"; } }

\s-1ERROR\s0 \s-1HANDLING\s0

See the \s-1ERROR\s0 \s-1HANDLING\s0 section of Business::PayPal::API for information on handling errors.

\s-1EXPORT\s0

None by default.

RELATED TO Business::PayPal::API::DirectPayments…

<https://developer.paypal.com/en_US/pdf/PP_APIReference.pdf>

AUTHOR

Daniel Hembree <[email protected]>

COPYRIGHT AND LICENSE

Copyright (C) 2006 by Daniel P. Hembree

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.