WgsSwitchEppGetModuleParams();
}
public function WgsSwitchEppGetModuleParams() {
$getRegModuleDetail = Capsule::table('tblregistrars')->where('registrar', 'switchepp')->orderBy('id', 'asc')->get();
foreach ($getRegModuleDetail as $detail) {
$detail = (array) $detail;
if ($detail['setting'] == 'eppurl')
$this->apiUrl = decrypt($detail['value']);
if ($detail['setting'] == 'eppport')
$this->port = decrypt($detail['value']);
if ($detail['setting'] == 'registrar_id')
$this->regId = decrypt($detail['value']);
if ($detail['setting'] == 'registrar_password')
$this->regPw = decrypt($detail['value']);
if ($detail['setting'] == 'passphrase')
$this->passPhrase = decrypt($detail['value']);
if ($detail['setting'] == 'dnssec')
$this->dnsSec = decrypt($detail['value']);
}
}
public function WgsSwitchEppGetWHMCS_Admin() {
$admin = Capsule::table('tbladmins')->limit(1)->get();
return $admin[0]->id;
}
public function WgsSwitchEppGetPoll() {
$client = $this->WgsSwitchEppConnect();
if (is_array($client)) {
$error = $client['msg'];
return ['status' => 'error', 'msg' => $error];
}
$login = $this->WgsSwitchEppLoggedIn($client);
if ($login['status'] == 'error')
return $login;
$loginXmlArr = simplexml_load_string($login['resp']);
$loginCode = $loginXmlArr->response->result->attributes()->code[0];
if ($loginCode == 1000) {
$poll = $this->WgsSwitchEppPoll($client);
$pollXmlArr = simplexml_load_string($poll['resp']);
$pollCode = $pollXmlArr->response->result->attributes()->code[0];
$msgid = $pollXmlArr->response->msgQ->attributes()->id[0];
if ($pollCode == 1300 || $pollCode == 1301) {
return ['status' => 'success', 'msg' => $pollXmlArr->response->result->msg, 'resp' => $poll['resp'], 'msgid' => $msgid];
} else {
return ['status' => 'error', 'msg' => $pollXmlArr->response->result->msg];
}
} else {
foreach ($loginXmlArr->response->result as $resp) {
$error = $resp->msg;
}
return ['status' => 'error', 'msg' => $error];
}
$logout = $this->WgsSwitchEppLogout($client);
}
public function WgsSwitchEppPoll($client) {
$request = '
POLL-' . rand(10000, 99999) . '
';
$response = $client->request($request);
logModuleCall('SWITCH EPP Addon Module', 'Get Poll', $request, $response);
return ['status' => 'success', 'req' => $request, 'resp' => $response];
}
public function WgsSwitchEppAckConfirm($msgId) {
$client = $this->WgsSwitchEppConnect();
if (is_array($client)) {
$error = $client['msg'];
return ['status' => 'error', 'msg' => $error];
}
$login = $this->WgsSwitchEppLoggedIn($client);
if ($login['status'] == 'error')
return $login;
$loginXmlArr = simplexml_load_string($login['resp']);
$loginCode = $loginXmlArr->response->result->attributes()->code[0];
if ($loginCode == 1000) {
$pollCnfrm = $this->WgsSwitchEppAckConfirmCommand($client, $msgId);
$pollCnfrmXmlArr = simplexml_load_string($pollCnfrm['resp']);
$pollCnfrmCode = $pollCnfrmXmlArr->response->result->attributes()->code[0];
if ($pollCnfrmCode == 1000) {
return ['status' => 'success', 'msg' => $pollCnfrmXmlArr->response->result->msg, 'resp' => $pollCnfrm['resp']];
} else {
return ['status' => 'error', 'msg' => $pollCnfrmXmlArr->response->result->msg];
}
} else {
foreach ($loginXmlArr->response->result as $resp) {
$error = $resp->msg;
}
return ['status' => 'error', 'msg' => $error];
}
$logout = $this->WgsSwitchEppLogout($client);
}
public function WgsSwitchEppAckConfirmCommand($client, $msgId) {
$request = '
POLLCF-' . rand(1000, 9999) . '
';
$response = $client->request($request);
logModuleCall('SWITCH EPP Addon Module', 'Confirm Acknowledge', $request, $response);
return ['status' => 'success', 'req' => $request, 'resp' => $response];
}
public function WgsSwitchEppLoggedIn($client) {
if ($this->regId && $this->regPw) {
$request = '
' . $this->regId . '
' . $this->regPw . '
1.0
en
urn:ietf:params:xml:ns:domain-1.0
urn:ietf:params:xml:ns:contact-1.0
urn:ietf:params:xml:ns:host-1.0
' . rand(9999999, 100000) . '
';
$response = $client->request($request);
return ['status' => 'success', 'req' => $request, 'resp' => $response];
} else {
return ['status' => 'error', 'msg' => 'Registrar id or Registrar password missing'];
}
}
public function WgsSwitchEppLogout($client) {
$request = '
' . $this->regId . '
';
$response = $client->request($request);
return ['status' => 'success', 'req' => $request, 'resp' => $response];
}
public function WgsSwitchEppConnect() {
try {
$certFile = __DIR__ . '/../../../registrars/switchepp/cert/cert.pem';
$client = new Net_EPP_Client();
$use_ssl = true;
if (file_exists($certFile)) {
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'verify_peer', false);
stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
stream_context_set_option($context, 'ssl', 'local_cert', $certFile);
stream_context_set_option($context, 'ssl', 'passphrase', $this->passPhrase);
$client->connect($this->apiUrl, $this->port, 300, $use_ssl, $context) or die("Not connected with epp server");
} else {
$context = false;
$client->connect($this->apiUrl, $this->port, 300, $use_ssl, $context) or die("Not connected with epp server");
}
} catch (Exception $e) {
$port = $this->port;
$client = ["error" => 'true', 'msg' => "Connection Error: " . $e->getMessage()];
}
return $client;
}
}
?>