Setup PayPal Payments

Thursday, Sep 12, 2019

The online payment processing by CourseSales.com is suitable for all online payment providers, if you have a merchant account with a bank please contact us as we may have a payment solution. PayPal is by far the most widely used online payment provider, where customers can make payment from their paypal account which is in turn linked to credit, debit or bank accounts. Customers do not need however to have a PayPal account. CourseSales.com stores no financial data. All data is entered by the customer into the payment provider’s website, so financial risks to you and your customers are limited. Using an auto return URL will ensure your customers quickly come back to you after payment is made, this is a pending payment, and should be confirmed in paypal itself, unless you use Instant Payment Notification (IPN) which can do it automatically.

We use Instant Payment Notification (IPN) integration - meaning that payment notifications occur in the background, automatically updating a process step when a successful payment has been confirmed. While the payment is not instantaneous (despite its name) it is automatic. You can direct the customer to different pages depending on whether the payment was successful or canceled by the user.

Learn about the costs and requirements of each PayPal integration method. CourseSales.com supports all these methods and confirmation of the payment when the customer returns to the CourseSales.com site. Below we explain how to use the different online payment methods.

You can customise your customer’s payment experience using the HTML guidance from PayPal. Using Paypal and a CourseSales.com Online Payment method has the following features;

  • Optionally include passthrough variables that can be used for accounting purposes

  • Have ‘return’ URLs so that process steps within CourseSales.com will be updated, triggering emails or allocation of a password/username for a learning management system, eg. moodle credentials can be sent automatically

  • Cater for different languages (encoding) of the payment pages

  • Set the currency of the transaction

  • Pre-fill address and contact information on the PayPal payment pages for delivery and billing

  • Modify and customise the look and feel of the payment pages.

Learn more about PayPal's supported HTML variables, which you can use to enchance the payment experience and reduce administration.

Online Full HTML payment method

The following is an example of setting up Online Full HTML payment method:

For the following guidance you may wish to consider:

  • Including your CSS and JS file references at the end of URLs, eg adding “&css=ccl.css&js=ccl.js”

  • When using ‘return’ URLs you need to include the variable “&orcDocumentUpdate=NoPaidUpdate” to avoid the Paid process step updating upon return AND upon IPN update, otherwise you will see TWO Paid steps processed.

  • If you use your paypal account for other payments (not just CourseSales.com) you may wish to specify the variable ‘notify_url’ which means that the default can remain another service/listener.

  • If you wish to have a customised message or even gather information from the student if they cancel payment set up a ‘cancelled’ payment process step, form and rule. As a process step form include the extranet URL as the value for ‘cancel_return’ field.

  • Remember to replace <shortname> with your own organisation’s shortname of your domain for CourseSales.com, eg if your domain is ccl.coursesales.com your shortname = ccl

The basic Online Code for the Online Full HTML payment method using IPN (for Paypal business accounts):

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="paypal.seller@coursesales.net">
<input type="hidden" name="item_name" value="[CourseDates:CourseMasterDisplayCategoryName]">
<input type="hidden" name="item_number" value="[Documents:DocumentId]">
<input type="hidden" name="custom" value="[Documents:DocumentExternalId]">
<input type="hidden" name="amount" value="[PriceDetail:PriceTotalPrice]">
<input type="hidden" name="return" value="https://<shortname>.coursesales.com/public/paid?DocumentExternalId=[Documents:DocumentExternalId]&orcDocumentUpdate=NoPaidUpdate">
<input type="hidden" name="cancel_return" value="[Documents:DocumentUrlExtranet76]">
<input type='hidden' name='notify_url' value='http://<shortname>.coursesales.com/rest/paypalpayment'>
<input type="hidden" NAME="currency_code" value="AUD">
<input type="hidden" name="invoice" value="[Documents:DocumentExternalId]"/>
<input type="submit" value="Pay now using PayPal">
</form>

The basic Online Code for the Online Full HTML payment method using return URL (for Paypal personal accounts, no IPN):

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="P4N5NAJLUBPYN">
<input type="hidden" name="item_name" value="[CourseDates:CourseMasterDisplayCategoryName]">
<input type="hidden" name="item_number" value="[Documents:DocumentId]">
<input type="hidden" name="amount" value="[PriceDetail:PriceTotalPrice]">
<input type="hidden" name="currency_code" value="[Currencies:CurrencyCode]">
<input type="hidden" name="invoice" value="[Documents:DocumentExternalId]"/>
<input type="hidden" name="return" value="https://<shortname>.coursesales.com/public/paid?DocumentExternalId=[Documents:DocumentExternalId]">
<input type="submit" name="METHOD" value="Pay now using PayPal">
</form>

The basic Online Code for the Online Pay Now Link (replace with your paypal URL, business code, and your booking Process Step ID) put this one one line, we have split the link to make it easier to read:

https://www.paypal.com/cgi-bin/webscr?
cmd=_xclick&
amount=[PriceDetail:PriceTotalPrice]&
currency_code=[Currencies:CurrencyCode]&
business=P4N5NAJLUBPYN&
return=https://<shortname>.test.coursesales.com/public/paid?DocumentExternalId=[Documents:DocumentExternalId]&amp;CourseDateId=[CourseDates:CourseDateId]&amp;ProcessStepID=8

You can include the Payment URL field [PaymentMethods:PaymentMethodURL], in email templates using the field picker, but only if the Payment Method uses a URL (link)

Remember to replace with your own organisation’s shortname of your domain for coursesales.com, eg if your domain is ccl.coursesales.com your shortname = ccl

Triggering the ‘paid’ process step

To ensure that the online payment method works correctly it is necessary to have specified a ‘paid’ process step.

Notes

  • If there is no URL nothing will be printed

  • You can incorporate the link into your own text

Triggering an automatic return URL

This will mean that the customer is automatically directed back to your site, triggering the Paid step. You need to make a setting change on your Paypal account:

  1. Navigate to your Profile

  2. Navigate to your Selling tools and website preferences

  3. Update your Autoreturn for website payments, you need to specify a default return URL eg: https://ccl.coursesales.com/co/ccl/Paid.html which meets PayPal’s minimal requirements. Remember to replace the ‘ccl’ for your organisation’s shortname

Setting up Instant Payment Notification

Without using IPN each paypal payment is pending confirmation, this means it has not been confirmed as successful. Enabling IPN along with Auto Return for Website Payments means you can confirm payments and provide a seamless experience for customers. Changes are required within your Paypal account, follow these steps to set up Instant Payment Notification for your site:

Step 1

Edit the IPN details under ‘Profile and settings’

Step 2

Review and proceed with the notification page

Step 3

Set the notification URL ie https://ccl.coursesales.com/rest/paypalpayment and enable the IPN

Testing

To test your setup use a dummy credit card transaction: See here for test credit card numbers.

Frequently asked questions

How can I set up an auto return rather than relying on a link to be clicked on?

Please visit this page then enable the auto return. If you include the field ‘return’ in your paypal payment method with a valid URL then it will be used, if not the value ‘Return URL’ will be used. Use this: https://cs.test.coursesales.com/co/ccl/Paid.html On the page that your ‘return’ links points to include the words: “Thank you for your payment. Your transaction has been completed and a receipt for your purchase has been emailed to you. You may log into your account at PayPal to view details of this transaction.”

Rather than PayPal I have my own merchant account with my bank - do you support online transactions with my bank?

We can support most banks, please contact us for further information, with a description of how much integration you require, eg. links to a payment page or seamless flow between registration and payment to update a process step upon confirmation.

What will the costs be to use PayPal?

We recommend you visit PayPal for the most up to date prices: https://www.paypal.com/webapps/mpp/ua/cfsgpds-full?country.x=AU#18_Fees_and_charges . Section 18.21, Virtual Terminal and Website Payments Pro includes prices regarding Business Accounts using an integrated approach – Hosted Solution and API incur a monthly fee.

Can I do test payments to confirm things are working?

Set up some PayPal sandbox accounts: Sign in to PayPal as normal, then visit the PayPal developer accounts page. Set up some test accounts to use as dummy customers. These will be used to test your configuration, accept test payments, troubleshoot and view the error messages. When setting these up you will asked to nominate starting balances and other details.

Where do I get my Merchant account Id?

This is found under your profile of your PayPal account. Login to PayPal and then follow this screenshot.