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.