NAME
Business::PayPal::API::ExpressCheckout - PayPal Express Checkout API
VERSION
version 0.77
SYNOPSIS
## see Business::PayPal::API documentation for parameters
my
$pp
= Business::PayPal::API::ExpressCheckout->new( ... );
my
%resp
=
$pp
->SetExpressCheckout
(
OrderTotal
=>
'55.43'
,
## defaults to USD
...
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'
,
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
AUTHORS
Scott Wiersdorf <scott@perlcode.org>
Danny Hembree <danny@dynamical.org>
Bradley M. Kuhn <bkuhn@ebb.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2006-2017 by Scott Wiersdorf, Danny Hembree, Bradley M. Kuhn.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.