NAME
Catalyst::Model::PayPal::API - PayPal Model for Catalyst
WARNING
Although I have been using this model for over 12 months in production, and it has processed over $10,000 in sales - please test thoroughly before risking your livelyhood on it!
This module is really only a layer between Catalyst::Model and Business::PayPal::API, any problems will PayPall are probably problems with the underlying module.
SYNOPSIS
package YourApp::Model::PayPal;
use parent 'Catalyst::Model::PayPal::API';
__PACKAGE->config(%paypal_account_details);
1
package YourApp::Controller::Foo;
sub index : Path('/') {
my ( $self, $c, @args ) = @_;
my %resp = $c->model('PayPal')->SetExpressCheckout(%options);
if ( $resp{Ack} eq 'Success' ) {
# save the various details in a database or something, then redirect
$c->response->redirect(
$c->model('PayPal')->redirect_url() . $resp{Token} );
} else {
# handle the error details, see Business::PayPal::API
}
}
1
USAGE
3-token (Signature) authentication
package 'Your::Model::PayPal';
use parent 'Catalyst::Model::PayPal::API';
__PACKAGE__->config(
Username => 'your paypal username',
Password => 'ABCDEF', ## supplied by PayPal
Signature => 'xyz', ## ditto
sandbox => 0 || 1, ## Use sandbox or production API
subclasses => [qw( ExpressCheckout GetTransactionDetails )],
## Which functions to use
);
- Username
-
Your paypal API username
- Password
-
As supplied by PayPal
- Signature
-
As supplied by PayPal
- sandbox
-
If true, uses the sandbox apis rather than production APIs
Use this for the thorough testing I mentioned above.
- subclasses
-
Business::PayPal::API has a custom import() function which you must instruct to load which ever API functions you want to use. This sounds less strange than it is. See Business::PayPal::API::* for which API options can be loaded.
Check the documentation for Business::PayPal::API for details on which options you want to use here.
PEM certificate authentication
package 'Your::Model::PayPal';
use parent 'Catalyst::Model::PayPal::API';
__PACKAGE__->config(
Username => 'your paypal username',
Password => 'ABCDEF', ## supplied by PayPal
CertFile => '/path/to/file', ## file, supplied by PayPal
KeyFile => '/path/to/file', ## file, supplied by PayPal
sandbox => 0 || 1, ## Use sandbox or production API
subclasses => [qw( ExpressCheckout GetTransactionDetails )],
## Which functions to use
);
- Username, Password, sandbox, subclasses
-
As described previously
- CertFile
-
Location of the CertFile
- KeyFile
-
Location of the KeyFile
Certificate authentication
package 'Your::Model::PayPal';
use parent 'Catalyst::Model::PayPal::API';
__PACKAGE__->config(
Username => 'your paypal username',
Password => 'ABCDEF', ## supplied by PayPal
PKCS12File => '/path/to/file', ## file, supplied by PayPal
PKCS12Password => '/path/to/file', ## file, supplied by PayPal
sandbox => 0 || 1, ## Use sandbox or production API
subclasses => [qw( ExpressCheckout GetTransactionDetails )],
## Which functions to use
);
- Username, Password, sandbox, subclasses
-
As described previously
- PKCS12File
-
Location of the PKCS12File
- PKCS12Password
-
Location of the PKCS12Password
DESCRIPTION
This is a Catalyst model for Business::PayPal::API, allowing you to use PayPal to bill your clients in your Catalyst application.
When naming this model, I have chosen to drop the 'Business::' so as to shorten the name somewhat.
FUNCTIONS
new
You don't need to worry about new(), Catalyst uses this all on its own.
redirect_url
$redirect = $c->model('PayPal')->redirect_url() . $token;
This is a convenient function which you can use to redirect your customer to PayPal to make their purchases. You just concatenate their token to the end and redirect!
This function knows about the sandbox setting, which is also very convenient when testing. But remember that you provide to PayPal the return URL, so you'll need to match it with your production and testing environments independant on your own!
ERROR HANDLING
As per Busines::PayPal::API, errors are in the %resp returned when functions are called.
SEE ALSO
AUTHOR
Dean Hamstead, <dean at fragfest.com.au>
BUGS
Please report any bugs or feature requests through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Model-PayPal-API. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
Please fork and contribute via https://github.com/djzort/Catalyst-Model-PayPal-API
COPYRIGHT & LICENSE
Copyright 2012 Dean Hamstead,
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.