Provided by: libbusiness-paypal-api-perl_0.70-1_all bug

NAME

       Business::PayPal::API::ExpressCheckout - PayPal Express Checkout API

SYNOPSIS

         use Business::PayPal::API::ExpressCheckout;

         ## see Business::PayPal::API documentation for parameters
         my $pp = new Business::PayPal::API::ExpressCheckout ( ... );

         my %resp = $pp->SetExpressCheckout
                      ( OrderTotal => '55.43',   ## defaults to USD
                        ReturnURL  => 'http://site.tld/return.html',
                        CancelURL  => 'http://site.tld/canceltation.html', );

         ... time passes, buyer validates the token with PayPal ...

         my %details = $pp->GetExpressCheckoutDetails($resp{Token});

         ## now ask PayPal to xfer the money
         my %payinfo = $pp->DoExpressCheckoutPayment( Token => $details{Token},
                                                      PaymentAction => 'Sale',
                                                      PayerID => $details{PayerID},
                                                      OrderTotal => '55.43' );

DESCRIPTION

       Business::PayPal::API::ExpressCheckout implements PayPal's Express Checkout 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.

   SetExpressCheckout
       Implements PayPal's "Website Payment Pro" SetExpressCheckout API call. Supported
       parameters include:

         Token
         OrderTotal
         currencyID
         MaxAmount
         OrderDescription
         Custom
         InvoiceID
         ReturnURL
         CancelURL
         Address
         ReqConfirmShipping
         NoShipping
         AddressOverride
         LocaleCode
         PageStyle
         'cpp-header-image'
         'cpp-header-border-color'
         'cpp-header-back-color'
         'cpp-payflow-color'
         PaymentAction
         BuyerEmail
         BillingType
         BillingAgreementDescription
         PaymentType
         BillingAgreementCustom

       as described in the PayPal "Web Services API Reference" document. The default currency
       setting is 'USD' if not otherwise specified.

       Returns a hash containing a 'Token' key, whose value represents the PayPal transaction
       token.

       Required fields:

         OrderTotal, ReturnURL, CancelURL.

           my %resp = $pp->SetExpressCheckout();
           my $token = $resp{Token};

       Example (courtesy Ollie Ready):

         my $address = {
               Name            =>      'Some Customer',
               Street1         =>      '888 Test St.',
               Street2         =>      'Suite 9',
               CityName        =>      'San Diego',
               StateOrProvince =>      'CA',
               PostalCode      =>      '92111',
               Country         =>      'US',
               Phone           =>      '123-123-1234',
         };

         my %response = $pp->SetExpressCheckout(
               OrderTotal      =>      '11.01',
               ReturnURL       =>      '<![CDATA[http://example.com/p?cmd=checkout]]>',
               CancelURL       =>      'http://example.com',
               PaymentAction   =>      'Authorization',
               AddressOverride =>      1,
               Address         =>      $address,
         );

   GetExpressCheckoutDetails
       Implements PayPal's WPP SetExpressCheckout API call. Supported parameters include:

         Token

       as described in the PayPal "Web Services API Reference" document. This is the same token
       you received from SetExpressCheckout.

       Returns a hash with the following keys:

         Token
         Custom
         InvoiceID
         ContactPhone
         Payer
         PayerID
         PayerStatus
         FirstName
         LastName
         PayerBusiness
         AddressStatus
         Name
         Street1
         Street2
         CityName
         StateOrProvince
         PostalCode
         Country

       Required fields:

         Token

   DoExpressCheckoutPayment
       Implements PayPal's WPP SetExpressCheckout API call. Supported parameters include:

         Token
         PaymentAction (defaults to 'Sale' if not supplied)
         PayerID
         currencyID (defaults to 'USD' if not supplied)

         OrderTotal
         OrderDescription
         ItemTotal
         ShippingTotal
         HandlingTotal
         TaxTotal
         Custom
         InvoiceID
         ButtonSource
         NotifyURL

         ST_Name
         ST_Street1
         ST_Street2
         ST_CityName
         ST_StateOrProvince
         ST_Country
         ST_PostalCode

         PDI_Name
         PDI_Amount
         PDI_Number
         PDI_Quantity
         PDI_Tax

       as described in the PayPal "Web Services API Reference" document.

       Returns a hash with the following keys:

         Token
         TransactionID
         TransactionType
         PaymentType
         PaymentDate
         GrossAmount
         FeeAmount
         SettleAmount
         TaxAmount
         ExchangeRate
         PaymentStatus
         PendingReason
         BillingAgreementID (if BillingType 'MerchantInitiatedBilling'
                             was specified during SetExpressCheckout)

       Required fields:

         Token, PayerID, OrderTotal

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

EXAMPLES

       Andy Spiegl <paypalcheckout.Spiegl@kascada.com> has kindly donated some example code (in
       German) which may be found in the eg directory of this archive. Additional code examples
       may be found in the t test directory.

   EXPORT
       None by default.

SEE ALSO

       SOAP::Lite, Business::PayPal::API,
       <https://www.paypal.com/IntegrationCenter/ic_expresscheckout.html>,
       <https://developer.paypal.com/en_US/pdf/PP_APIReference.pdf>

AUTHOR

       Scott Wiersdorf, <scott@perlcode.org>

COPYRIGHT AND LICENSE

       Copyright (C) 2006 by Scott Wiersdorf

       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.6 or, at your option, any later version of
       Perl 5 you may have available.