Preface: I am not an employee of the Payonline payment system (our customers have chosen this payment system), so I don’t place this post in the “I am promoting” hub. The goal of this post is to promote Drupal. If at least one person uses this module, I will consider my mission accomplished.Module features are very prosaic:
1. Page and block with a form for user input:
- account number;
- apartment number (optional, to verify the correctness of entering the personal account number);
- amount of payment;
- the amount and type of insurance, the amount of interest;

')
2. Administration of the module
2.1 View payments

2.2 View / add / export packs of payment

2.3 Export payments for the period

2.3 Module configuration

A little bit about how the module works.
- If the resident has correctly indicated the account number, an order number is generated (OrderID) and he goes to the payment page on the payment system website;
- If the payment was successful, the payment system to callbackUrl (http: // your website's address / payonline-hcs / confirm) sends a request for confirmation of payment on your website.
After confirming the payment, the administrator can form batches of accepted payments. Only payments that have not previously been included in other bundles fall into the new payment package. This feature is implemented for the convenience of exporting payments to the management company software.
The export of payments from a pack and for a certain period (without reference to a certain pack) is possible, so far, only in CSV format.
Paged file format (columns):
- id;
- number hp;
- Account number;
- amount of payment;
- date and time of making the payment on the site;
- date and time of payment acceptance in the payment system;
- home insurance amount;
- liability insurance;
- amount of full insurance;
- amount of interest;
- commission charged for payment
Verification of the correctness of entering the personal account number by apartment number
By default, this feature is disabled in the settings.
Before you enable this feature, you must fill out the directory — matching personal account numbers with apartment numbers. Otherwise, if the check function is enabled and the directory will be empty or there will be an incomplete base for all personal accounts, then the user will receive an error that the personal account number is specified incorrectly.
The reference book is filled in using the special form located in the section “Payonline Configuration” -> “Reference Book with Apartment Numbers”.
To "enter" to fill the directory need a text file with delimiters. Required file structure:
"0505252";"1"
where the first field is the number of the personal account, the second field is the apartment number.
Do not forget to set permissions for the module. Here is a sample of the correct setting of access rights to the module:

The module is under BSD licenses. Source code on
Github .
Perhaps all. There will be questions, ask in the comments.
PS
For the development of this module for our customer, I took 0 rubles, with an eye to sharing it with the community. I consider it a good practice to share the “groundwork” if the customer got them for free. If the n-th sum is charged for the development, my hand does not rise to spread it in open access. And I think that customers will not like this approach either.
UPD from 01/27/2014Updated the module to version 1.0.1. List of changes:
- added a page with statistics in the administrative part;
- Added page and block with the ability to check the status of payment;
- small changes in the structure of tables, all lines are translated;
- In the list of payments for the admin, the number of the payment bundle is now indicated, if there is one.
UPD from 01/29/2014Updated the module to version 1.0.2.
UPD 03/03/2014Updated the module to version 1.0.3. See change_log.txt for details.
UPD from 09/02/2014Made code refactoring, removed global variables.
UPD from 10/26/2014Updated the module to version 1.0.7.
Now the amount of commission can not be included in the total amount of payment.
Added the ability to manually select payments for export or add to a pack of payment.
Removed some errors, made code refactoring.
UPD on 03/20/2015Updated to version 1.0.7.1