Best way to write module for 'unusual' payment gateway
What you are describing is not unusual and is within the range of processes that CiviCRM can handle. See here for some details:
https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=184188933

Two key things you want to do for your specific payment processor code are:
1. Set the 'payment type' to '2' - this sets some default assumptions for debit cards as opposed to credit card (e.g. fields).
2. Create an automated job to pull in the completed contributions.

There are some complex things you may want to implement later, like being able to manage the recurring schedule from CiviCRM, but for now you can probably get the basics working without too much suffering.

You'll want to look at a few examples and also the core payment object that you'll be subclassing:
https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Payment.php