Add order/product additional fields
Overview
Use the addAdditionalField method to create new additional fields for your account.
Parameters
Parameters | Type/Description |
---|---|
sessionID |
Required (string) |
|
Session identifier, the output of the Login method. Include sessionID into all your requests. Avangate throws an exception if the values are incorrect. The sessionID expires in 10 minutes. |
Object |
|
|
Additional field object. |
Response
bool(true)
Request
<?php function callRPC($Request, $hostUrl, $Debug = true) { $curl = curl_init($hostUrl); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSLVERSION, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Accept: application/json' )); $RequestString = json_encode($Request); curl_setopt($curl, CURLOPT_POSTFIELDS, $RequestString); if ($Debug) { $RequestString; } $ResponseString = curl_exec($curl); if ($Debug) { $ResponseString; } if (!empty($ResponseString)) { // var_dump($ResponseString); $Response = json_decode($ResponseString); if (isset($Response->result)) { return $Response->result; } if (!is_null($Response->error)) { var_dump($Request->method, $Response->error); } } else { return null; } } $host = 'https://api.avangate.com/rpc/3.0/'; $merchantCode = "YOURCODE12345"; //your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php $key = "SECRET_KEY"; //your account's secret key available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php $string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s'); $hash = hash_hmac('md5', $string, $key); $i = 1; // counter for api calls // Call the login method for authentication $jsonRpcRequest = new stdClass(); $jsonRpcRequest->jsonrpc = '2.0'; $jsonRpcRequest->method = 'login'; $jsonRpcRequest->params = array( $merchantCode, gmdate('Y-m-d H:i:s'), $hash ); $jsonRpcRequest->id = $i++; var_dump($sessionID = callRPC($jsonRpcRequest, $host)); $AdditionalField = new stdClass(); $AdditionalField->Label = 'Do you agree with the new newsletter policy 2015?'; $AdditionalField->Type = 'LISTBOX'; $AdditionalField->Code = 'NewsletterPolicy1234576'; $AdditionalField->ApplyTo = 'ORDER'; $AdditionalField->Values = array(); $AdditionalField->Values[0] = 'YES'; $AdditionalField->Values[1] = 'NO'; $AdditionalField->ValidationRule = null; $AdditionalField->Translations = array(); $AdditionalField->Translations[0] = new stdClass(); $AdditionalField->Translations[0]->Label = "Êtes-vous d'accord avec la politique de la newsletter?"; $AdditionalField->Translations[0]->Values = array(); $AdditionalField->Translations[0]->Values[0] = 'Oui'; $AdditionalField->Translations[0]->Values[1] = 'Non'; $AdditionalField->Translations[0]->Language = 'fr'; $AdditionalField->Translations[1] = new stdClass(); $AdditionalField->Translations[1]->Label = 'Haben Sie mit dem Newsletter Politik zu?'; $AdditionalField->Translations[1]->Values = array(); $AdditionalField->Translations[1]->Values[0] = 'Ja'; $AdditionalField->Translations[1]->Values[1] = 'Nein'; $AdditionalField->Translations[1]->Language = 'de'; $jsonRpcRequest = array( 'jsonrpc' => '2.0', 'id' => $i++, 'method' => 'addAdditionalField', 'params' => array( $sessionID, $AdditionalField ) ); var_dump(callRPC((Object) $jsonRpcRequest, $host)); ?>