function globalsignvouchers_CreateAccount($params) { if (!mysql_num_rows(full_query("SHOW TABLES LIKE 'mod_gsvouchers'"))) { full_query("CREATE TABLE `mod_gsvouchers` ( `serviceid` INT(10) NOT NULL , `voucher` TEXT NOT NULL )"); } $result = select_query("mod_gsvouchers", "voucher", array("serviceid" => $params['serviceid'])); $data = mysql_fetch_array($result); $voucher = $data[0]; if ($voucher) { return "OneClickSSL Voucher Code Already Provisioned"; } $user = $params['configoption1']; $pass = $params['configoption3']; $ssltype = $params['configoption2']; $validityperiod = $params['configoption4']; $coupon = $params['configoption5']; $orderkind = $params['configoption6']; $campaign = $params['configoption7']; $testmode = $params['configoption8']; $transfer = $params['configoptions']['Transfer']; $domain = $params['domain']; if (!$domain) { $domain = $params['customfields']['Domain']; } updateService(array("domain" => $domain, "username" => "", "password" => "")); $result = select_query("tblhosting", "billingcycle", array("id" => $params['serviceid'])); $data = mysql_fetch_array($result); $billingcycle = $data[0]; if ($billingcycle == "Biennially") { $validityperiod = "2"; } if ($billingcycle == "Triennially") { $validityperiod = "3"; } if ($params['configoptions']['NumYears']) { $validityperiod = $params['configoptions']['NumYears']; } $wsdlorderurl = $testmode ? "https://testsystem.globalsign.com/vc/ws/VoucherOrder?wsdl" : "https://system.globalsign.com/vc/ws/VoucherOrder?wsdl"; if ($ssltype == "DomainSSL") { $ssltype = "VoucherDV"; } else { if ($ssltype == "AlphaSSL") { $ssltype = "VoucherAlpha"; } } $orderkind = "new"; if ($transfer) { $orderkind = "transfer"; } if ($validityperiod < 10) { $validityperiod *= 17; } require ROOTDIR . "/includes/countriescallingcodes.php"; $countrycode = $params['clientsdetails']['country']; $phonenumber = $params['clientsdetails']['phonenumber']; $phonenumber = preg_replace("/[^0-9]/", "", $phonenumber); $countrycode = $countrycallingcodes[$countrycode]; $phonenumber = $countrycode . substr($phonenumber, 0, 3) . "-" . substr($phonenumber, 3); $request = array(); $request['Request']['OrderRequestHeader']['AuthToken']['UserName'] = $user; $request['Request']['OrderRequestHeader']['AuthToken']['Password'] = $pass; $request['Request']['OrderRequestParameter']['ProductCode'] = $ssltype; $request['Request']['OrderRequestParameter']['OrderKind'] = $orderkind; $request['Request']['OrderRequestParameter']['ValidityPeriod']['Months'] = $validityperiod; $request['Request']['FQDN'] = $domain; $request['Request']['ContactInfo']['FirstName'] = $params['clientsdetails']['firstname']; $request['Request']['ContactInfo']['LastName'] = $params['clientsdetails']['lastname']; $request['Request']['ContactInfo']['Phone'] = $phonenumber; $request['Request']['ContactInfo']['Email'] = $params['clientsdetails']['email']; $client = new SoapClient($wsdlorderurl); $result = $client->VoucherOrder($request); logModuleCall("globalsignvouchers", "order", $request, (array) $result, "", array($user, $pass)); $errorcode = $result->Response->OrderResponseHeader->SuccessCode; if (0 <= $errorcode) { $voucher = $result->Response->Voucher; insert_query("mod_gsvouchers", array("serviceid" => $params['serviceid'], "voucher" => $voucher)); sendMessage("GlobalSign OneClickSSL Welcome Email", $params['serviceid'], array("voucher" => $voucher)); return "success"; } $errormsg = ""; if (is_array($result->Response->OrderResponseHeader->Errors->Error)) { foreach ($result->Response->OrderResponseHeader->Errors->Error as $err) { $errormsg .= "Error Code: " . $err->ErrorCode . " - " . $err->ErrorField . " - " . $err->ErrorMessage . " || "; } $errormsg = substr($errormsg, 0, 0 - 4); } else { $errormsg = "Error Code: " . $result->Response->OrderResponseHeader->Errors->Error->ErrorCode . " - " . $result->Response->OrderResponseHeader->Errors->Error->ErrorField . " - " . $result->Response->OrderResponseHeader->Errors->Error->ErrorMessage; } if (!$errormsg) { $errormsg = "An Unknown Error Occurred. Please contact support."; } return $errormsg; }