Gateways in version 3.1+ support the use of a config.json file, that defines basic configuration settings for the gateway.
Due to backwards compatibility with version 3.0, config.json files are not required but are strongly recommended as they may be required in future versions.
Configuration Format
Example
/components/gateways/merchant/my_gateway/config.json
{ "version": "1.0.0", "name": "My Gateway", "description": "A gateway like no other!", "authors": [ { "name": "Phillips Data, Inc.", "url": "http://www.blesta.com" } ], "currencies": ["EUR", "GBP", "USD"], "signup_url": "http://www.url-to-mygateway.com" }
Definition
Option | Description | ||||||
---|---|---|---|---|---|---|---|
version | The version of the gateway. This should be a semantic version number. | ||||||
name | The name of the gateway. This may also be a language definition. | ||||||
description | A brief description of the gateway. This may also be a language definition in Blesta v4.9.0+. | ||||||
authors | An array of author objects.
| ||||||
logo | The path within the gateway to the logo file. If not set, defaults to views/default/images/logo.png. | ||||||
currencies | An array of ISO 4217 currency codes supported by the gateway. | ||||||
signup_url | The URL to display for users that wish to open an account with the gateway (i.e. a referral URL). |
Using the Configuration
To use the configuration file you must include it within the constructor of your gateway using the loadConfig() method.
/components/gateways/merchant/my_gateway/my_gateway.php
<?php class MyGateway extends MerchantGateway implements MerchantCc { public function __construct() { $this->loadConfig(dirname(__FILE__) . DS . "config.json"); } ... } ?>
If your configuration uses any language definitions, be sure to include those before loading the config.
/components/gateways/merchant/my_gateway/my_gateway.php
<?php class MyGateway extends MerchantGateway implements MerchantCc { public function __construct() { Language::loadLang("my_gateway", null, dirname(__FILE__) . DS . "language" . DS); $this->loadConfig(dirname(__FILE__) . DS . "config.json"); } ... } ?>