NAME

Business::PayPal::API::DirectPayments - PayPal DirectPayments API

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, 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 => 'Joe@Example.org', CurrencyID => 'USD', IPAddress => '10.0.0.1', MerchantSessionID => '10113301', );

DESCRIPTION

Business::PayPal::API::DirectPayments implements PayPal's DirectPayments API using SOAP::Lite to make direct API calls to PayPal's SOAP API 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 API call. Supported parameters include:

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

as described in the PayPal "Web Services API Reference" 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} ne 'Success' ) {
    for my $error ( @{$response{Errors}} ) {
        warn "Error: " . $error->{LongMessage} . "\n";
    }
}

ERROR HANDLING

See the ERROR HANDLING section of Business::PayPal::API for information on handling errors.

EXPORT

None by default.

SEE ALSO

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

AUTHOR

Daniel Hembree <danny@dynamical.org>

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.