Adding Simple Payment Processing to Drupal Site
I had a need to add simple payment processing to a Drupal website; I did not want to use Ubercart or any other eCommerce modules, or CiviCRM. Here were my basic requirements:
- Users register for a course using a web form page
- After registration user is taken to a payment page
- Payment is then processed by Paypal
- After payment is processed, user is directed back to the site
In this simple payment processing example, I did not want any payment confirmation. For example, if a user registers and then does not complete payment then in this simple method, there would be no automated check or flag; the admin would have to manually check and match the registration and payment records. In order to accomplish this, I looked at two modules: Simple_Paypal and LM_Paypal. Simple_Paypal is till in test mode for Drupal 6, so it is not ready for deployment. LM_Paypal was used for this example. Following steps were used:
- Install lm_paypal module in normal location (/sites/all/modules/)
- Enable the module at http://mysite..../admin/build/modules
- Configure the module at http://mysite.../admin/settings/lm_paypal/settings
- The first field is LM PayPal Business/Premier Email:
- Create an account with Paypal and use the email address registered with Paypal
- Use default values for the next 2 fields. Use the sandbox address while testing
- While testing check on the two checkboxes
- Last step in configuration is to go to http://mysite.../admin/settings/lm_paypal/donations_settings. Here enter a URL; this URL is used by Paypal after the payment processing is complete.
- Next, we need to put a "Pay" link on a webpage. Here is the code:
'; // The amount is a one element array so an text input with the one value as // default // print 'Write your own amount to give, we suggest $5' . // lm_paypal_donate(array(5), 'USD', 'donation to example.com') . '
'; // The amount is a multi element array so a select will be used. Note if one // of the elements is itself an array that will be the default selection // The final two parameters are an alternative button (here we use the default) // and a replacement label before the amount // print 'We would really like a $10, or more, donation ' . // lm_paypal_donate(array(5,array(10),15), 'USD', 'donation to example.com', '', 'Donation') .'
'; } ?>
This completes the setup of simple payment processing.