Custom Payments
|
| This document describes how a developer can create a Custom Page for a Payment Gateway not included in the store or personalising an existing one. |
| Here we are going to show how to implement Custom Payment for PalPal and Authorize.net |
| Creating the Project |
| First of all we create a module to upload into DNN, therefore we create a VS.NET project like we would do when creating a DNN custom module: |
-
1) Create a VS.NET project, off dotnetnuke folder, for example: http://localhost/CompanyNameCustomPayments
|
-
2) Set the project in Release Configuration
|
-
3) Set Root namespace blank
|
-
4) Add Reference SysDatanetStore.dll in the project
|
-
5) Set up the web.config file with the same userID and password as the one you had in DotNetNuke project
|
 |
-
6) In the Pages.vb add: Imports SysDataNet.Store
|
| Identifying the Payment Gateway Structure |
| We could have 2 types of payment structure, one is like PayPal, where the Store posts the information to the Payment Gateway's Secure Server which collects the credit card's details, processes the payment and sends a notification to a web page (specified by you). In the other configuration, the Store sends the information and hangs until it receives the reply from the Payment Gateway, in this scenario there is no need to create an IPN page. |
| Also, you need to consider whether the payment supports: AUTH_ONLY or not. In the Store they are called Transaction Type: '1 Step' where customer's credit card is charged immediately after the order is placed; '2 Steps' where customer's credit card is actually charged only after the goods are despached (this happens when clicking on 'Send it Now' in the Orders List Page). |
| Identifying your Module Structure |
| Depending on the Payment Structure and Type of Transaction you are going to use there are some web pages to create. |
| For all payments, you need to create the web page to be called when the store's customer is about to pay. We call this page: Payment Page. |
| If the Payment Gateway sends a notification after the payment is processed you need to create the web page which processes that notification and creates the order. We call this page: Payment Page IPN |
| Finally, if you intend to use the Transaction Type 2 Steps, you also need to create a web page which sends the request to the Payment Gateway to actually charge the credit card previously authorised. We call this page: Sent Order Page |
| The Urls of the Payment Page and Sent Order Page are specified in the Payment Type page, while the url of the Payment Page IPN is specified in the Payment Gateway. |
|
Payment Gateway Structure like Authorize.net |
|
In the following example we have a structure, like Authorize.net (AIM) which supports 2 Steps as Transaction Type. |
 |
| Payment Page |
|
For the code click here (version 1.x)
For the code click here (version 2.x) |
|
Sent Order Page |
|
For the code click here (version 1.x)
For the code click here (version 2.x) |
|
Payment Gateway Structure like PayPal |
|
In the following example we have a structure, like PayPal which supports 1 Step as Transaction Type. |
 |
|
Payment Page |
|
For the code click here (version 1.x)
For the code click here (version 2.x) |
| Payment Page IPN |
|
For the code click here (version 1.x)
For the code click here (version 2.x) |
|
Customer Ref |
|
The existing methods set a value in the CustomerRef field of the Order table and these are: |
-
"PayPal - " & "payer_email"
-
"CC processed in the module"
|