NAME WebService::PayPal::NVP - PayPal NVP API DESCRIPTION A pure object oriented interface to PayPal's NVP API (Name-Value Pair). A lot of the logic in this module was taken from Business::PayPal::NVP. I re-wrote it because it wasn't working with Catalyst adaptors and I couldn't save instances of it in Moose-type accessors. Otherwise it worked fine. So if you don't need that kind of support you should visit Business::PayPal::NVP!. Currently supports "do_direct_payment", "do_express_checkout_payment", "get_express_checkout_details" and "set_express_checkout". Another difference with this module compared to Business::PayPal::NVP is that the keys may be passed as lowercase. Also, a response will return a WebService::PayPal::NVP::Response object where the response values are methods. Timestamps will automatically be converted to DateTime objects for your convenience. SYNTAX my $nvp = WebService::PayPal::NVP->new( user => 'user.tld' pwd => 'xxx', sig => 'xxxxxxx', branch => 'sandbox', ); my $res = $nvp->set_express_checkout({ DESC => 'Payment for something cool', AMT => 25.00, CURRENCYCODE => 'GBP', PAYMENTACTION => 'Sale', RETURNURL => "http://returnurl.tld", CANCELURL => 'http//cancelurl.tld", LANDINGPAGE => 'Login', ADDOVERRIDE => 1, SHIPTONAME => "Customer Name", SHIPTOSTREET => "7 Customer Street", SHIPTOSTREET2 => "", SHIPTOCITY => "Town", SHIPTOZIP => "Postcode", SHIPTOEMAIL => "customer\@example.com", SHIPTOCOUNTRYCODE => 'GB', }); if ($res->success) { # timestamps turned into DateTime objects say "Response received at " . $res->timestamp->dmy . " " . $res->timestamp->hms(':'); say $res->token; for my $arg ($res->args) { if ($res->has_arg($arg)) { say "$arg => " . $res->$arg; } } # get a redirect uri to paypal express checkout # the Response object will automatically detect if you have # live or sandbox and return the appropriate url for you if (my $redirect_user_to = $res->express_checkout_uri) { $web_framework->redirect( $redirect_user_to ); } } else { say $_ for @{$res->errors}; } AUTHOR Brad Haywood CREDITS A lot of this module was taken from Business::PayPal::NVP by Scott Wiersdorf. It was only rewritten in order to work properly in Catalyst::Model::Adaptor. LICENSE You may distribute this code under the same terms as Perl itself.