Redirect
Purpose
Implements a redirection to the payment gateway page.
Mandatory
Yes, if a redirection to the gateway page is required.
Input Parameters
An associative array that contains the following values:
Param name | Description | Type |
---|---|---|
config
|
The plug-in configuration values saved in the Billing database. | array |
environment
|
The Billing environment information. | Environment |
account_info
|
The account's details. | AccountDetails |
vendor_info
|
the vendor's details. | AccountDetails |
document_info
|
The payment document description. | DocumentInfo |
|
The transaction category for merchant-initiated payments (relevant and available only for
|
string |
|
The parameter that defines whether it is the MOTO transaction. Possible values are:
|
boolean |
|
The transaction initiator. Possible values are:
|
string |
ref_no
|
The Billing transaction identifier. | integer |
transaction_amount
|
The transaction amount. | double |
currency_iso
|
The currency of the transaction amount in the ISO format (for example, USD or EUR). | string |
|
The current language. | string |
client_ip
|
The IP from the client computer. | string |
The example of input parameters is shown below as a JSON object:
{
"config": {
"auth_code": "421",
"format": "json",
"gateway_url": "https://plugin-gateway-url.com",
"test_mode": "1" },
"environment": {
"lang": "en",
"notify_url": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/9/notify",
"return_url": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/9/callback",
"return_url_3dsecure": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/9/3dsecure",
"return_url_failed": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/9/fail/callback",
"return_url_ok": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/9/ok/callback",
"system_host": "bss.int.zone" },
"vendor_info": {
"id": 1,
"type": 0,
"vendor_id": null,
"is_corporate": true,
"name": "ServicePro",
"lang": "en",
"admin_fname": "Charlie",
"admin_mname": null,
"admin_lname": "Root",
"admin_email": "root@test.oss",
"admin_phone": {
"country_code": "1",
"area_code": "408",
"number": "4567890",
"extention": null
},
"admin_fax": {
"country_code": null,
"area_code": null,
"number": null,
"extention": null
},
"billing_fname": "Charlie",
"billing_mname": null,
"billing_lname": "Root",
"billing_email": "root@test.oss",
"billing_phone": {
"country_code": "1",
"area_code": "408",
"number": "4567890",
"extention": null
},
"billing_fax": {
"country_code": null,
"area_code": null,
"number": null,
"extention": null
},
"technical_fname": "Charlie",
"technical_mname": null,
"technical_lname": "Root",
"technical_email": "root@test.oss",
"technical_phone": {
"country_code": "1",
"area_code": "408",
"number": "4567890",
"extention": null
},
"technical_fax": {
"country_code": null,
"area_code": null,
"number": null,
"extention": null
},
"tax_ex_number": null,
"address_address1": "500 SW 39th Street, Suite 200",
"address_address2": null,
"address_city": "Renton",
"address_state": "WA",
"address_zip": "98057",
"address_country": "us" },
"account_info": {
"id": 1000001,
"type": 3,
"vendor_id": 1,
"is_corporate": true,
"name": "Hayes, Lindgr",
"lang": "en",
"admin_fname": "Derick",
"admin_mname": null,
"admin_lname": "Reilly",
"admin_email": "sheldon.bosco5663@ingrammicro.tld",
"admin_phone": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"admin_fax": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"billing_fname": "Derick",
"billing_mname": null,
"billing_lname": "Reilly",
"billing_email": "sheldon.bosco5663@ingrammicro.tld",
"billing_phone": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"billing_fax": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"technical_fname": "Derick",
"technical_mname": null,
"technical_lname": "Reilly",
"technical_email": "sheldon.bosco5663@ingrammicro.tld",
"technical_phone": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"technical_fax": {
"country_code": "1",
"area_code": "907",
"number": "3935919",
"extention": null
},
"tax_ex_number": null,
"address_address1": "132 Blackwell Street",
"address_address2": null,
"address_city": "Shemya",
"address_state": "AK",
"address_zip": "99501",
"address_country": "us" },
"document_info": {
"id": 10,
"total": "1.00",
"currency": "USD",
"description": "Pre-authorization Charge" },
"transaction_category": "C",
"transaction_moto": true,
"transaction_initiator": "MIT",
"plugin": "Demo",
"action": "Redirect",
"ref_no": 9,
"transaction_amount": "1.00",
"currency_iso": "USD",
"current_lang": "en",
"client_ip": "10.194.250.159"}
Response
An associative array that contains the following keys:
Param name | Description | Type |
---|---|---|
STATUS
|
(Mandatory) The method execution status. Valid values for the Redirect method are:
|
string |
TEXT
|
(Optional) The array that contains the following parameters:
|
array |
REDIRECT_HASH
|
(Mandatory) Provides information for the redirect. The parameters are:
|
array |
TRANSACTION_DETAIL
|
(Optional) The array that will be associated with the current transaction and will be represented back in an unchanged form as the value of the Note: Billing looks up the |
array |
The example of a response is shown below as a JSON object:
{
"STATUS": "REDIRECT",
"REDIRECT_HASH": {
"url": "https://demo-payment-gateway.com",
"method": "POST",
"attrs": {
"ref_no": 10,
"amount": "1.00",
"currency": "USD",
"accept_url": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/10/ok/callback",
"decline_url": "https://example.sandboxes.int.zone/aps/2/resources/82699957-0fa8-44c4-a514-428434a7d3de/bss/redirect/10/fail/callback",
"enable_tokens": "1" }
}
}
Example
The built-in Demo
plugin supports Redirect. The example below shows how this plugin implements the Redirect
method:
function Demo_Redirect( $params ) {
$config = $params['config'];
$doc_info = $params['document_info'];
$ref_no = $params['ref_no'];
$env = $params['environment'];
$accept_url = $env['return_url_ok'];
$decline_url = $env['return_url_failed'];
$redirect_hash = array(
'url' => 'https://demo-payment-gateway.com',
'method' => 'POST',
'attrs' => array(
'ref_no' => $ref_no,
'amount' => $params['transaction_amount'],
'currency' => $params['currency_iso'],
'accept_url' => $accept_url,
'decline_url' => $decline_url,
'enable_tokens' => isset($config['enable_tokens']) ? $config['enable_tokens'] : false
)
);
return array(
STATUS => STATUS_REDIRECT,
REDIRECT_HASH => $redirect_hash
);
}