PayPal Permissions

Dependencies

Rails 3.1 or later.

The PayPal Permissions gem installs ActiveMerchant if it's not already in place. PayPal Permissions is known to work with ActiveMerchant 1.21.

Install

In your Gemfile:

gem paypal_permissions

After installing the gem:

rails generate paypal_permissions:install

Running the install generator will:

  • update your config/environments/development,test,production.rb files. You must edit these files with your PayPal credentials.
  • create an initializer in config/initializers/paypal_permissions.rb

Optionally generate resources

rails generate paypal_permissions <new or existing resource name>

This generator will:

  • create a migration which updates the table for an existing model or creates a new table along with a new model. ActiveRecord is the only supported orm.
  • create a controller. For help, take a look at the example controller in examples/app/controllers/merchants_controller.rb.
  • insert routes into config/routes.rb. Make sure that the request_permissions_callback route is inserted before the resources routes.

For example, if you plan to query PayPal using getBasicPersonalData and getAdvancedPersonalData, you might generate a merchant model like:

rails generate paypal_permissions merchant email:string first_name:string last_name:string full_name:string country:string payer_id:string street1:string street2:string city:string state:string postal_code_string phone:string birth_date:string bundle exec rake db:migrate

Rolling your own resources

Routes

You must provide a callback route for PayPal. Again, for help, see examples/app/controllers/merchants_controller.rb.

match 'paypal_perms/request_permissions_callback' => 'paypal_perms#request_permissions_callback', :via => [ :get ], :as => :paypal_perms_request_permissions_callback resources :paypal_perms, :only => [ :index, :new, :create, :show ]

Models, migrations, and controllers

The resources generator will populate your model and migration, as well as create an empty controller.

For more help, see the examples directory.