.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Business::PayPal::API::ExpressCheckout 3pm" .TH Business::PayPal::API::ExpressCheckout 3pm "2019-11-16" "perl v5.30.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Business::PayPal::API::ExpressCheckout \- PayPal Express Checkout API .SH "VERSION" .IX Header "VERSION" version 0.77 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Business::PayPal::API::ExpressCheckout; \& \& ## see Business::PayPal::API documentation for parameters \& my $pp = Business::PayPal::API::ExpressCheckout\->new( ... ); \& \& my %resp = $pp\->SetExpressCheckout \& ( OrderTotal => \*(Aq55.43\*(Aq, ## defaults to USD \& ReturnURL => \*(Aqhttp://site.tld/return.html\*(Aq, \& CancelURL => \*(Aqhttp://site.tld/cancellation.html\*(Aq, ); \& \& ... 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 => \*(AqSale\*(Aq, \& PayerID => $details{PayerID}, \& OrderTotal => \*(Aq55.43\*(Aq ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBBusiness::PayPal::API::ExpressCheckout\fR implements PayPal's \&\fBExpress Checkout \s-1API\s0\fR using SOAP::Lite to make direct \s-1API\s0 calls to PayPal's \s-1SOAP API\s0 server. It also implements support for testing via PayPal's \fIsandbox\fR. Please see Business::PayPal::API for details on using the PayPal sandbox. .SS "SetExpressCheckout" .IX Subsection "SetExpressCheckout" Implements PayPal's \*(L"Website Payment Pro\*(R" \fBSetExpressCheckout\fR \s-1API\s0 call. Supported parameters include: .PP .Vb 10 \& Token \& OrderTotal \& currencyID \& MaxAmount \& OrderDescription \& Custom \& InvoiceID \& ReturnURL \& CancelURL \& Address \& ReqConfirmShipping \& NoShipping \& AddressOverride \& LocaleCode \& PageStyle \& \*(Aqcpp\-header\-image\*(Aq \& \*(Aqcpp\-header\-border\-color\*(Aq \& \*(Aqcpp\-header\-back\-color\*(Aq \& \*(Aqcpp\-payflow\-color\*(Aq \& PaymentAction \& BuyerEmail \& BillingType \& BillingAgreementDescription \& PaymentType \& BillingAgreementCustom .Ve .PP as described in the PayPal \*(L"Web Services \s-1API\s0 Reference\*(R" document. The default currency setting is '\s-1USD\s0' if not otherwise specified. .PP Returns a hash containing a 'Token' key, whose value represents the PayPal transaction token. .PP Required fields: .PP .Vb 1 \& OrderTotal, ReturnURL, CancelURL. \& \& my %resp = $pp\->SetExpressCheckout(); \& my $token = $resp{Token}; .Ve .PP Example (courtesy Ollie Ready): .PP .Vb 10 \& my $address = { \& Name => \*(AqSome Customer\*(Aq, \& Street1 => \*(Aq888 Test St.\*(Aq, \& Street2 => \*(AqSuite 9\*(Aq, \& CityName => \*(AqSan Diego\*(Aq, \& StateOrProvince => \*(AqCA\*(Aq, \& PostalCode => \*(Aq92111\*(Aq, \& Country => \*(AqUS\*(Aq, \& Phone => \*(Aq123\-123\-1234\*(Aq, \& }; \& \& my %response = $pp\->SetExpressCheckout( \& OrderTotal => \*(Aq11.01\*(Aq, \& ReturnURL => \*(Aq\*(Aq, \& CancelURL => \*(Aqhttp://example.com\*(Aq, \& PaymentAction => \*(AqAuthorization\*(Aq, \& AddressOverride => 1, \& Address => $address, \& ); .Ve .SS "GetExpressCheckoutDetails" .IX Subsection "GetExpressCheckoutDetails" Implements PayPal's \s-1WPP\s0 \fBSetExpressCheckout\fR \s-1API\s0 call. Supported parameters include: .PP .Vb 1 \& Token .Ve .PP as described in the PayPal \*(L"Web Services \s-1API\s0 Reference\*(R" document. This is the same token you received from \fBSetExpressCheckout\fR. .PP Returns a hash with the following keys: .PP .Vb 10 \& Token \& Custom \& InvoiceID \& ContactPhone \& Payer \& PayerID \& PayerStatus \& FirstName \& LastName \& PayerBusiness \& AddressStatus \& Name \& Street1 \& Street2 \& CityName \& StateOrProvince \& PostalCode \& Country .Ve .PP Required fields: .PP .Vb 1 \& Token .Ve .SS "DoExpressCheckoutPayment" .IX Subsection "DoExpressCheckoutPayment" Implements PayPal's \s-1WPP\s0 \fBSetExpressCheckout\fR \s-1API\s0 call. Supported parameters include: .PP .Vb 4 \& Token \& PaymentAction (defaults to \*(AqSale\*(Aq if not supplied) \& PayerID \& currencyID (defaults to \*(AqUSD\*(Aq 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 .Ve .PP as described in the PayPal \*(L"Web Services \s-1API\s0 Reference\*(R" document. .PP Returns a hash with the following keys: .PP .Vb 10 \& Token \& TransactionID \& TransactionType \& PaymentType \& PaymentDate \& GrossAmount \& FeeAmount \& SettleAmount \& TaxAmount \& ExchangeRate \& PaymentStatus \& PendingReason \& BillingAgreementID (if BillingType \*(AqMerchantInitiatedBilling\*(Aq \& was specified during SetExpressCheckout) .Ve .PP Required fields: .PP .Vb 1 \& Token, PayerID, OrderTotal .Ve .SS "\s-1ERROR HANDLING\s0" .IX Subsection "ERROR HANDLING" See the \fB\s-1ERROR HANDLING\s0\fR section of \fBBusiness::PayPal::API\fR for information on handling errors. .SH "EXAMPLES" .IX Header "EXAMPLES" Andy Spiegl has kindly donated some example code (in German) which may be found in the \fIeg\fR directory of this archive. Additional code examples may be found in the \fIt\fR test directory. .SS "\s-1EXPORT\s0" .IX Subsection "EXPORT" None by default. .SH "SEE ALSO" .IX Header "SEE ALSO" SOAP::Lite, Business::PayPal::API, , .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Scott Wiersdorf .IP "\(bu" 4 Danny Hembree .IP "\(bu" 4 Bradley M. Kuhn .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2006\-2017 by Scott Wiersdorf, Danny Hembree, Bradley M. Kuhn. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.