Overview
Our script allows you to have a quick & easy payment terminal for your clients to pay with major credit cards (Visa, Master Card, American Express) on your website (without leaving it), as well as paypal payments through paypal gateway. Installation and configuration of the script takes less than 5 minutes (however you do need to have SSL and PSIGate merchant account, and optional paypal account). There are 3 options to pay: 1) customers can *input price themselves* and type description, 2) you can turn on *pre-defined services* and customers will select service from dropdown and 3) customers can select *recurring services from dropdown*
We used PayPal Website Payments Standard functionality for both onetime PayPal payments and recurring PayPal payments.
Server Requirements
1) PHP 5.0+
2) cURL must be enabled to accept payments (contact your hosting provider if unsure).
3) VERY IMPORTANT! You must open following ports on your server (you will have to contact your hosting provider for this, and please note that not every hosting provider will gladly open ports for you, however this is requirement by PSIgate.):
– for running this script in DEVELOPMENT environment: 8645 and 7989
– for running this script in LIVE environment: 7934 and 10921
Otherwise you will get timeout errors and cards will not be charged.
Installation
Fresh installation is pretty simple.
1) Unzip the contents of the file which you downloaded from codecanyon.net.
You will find 2 folders: “psigate-payment-terminal” and “documentation”
2) open psigate-payment-terminal/includes/config.php and edit all needed variables (see explanation below)
3) Upload “psigate-payment-terminal” folder to your FTP server.
4) You can now access payment terminal at yourdomain.com/psigate-payment-terminal
Configuration
below you will find all editable variables from includes/config.php and their meaning.
Line 20 – global page meta title
Line 22 – notification email address where you want to receive “new payment received” emails. (can be multiple emails, comma separated)
Line 24 through 29 – non-recurring services array. You can add more by copy/pasting line 28 below it.
Line 32 – if set to true services dropdown will be available on payment page for selection, if false – fillable amount box will appear
Line 34 – Payment type switch, can be ONETIME or RECUR. If set to ONETIME – payment terminal will charge customers single transaction. If set to RECUR – recurring services dropdown will appear instead of amount input box/services dropdown.
Line 36 through 41– Recurring services array. If you need more than 4 recurring options – copy line 40 below it. Array consists of 6 elements:
1 – service name;
2 – service price;
3 – billing period (“Day”, “Week”, “Month”, “Year”);
4 – number of instalments of the recurring payment (for example, 18 here and MONHT in element 3 – will charge customer once a month, every 18th of the month. You can also change this to date(“d”) if you want to set it to todays date);
5 – Trial period in days (set to 0 if not needed);
6 – Trial price (set to 0 if not needed);
Line 45 – Automatic non-https redirection to https environment. This MUST BE set to true, if you’re switching live.
Line 47 – Live/Test indicator. If set to false – you will be using TEST environment, setting this to true will enable LIVE mode.
Line 51 – PSIGate TEST MERCHANT_CID
Line 52 – PSIGate TEST MERCHANT_STORE_ID
Line 53 – PSIGate TEST MERCHANT_LOGIN
Line 54 – PSIGate TEST MERCHANT_PASSWORD
Line 59 – PSIGate LIVE MERCHANT_CID
Line 60 – PSIGate LIVE MERCHANT_STORE_ID
Line 61 – PSIGate LIVE MERCHANT_LOGIN
Line 62 – PSIGate LIVE MERCHANT_PASSWORD
Continue below for paypal settings.
Settings
In order to enable paypal payments (website payments standard) you need to change Line 75 in config.php to TRUE. Other paypal settings below:
Line 75 – PayPal payment method on/off switch.
Line 76 – PayPal merchant email.
Line 77 – PayPal success url – your customers will be taken to this page after successful paypal payment.
Line 78 – PayPal cancel url – your customers will be taken to this page if they decide not to pay through paypal.
Line 79 – PayPal ipn url – this is IPN listener file which will accept paypal responses about the payments and will notify you about new payments (if you want to update your db somehow – this is the file for paypal).
Line 80 – PayPal custom variable – you can pass any customer related variable here, serves for the purpose of updating database later in ipn listener file (optional).
Line 81 – PayPal currency.
Line 82 – PayPal Live/Sandbox mode switch. If set to true – paypal will run in TEST mode(you have to have paypal developers account and you must be logged in to developer.paypal.com)
Other than the above – you don’t need to edit any variables for PayPal.
PayPal Recurring Parameters (taken from paypal.com)
Name | Required or Optional | Description | Character Length |
---|---|---|---|
business | Required | Your PayPal ID or an email address associated with your PayPal account. Email addresses must be confirmed. | |
item_name | Optional | Description of item being sold. If you are collecting aggregate payments, the value can be a summary of all items purchased, a tracking number, or a generic term such as “subscription.” If this variable is omitted, buyers see a field in which they can enter the item name. | 127 |
currency_code | Optional | The currency of prices for trial periods and the subscription. The default is USD. For allowable values, see Currencies Supported by PayPal. | 3 |
a1 | Optional | Trial period 1 price. For a free trial period, specify 0. | |
p1 | See description. | Trial period 1 duration. Required if you specify a1. Specify an integer value in the allowable range for the units of duration that you specify with t1. | 2 |
t1 | See description. | Trial period 1 units of duration. Required if you specify a1. Allowable values are:
| 1 |
a2 | Optional | Trial period 2 price. Can be specified only if you also specify a1. | |
p2 | See description. | Trial period 2 duration. Required if you specify a2. Specify an integer value in the allowable range for the units of duration that you specify with t2. | 2 |
t2 | See description. | Trial period 2 units of duration. Allowable values are:
| 1 |
a3 | Required | Regular subscription price. | |
p3 | Required | Subscription duration. Specify an integer value in the allowable range for the units of duration that you specify with t3. | 2 |
t3 | Required | Regular subscription units of duration. Allowable values are:
| 1 |
src | Optional | Recurring payments. Subscription payments recur unless subscribers cancel their subscriptions before the end of the current billing cycle or you limit the number of times that payments recur with the value that you specify for srt. Allowable values are:
The default is 0. | 1 |
srt | Optional | Recurring times. Number of times that subscription payments recur. Specify an integer with a minimum value of 1 and a maximum value of 52. Valid only if you specify src=”1″. | 1 |
sra | Optional | Reattempt on failure. If a recurring payment fails, PayPal attempts to collect the payment two more times before canceling the subscription. Allowable values are:
The default is 1. For more information, see Reattempting Failed Recurring Payments with Subscribe Buttons. | 1 |
no_note | Required | Do not prompt buyers to include a note with their payments. Allowable values for Subscribe buttons:
For Subscribe buttons, always include no_note set to 1. ) | 1 |
custom | Optional | User-defined field which PayPal passes through the system and returns to you in your merchant payment notification email. Subscribers do not see this field. | 255 |
invoice | Optional | User-defined field which must be unique with each subscription. The invoice number is shown to subscribers with the other details of their payments | 127 |
modify | Optional | Modification behavior. Allowable values are:
The default value is 0. For more information, see Working with Modify Subscription Buttons. | 1 |
usr_manage | Optional | Set to 1 to have PayPal generate usernames and initial passwords for subscribers. For more information, see Generating Usernames and Passwords with Subscribe Buttons. | 1 |
Connect Database
In order to connect PSIGate payment terminal with your existing website database, to insert new orders or update existing upon successful payment you need to place your “update order” or “insert new order” code into following places:
For regular payments (and non-recuring payments): includes/form.processing.php – between line 177 and line 179
For recurring payments: includes/form.processing.php – between line 409 and 411
For paypal payments : paypal_listener.php – between line 61 and 63
Live / Test Modes
You need to set variable on line 45 and 47 in includes/config.php to TRUE to use LIVE MDOE and switch to FALSE to use TEST MODE
Also don’t forget to set sandbox mode to false for paypal on line 82 in same file (if paypal payments are enabled on line 75).
For test purposes you can use 4111111111111111 VISA credit card with any cvv (3 numbers) and any future expiry date.
For list of PSI gate response codes please go to http://www.psigate.com/pages/techsupport.asp and click on RESPONSE CODES
Technical Support
We provide courtesy support for all our products to our valued customers within 48-72 hours after receiving the request through our support ticketing system. Each purchase comes with 6 months support time. After that – you may either purchase extended support through the marketplace or purchase premium support with us.
If you need any help regarding the installation of the script or any other question please read through respective product documentation first and if solution is not found – open support ticket (please note, you will need to register account and you will be required to provide your license key (item purchase code) during the registration process, which will then be validated through CodeCanyon API. If your support period has expired you may either extend it with Envato or purchasepremium support from us).
Please note that we do not provide support by email. Any email related to support and not to pre-sales questions will be replied to after any other support tickets are resolved and in general will be directed to open a ticket, since we need to validate your purchase/support period validity.
For more details about our support policy and terms of service (including what is and is not included in Basic Support) click here.
Our business hours are Monday – Friday: 9:00am – 6:00pm (EST), and support is provided only at that time. Upon opening a ticket, we make it our goal to respond within 48-72 hours, however depending on the issue you’re having it may take a bit longer, but in any case we will address the issue within specified period of time with at least “resolution time” in reply.
Changelog
v1.0 – 23 February 2012
initial release
Sources, Credits, Appreciation
We’ve used the following images, icons or other files as listed.
- jQuery UI Library – http://www.jqueryui.com
- jQuery Library – http://www.jquery.com
- jQuery Colorbox – http://www.jacklmoore.com/colorbox
- jQuery Tools – http://jquerytools.org/
Once again, thank you so much for purchasing our product.