set_gateway - register your payments gateway in the list
If you want to add your payment gateway in Midrub, you need to know about the method set_gateway.
The method set_gateway has an essential role in Midrub Payments and it registers a gateway in the payments gateways list. Once called the method set_gateway from your gateway, it will be available in Midrub -> Administrator -> Settings -> Gateways and wherever where is requested.
How should be used the method set_gateway?
- In the Payments Gateway class you have the method load_hooks (see here https://www.midrub.com/articles/midrub-payments-structure)
- The method load_hooks works in same way like work in the Midrub Apps or Components but it is called only when we need it because a Payments Gateway shouldn't add features in Components or Apps. And to the save resources it isn't called when we don't need it.
- Inside the method load_hooks you have to call the set_gateway function. You can use even the parameter $categories to call the set_gateway function only when you need.
This are the parameters of the set_gateway function:
set_gateway( 'baintree', array( 'gateway_name' => $CI->lang->line('baintree'), 'gateway_icon' => '', 'gateway_color' => '#202020', 'fields' => array ( array ( 'type' => 'checkbox_input', 'slug' => 'baintree', 'label' => $CI->lang->line('baintree_enable'), 'label_description' => $CI->lang->line('baintree_enable_description') ), array ( 'type' => 'text_input', 'slug' => 'baintree_merchant_id', 'label' => $CI->lang->line('baintree_merchant_id'), 'label_description' => $CI->lang->line('baintree_merchant_id_description') ), array ( 'type' => 'text_input', 'slug' => 'baintree_public_key', 'label' => $CI->lang->line('baintree_public_key'), 'label_description' => $CI->lang->line('baintree_public_key_description') ), array ( 'type' => 'text_input', 'slug' => 'baintree_private_key', 'label' => $CI->lang->line('baintree_private_key'), 'label_description' => $CI->lang->line('baintree_private_key_description') ) ) ) );
Let's see for what is used each parameter:
- baintree - gateway slug, should be the gateway directory's name to avoid confusion.
- gateway_name - you can add your name and even translate it. It will be displayed to admin and user.
- gateway_icon - optional but could be requested in a user's app.
- gateway_color - used to make different the gateway in the list.
- fields - contains all fields in the admin's panel and in the example below you can see a real example of it's use(slug is the most important and it is saved in the table options).
The fields at this moment supports only two types: text_input and check_box input.
You can see how this works in the video below:
Please remember, all options like recurring, remember and any other won't be added here. In other articles i will provide details about where to use the options and how.
- How to create new placeholders for an invoice's template
- Please don't ask me to add new payments gateways
- delete_subscription - delete payments subscriptions
- Cron Job for Payments
- How works the fields and options in the Midrub Payments system
- the_complete_transaction - provides a completed transaction
- save_complete_transaction - saves the complete transaction
- the_incomplete_transaction - get the transaction's information
- How to custom or change the payments gateway's icon
- set_gateway - register your payments gateway in the list