Busine...eckout(3pm)
π Business::PayPal::API::ExpressCheckout β the 3pm page, but make it cute π
okay bestie so you wanna take money over the internet with PayPal's Express Checkout and you're writing Perl?? first of all, iconic. second, this is literally version 0.77 of Business::PayPal::API::ExpressCheckout and I'm gonna walk you through every single thing it does. no skimming, no skipping, we go through ALL of it. grab a beverage. π
β¨ NAME β¨
Business::PayPal::API::ExpressCheckout β it's the PayPal Express Checkout API. that's the whole vibe. π
πΈ VERSION πΈ
version 0.77
π¦ SYNOPSIS π¦
here's the lil sneak peek of what using this thing actually looks like:
use Business::PayPal::API::ExpressCheckout;
## see Business::PayPal::API documentation for parameters
my $pp = Business::PayPal::API::ExpressCheckout->new( ... );
my %resp = $pp->SetExpressCheckout
( OrderTotal => '55.43', ## defaults to USD
ReturnURL => 'http://site.tld/return.html',
CancelURL => 'http://site.tld/cancellation.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' );
see like β you set it up, the buyer goes off and does buyer things with PayPal, time passes (... time passes, buyer validates the token with PayPal ...), and then you ask PayPal to xfer the money. main character arc honestly. β¨
π 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 β so yes you can rehearse before you go live, we love a rehearsal. π
please see Business::PayPal::API for details on using the PayPal sandbox, okay? π«Ά
π« SetExpressCheckout π«
this one implements PayPal's "Website Payment Pro" SetExpressCheckout API call. the 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. and listen β the default currency setting is 'USD' if you don't specify otherwise. β¨
it returns a hash containing a 'Token' key, whose value represents the PayPal transaction token. that token is your lil golden ticket, remember it. π
Required fields:
OrderTotal, ReturnURL, CancelURL.
like so:
my %resp = $pp->SetExpressCheckout();
my $token = $resp{Token};
Example (courtesy Ollie Ready β shoutout Ollie!! π):
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 π§
this implements PayPal's WPP SetExpressCheckout API call. (yes same name, that's just what the docs say, don't @ me. π) supported parameters include:
Token
...as described in the PayPal "Web Services API Reference" document. and this is literally the same token you received from SetExpressCheckout. same token, bestie. π«Ά
it 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 π
this 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. π
it 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. when things go sideways, that's where you go. π
π 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. thank you Andy, you ate. π
β EXPORT β
None by default. (nothing, zero, nada β you import what you want. independent queen energy. π )
π 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. π«Ά (free software rights, we respect them here.)
and that's the whole page bestie, no cap. β¨ this was perl v5.36.0, dated 2022-08-28, from your girl Busine...eckout(3pm) π
go get that bag, fr fr. ππ¦π
π¦ where this page comes from
- ubuntu noble: libbusiness-paypal-api-perl 0.77-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libbusiness-paypal-api-perl 0.77-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libbusiness-paypal-api-perl 0.77-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms