Example #1
0
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;
}