Hello,
I need support in developing an amember payment plugin for the German direct debit (“Lastschrift”). Ideally, you have strong expertise in PHP and MySQL. You should also have experience in APIs and web payment development (e.g. Authorize.net). If you did some development in Amember, this would be the perfect.
Here is some background information on the project:
The payment provider I would like to use is Micropayment. More information about this provider can be found here:
http://www.micropayment.de
(There is an English flag on the bottom of the page, so you can see the site in English.)
Micropayment also has a very flexible and well-developed API that gives a lot of functions to be used, so I believe it would be easy to integrate to amember. There is an exhaustive documentation available on the API (unfortunately it is in German, but I will be there to translate everything necessary into English and I will also communicate to Micropayment for any questions!):
http://techdoc.micropayment.de/
There is also many payment plugins already built-in into amember, so you could have a look at similar payment plugins like Authorize.net to get some ideas on the code that has already been developed.
The problem is that Micropayment does not offer any recurring billing. So there has to be some sort of php/cron/mysql combination from amember that reads the database and then calls the API.
For my first membership site, I would like to start a membership that has the first month free but then 37 Euro thereafter. The process (simplified) will be as follows:
A new client comes to my site and decides to signup. So he clicks on the “Lastschrift” button on the signup page. He then gets redirected to a form that asks for the following information:
- First Name
- Last Name
- Street
- Zip Code
- City
- Country (will be only Germany)
- Routing number (Bankleitzahl)
- Kontonummer (Account number)
- Kontoinhaber (Owner of Account)
For a demo form, please visit:
http://techdoc.micropayment.de/payment/demos/debit-light_1.0/
You can find the complete php code of this demo here:
http://techdoc.micropayment.de/payment/demos/debit-light_1.0.zip
More examples can be found here:
http://techdoc.micropayment.de
(Please refer to the “Debit API” section, subsections “Referenz-Demo (Shop) [PHP]” and “Demoanwendung in PHP”.)
After the form gets submitted, the form info will be submitted to Micropayment. There are complete ready made functions in the API: customerCreate(), addressSet() und bankaccountSet() that store the necessary information on the Micropayment side like
- firstName
- surName
- street
- zip
- city
- accountHolder
- accountNumber
- bankCode
Let me point out one more time that the API from Micropayment is really well developed. If you would like to have a look at the documentation, please refer to
http://techdoc.micropayment.de/payment/debit_api/debit_api_1.3.pdf
Even though it is written in German, the function names speak for themselves. Anyway, I will also be there to help out with translation/explanation as well as functional / process questions.
Micropayment then verifies whether the submitted bank account information is valid. The results of this validation have to be sent back to amember. If the bank account is valid, the user should be signed up in amember and the signup information should be emailed to him. If the bank account is not valid, the form gets displayed again, with an error message. In this case the user information should also be available in amember, but the user status is not yet active.
Then there should be some cron running that calls the plugin once per day. The plugin reads the information that is entered into the amember Setup/Configuration page like
- length of trial period
- price for trial period
- membership period (days, weeks, months, years)
- price for membership thereafter
… and compares this information against the signup date from each user.
Amember then calls the Micropayment API exactly like it is configured in the plugin:
- if price for trial period = 0 then no API call in the trial period, recurring billing at the beginning of each membership period with the price for membership for the period
- if price for trial period > 0 then first time right after signing up with the price for the trial period, recurring billing at the beginning of each membership period with the price for membership for the period
So in my example: user signs up on 21 May 2009, Micropayment verifies account information. If information correct, plugin reads config info. Config info says free for one month, 37 Euro thereafter. Cron runs API every day. On the 20 June amember finds out that trial period is over. Amember calls Micropayment API and user is billed with 37 Euro. On the 20 July, 20 August, 20 Sept etc the user is billed.
Anytime the user is billed, Micropayment verifies whether the payment has been received correctly. If yes, amember stores this information and also assigns the affiliate commission. If not, the user is blocked. There is complete ready-made functions in the API that do exactly that.
If the user stops his membership in Amember, amember should delete the user in Micropayment and not bill the user again.
The plugin should also send a daily E-Mail to my E-Mail address telling me what users have been billed so I can control it later on.
I hope you find my description helpful.
Could you please let me know whether you would be interested in such a project as well as your estimation on the price and the costs.
I appreciate your quick response.
Kind regards
Mario