swicthepp_demonstrator.php 93 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469
  1. <?php
  2. ini_set('display_errors', true);
  3. use Illuminate\Database\Capsule\Manager as Capsule;
  4. use WGSSWITCHEPP\IDNA\idna_convert as IDNA;
  5. include_once '../../../../init.php';
  6. if (!defined("WHMCS"))
  7. die("This file cannot be accessed directly");
  8. if (!class_exists('Net_EPP_Protocol')) {
  9. if (file_exists(dirname(__DIR__) . "/Net/EPP/Client.php"))
  10. require_once dirname(__DIR__) . "/Net/EPP/Client.php";
  11. }
  12. if(!isset($_SESSION['adminid']) && $_SESSION['adminid'] == ""){
  13. die("This file cannot be accessed directly. To access it first login as admin");
  14. }
  15. require_once(dirname(__DIR__) . '/idna_convert.class.php');
  16. /* * **********************Create table for store login detail**************************** */
  17. if (!Capsule::Schema()->hasTable('switchepp_login_details')) {
  18. try {
  19. Capsule::schema()->create(
  20. 'switchepp_login_details',
  21. function ($table) {
  22. $table->increments('id');
  23. $table->string('username');
  24. $table->string('password');
  25. $table->string('epp_url');
  26. $table->string('port');
  27. $table->string('passphrase');
  28. }
  29. );
  30. } catch (\Exception $e) {
  31. logActivity("Unable to create switchepp_login_details: {$e->getMessage()}");
  32. }
  33. }
  34. if (Capsule::Schema()->hasTable('switchepp_login_details')) {
  35. if (!Capsule::Schema()->hasColumn('switchepp_login_details', 'passphrase'))
  36. $table->string('passphrase');
  37. }
  38. /* * *************************Create table for store user record****************************** */
  39. if (!Capsule::Schema()->hasTable('switchepp_contact_details')) {
  40. try {
  41. Capsule::schema()->create(
  42. 'switchepp_contact_details',
  43. function ($table) {
  44. $table->increments('id');
  45. $table->string('type');
  46. $table->string('contact_id');
  47. }
  48. );
  49. } catch (\Exception $e) {
  50. logActivity("Unable to create switchepp_contact_details: {$e->getMessage()}");
  51. }
  52. }
  53. /* * **********************************save poll msgid******************************************** */
  54. if (!Capsule::Schema()->hasTable('switchepp_store_msgid')) {
  55. try {
  56. Capsule::schema()->create(
  57. 'switchepp_store_msgid',
  58. function ($table) {
  59. $table->increments('id');
  60. $table->string('msgid');
  61. }
  62. );
  63. } catch (\Exception $e) {
  64. logActivity("Unable to create switchepp_store_msgid: {$e->getMessage()}");
  65. }
  66. }
  67. /* * ****************************create table to store country name*********************************** */
  68. if (!Capsule::Schema()->hasTable('switchepp_manage_country')) {
  69. try {
  70. Capsule::schema()->create(
  71. 'switchepp_manage_country',
  72. function ($table) {
  73. $table->increments('id');
  74. $table->string('country');
  75. $table->string('country_key');
  76. }
  77. );
  78. } catch (\Exception $e) {
  79. logActivity("Unable to create switchepp_manage_country: {$e->getMessage()}");
  80. }
  81. }
  82. $contrs = "Afghanistan__AF,Aland Islands__AX,Albania__AL,Algeria__DZ,American Samoa__AS,Andorra__AD,Angola__AO,Anguilla__AI,Antarctica__AQ,Antigua And Barbuda__AG,Argentina__AR,Armenia__AM,Aruba__AW,Australia__AU,Austria__AT,Azerbaijan__AZ,Bahamas__BS,Bahrain__BH,Bangladesh__BD,Barbados__BB,Belarus__BY,Belgium__BE,Belize__BZ,Benin__BJ,Bermuda__BM,Bhutan__BT,Bolivia__BO,Bosnia And Herzegovina__BA,Botswana__BW,Bouvet Island__BV,Brazil__BR,British Indian Ocean Territory__IO,Brunei Darussalam__BN,Bulgaria__BG,Burkina Faso__BF,Burundi__BI,Cambodia__KH,Cameroon__CM,Canada__CA,Cape Verde__CV,Cayman Islands__KY,Central African Republic__CF,Chad__TD,Chile__CL,China__CN,Christmas Island__CX,Cocos (Keeling) Islands__CC,Colombia__CO,Comoros__KM,Congo__CG,Congo__CD,Cook Islands__CK,Costa Rica__CR,Croatia__HR,Cuba__CU,Curacao__CW,Cyprus__CY,Czech Republic__CZ,Denmark__DK,Djibouti__DJ,Dominica__DM,Dominican Republic__DO,Ecuador__EC,Egypt__EG,El Salvador__SV,Equatorial Guinea__GQ,Eritrea__ER,Estonia__EE,Ethiopia__ET,Falkland Islands (Malvinas)__FK,Faroe Islands__FO,Fiji__FJ,Finland__FI,France__FR,French Guiana__GF,French Polynesia__PF,French Southern Territories__TF,Gabon__GA,Gambia__GM,Georgia__GE,Germany__DE,Ghana__GH,Gibraltar__GI,Greece__GR,Greenland__GL,Grenada__GD,Guadeloupe__GP,Guam__GU,Guatemala__GT,Guernsey__GG,Guinea__GN,Guinea-Bissau__GW,Guyana__GY,Haiti__HT,Heard Island & Mcdonald Islands__HM,Holy See (Vatican City State)__VA,Honduras__HN,Hong Kong__HK,Hungary__HU,Iceland__IS,India__IN,Indonesia__ID,Iran__IR,Iraq__IQ,Ireland__IE,Isle Of Man__IM,Israel__IL,Italy__IT,Jamaica__JM,Japan__JP,Jersey__JE,Jordan__JO,Kazakhstan__KZ,Kenya__KE,Kiribati__KI,Korea__KR,Kuwait__KW,Kyrgyzstan__KG,Latvia__LV,Lebanon__LB,Lesotho__LS,Liberia__LR,Libyan Arab Jamahiriya__LY,Liechtenstein__LI,Lithuania__LT,Luxembourg__LU,Macao__MO,Macedonia__MK,Madagascar__MG,Malawi__MW,Malaysia__MY,Maldives__MV,Mali__ML,Malta__MT,Marshall Islands__MH,Martinique__MQ,Mauritania__MR,Mauritius__MU,Mayotte__YT,Mexico__MX,Micronesia__FM,Moldova__MD,Monaco__MC,Mongolia__MN,Montenegro__ME,Montserrat__MS,Morocco__MA,Mozambique__MZ,Myanmar__MM,Namibia__NA,Nauru__NR,Nepal__NP,Netherlands__NL,Netherlands Antilles__AN,New Caledonia__NC,New Zealand__NZ,Nicaragua__NI,Niger__NE,Nigeria__NG,Niue__NU,Norfolk Island__NF,Northern Mariana Islands__MP,Norway__NO,Oman__OM,Pakistan__PK,Palau__PW,Palestinian Territory__PS,Panama__PA,Papua New Guinea__PG,Paraguay__PY,Peru__PE,Philippines__PH,Pitcairn__PN,Poland__PL,Portugal__PT,Puerto Rico__PR,Qatar__QA,Reunion__RE,Romania__RO,Russian Federation__RU,Rwanda__RW,Saint Barthelemy__BL,Saint Helena__SH,Saint Kitts And Nevis__KN,Saint Lucia__LC,Saint Martin__MF,Saint Pierre And Miquelon__PM,Saint Vincent And Grenadines__VC,Samoa__WS,San Marino__SM,Sao Tome And Principe__ST,Saudi Arabia__SA,Senegal__SN,Serbia__RS,Seychelles__SC,Sierra Leone__SL,Singapore__SG,Slovakia__SK,Slovenia__SI,Solomon Islands__SB,Somalia__SO,South Africa__ZA,South Georgia And Sandwich Isl.__GS,Spain__ES,Sri Lanka__LK,Sudan__SD,Suriname__SR,Svalbard And Jan Mayen__SJ,Swaziland__SZ,Sweden__SE,Switzerland__CH,Syrian Arab Republic__SY,Taiwan__TW,Tajikistan__TJ,Tanzania__TZ,Thailand__TH,Timor-Leste__TL,Togo__TG,Tokelau__TK,Tonga__TO,Trinidad And Tobago__TT,Tunisia__TN,Turkey__TR,Turkmenistan__TM,Turks And Caicos Islands__TC,Tuvalu__TV,Uganda__UG,Ukraine__UA,United Arab Emirates__AE,United Kingdom__GB,United States__US,United States Outlying Islands__UM,Uruguay__UY,Uzbekistan__UZ,Vanuatu__VU,Venezuela__VE,Viet Nam__VN,Virgin Islands__VG,Virgin Islands.__VI,Wallis And Futuna__WF,Western Sahara__EH,Yemen__YE,Zambia__ZM,Zimbabwe__ZW";
  83. $contrs01 = explode(',', $contrs);
  84. foreach ($contrs01 as $contrs02) {
  85. $contrs03 = explode('__', $contrs02);
  86. try {
  87. Capsule::table('switchepp_manage_country')->insert(['country' => trim($contrs03[0]), 'country_key' => $contrs03[1]]);
  88. } catch (Exception $ex) {
  89. logActivity("Unable to insert data switchepp_manage_country: {$ex->getMessage()}");
  90. }
  91. }
  92. /* * **************************Save login detail*************************************** */
  93. if (isset($_POST['save']) && $_POST['save'] == 'Save To Make Connection') {
  94. $data = Capsule::table('switchepp_login_details')->first();
  95. $data = (array) $data;
  96. $rows = Capsule::table('switchepp_login_details')->count();
  97. $dataArr = array(
  98. 'username' => (empty($_POST['login_id'])) ? '' : $_POST['login_id'],
  99. 'password' => (empty($_POST['password'])) ? '' : $_POST['password'],
  100. 'epp_url' => (empty($_POST['epp_url'])) ? '' : $_POST['epp_url'],
  101. 'port' => (empty($_POST['port'])) ? '' : $_POST['port'],
  102. 'passphrase' => (empty($_POST['passphrase'])) ? '' : $_POST['passphrase'],
  103. );
  104. if ($rows > 0) {
  105. try {
  106. Capsule::table('switchepp_login_details')->where('id', $data['id'])->update($dataArr);
  107. } catch (Exception $ex) {
  108. logActivity("Unable to update data switchepp_login_details: {$ex->getMessage()}");
  109. }
  110. } else {
  111. try {
  112. Capsule::table('switchepp_login_details')->insert($dataArr);
  113. } catch (Exception $ex) {
  114. logActivity("Unable to insert data switchepp_login_details: {$ex->getMessage()}");
  115. }
  116. }
  117. }
  118. $rows = Capsule::table('switchepp_login_details')->count();
  119. $logindata = Capsule::table('switchepp_login_details')->first();
  120. $logindata = $data = (array) $logindata;
  121. $params = array('eppurl' => $logindata['epp_url'], 'eppport' => $logindata['port'], 'registrar_id' => $logindata['username'], 'registrar_password' => $logindata['password'], 'passphrase' => $logindata['passphrase']);
  122. $error = $msg = '';
  123. if (!empty($_POST['eppCommand'])) {
  124. /* * *******************************Hello command************************************* */
  125. if ($_POST['eppCommand'] == 'hello') {
  126. $client = switchepp_clientloginepp($params); #Epp Connection
  127. if (is_array($client)) {
  128. $error = $client['msg'];
  129. }
  130. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  131. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  132. <hello/>
  133. </epp>';
  134. $request_xml = $client->request($request);
  135. $response_xml = htmlentities($request_xml);
  136. $response = simplexml_load_string($request_xml);
  137. } else if ($_POST['eppCommand'] == 'login') { #login command
  138. $client = switchepp_clientloginepp($params); #Epp Connection
  139. if (is_array($client)) {
  140. $error = $client['msg'];
  141. } else {
  142. //$xml1 = switchepp_loggedinepp($client, $params);
  143. echo $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  144. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  145. <command>
  146. <login>
  147. <clID>' . $_POST['username'] . '</clID>
  148. <pw>' . htmlentities($_POST['old_pw']) . '</pw>
  149. <newPW>' . htmlentities($_POST['new_pw']) . '</newPW>
  150. <options>
  151. <version>1.0</version>
  152. <lang>en</lang>
  153. </options>
  154. <svcs>
  155. <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
  156. <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
  157. <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
  158. </svcs>
  159. </login>
  160. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  161. </command>
  162. </epp>';
  163. $request_xml = $client->request($request);
  164. $response_xml = htmlentities($request_xml);
  165. $response_chnge = simplexml_load_string($request_xml);
  166. $success = $response_chnge->response->result->attributes()->code[0];
  167. if ($success == '1000') {
  168. foreach ($response_chnge->response->result as $resp) {
  169. $msg = $resp->msg; //for whmcs
  170. }
  171. // Capsule::table("switchepp_login_details")->where('id', $logindata['id'])->update(['username' => $_POST['username'], 'password' => $_POST['new_pw']]);
  172. } else {
  173. foreach ($response_chnge->response->result as $resp) {
  174. $msg = $resp->msg; //for whmcs
  175. }
  176. }
  177. }
  178. switchepp_logoutinepp($client, $params);
  179. } elseif ($_POST['eppCommand'] == 'logout') { #Logout command
  180. $client = switchepp_clientloginepp($params); #Epp Connection
  181. if (is_array($client)) {
  182. $error = $client['msg'];
  183. }
  184. $xml1 = switchepp_loggedinepp($client, $params);
  185. $msg = $xml1['status'];
  186. $request = $xml1['request'];
  187. $response_xml = htmlentities($xml1['response']);
  188. if ($xml1['status'] == "success") {
  189. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  190. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  191. <epp:command xmlns:epp="urn:ietf:params:xml:ns:epp-1.0">
  192. <epp:logout />
  193. <epp:clTRID>TEST-REGISTRAR-A</epp:clTRID>
  194. </epp:command>
  195. </epp>';
  196. $request_xml = $client->request($request);
  197. $response_xml = htmlentities($request_xml);
  198. $response_chnge = simplexml_load_string($request_xml);
  199. $success = $response_chnge->response->result->attributes()->code[0];
  200. if ($success == '1000') {
  201. foreach ($response_chnge->response->result as $resp) {
  202. $msg = $resp->msg; //for whmcs
  203. }
  204. } else {
  205. foreach ($response_chnge->response->result as $resp) {
  206. $msg = $resp->msg; //for whmcs
  207. }
  208. }
  209. }
  210. } elseif ($_POST['eppCommand'] == 'poll') { #Poll command
  211. $client = switchepp_clientloginepp($params); #Epp Connection
  212. if (is_array($client)) {
  213. $error = $client['msg'];
  214. }
  215. $xml1 = switchepp_loggedinepp($client, $params);
  216. $msg = $xml1['status'];
  217. $request = $xml1['request'];
  218. $response_xml = htmlentities($xml1['response']);
  219. if ($xml1['status'] == "success") {
  220. $request = '<?xml version="1.0" encoding="utf-8" standalone="no"?>
  221. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  222. <command>
  223. <poll op="req"/>
  224. <clTRID>POLL-' . rand(10000, 99999) . '</clTRID>
  225. </command>
  226. </epp>';
  227. $request_xml = $client->request($request);
  228. $response_xml = htmlentities($request_xml);
  229. $poll_xml_code = simplexml_load_string($request_xml);
  230. $msgid = $poll_xml_code->response->msgQ->attributes()->id[0];
  231. $row = Capsule::table('switchepp_store_msgid')->count();
  232. $id = Capsule::table('switchepp_store_msgid')->first();
  233. $id = (array) $id;
  234. if ($row > 0) {
  235. try {
  236. Capsule::table('switchepp_store_msgid')->where('id', $id['id'])->update(['msgid' => $msgid]);
  237. } catch (Exception $ex) {
  238. logActivity("Unable to update data switchepp_store_msgid: {$ex->getMessage()}");
  239. }
  240. } else {
  241. try {
  242. Capsule::table('switchepp_store_msgid')->insert(['msgid' => $msgid]);
  243. } catch (Exception $ex) {
  244. logActivity("Unable to insert data switchepp_store_msgid: {$ex->getMessage()}");
  245. }
  246. }
  247. $response_chnge = simplexml_load_string($request_xml);
  248. $success = $response_chnge->response->result->attributes()->code[0];
  249. if ($success == '1000') {
  250. foreach ($response_chnge->response->result as $resp) {
  251. $msg = $resp->msg; //for whmcs
  252. }
  253. } else {
  254. foreach ($response_chnge->response->result as $resp) {
  255. $msg = $resp->msg; //for whmcs
  256. }
  257. }
  258. switchepp_logoutinepp($client, $params);
  259. }
  260. } elseif ($_POST['eppCommand'] == 'transfer_domain1') { # Transfer command
  261. $client = switchepp_clientloginepp($params); #Epp Connection
  262. if (is_array($client)) {
  263. $error = $client['msg'];
  264. }
  265. $xml1 = switchepp_loggedinepp($client, $params);
  266. $msg = $xml1['status'];
  267. $request = $xml1['request'];
  268. $response_xml = htmlentities($xml1['response']);
  269. if ($xml1['status'] == "success") {
  270. $IDN = new IDNA();
  271. $input = $_POST['trnsfr_domain'];
  272. $domainname = $IDN->encode($input);
  273. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  274. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  275. <command>
  276. <transfer op="request">
  277. <domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  278. <domain:name>' . $domainname . '</domain:name>
  279. <domain:authInfo>
  280. <domain:pw>' . $_POST['trnsfr_pw'] . '</domain:pw>
  281. </domain:authInfo>
  282. </domain:transfer>
  283. </transfer>
  284. <clTRID>TRANS-' . rand(1000, 9999) . '</clTRID>
  285. </command>
  286. </epp>';
  287. $request_xml = $client->request($request);
  288. $response_xml = htmlentities($request_xml);
  289. $response_chnge = simplexml_load_string($request_xml);
  290. $success = $response_chnge->response->result->attributes()->code[0];
  291. if ($success == '1000') {
  292. foreach ($response_chnge->response->result as $resp) {
  293. $msg = $resp->msg; //for whmcs
  294. }
  295. } else {
  296. foreach ($response_chnge->response->result as $resp) {
  297. $msg = $resp->msg; //for whmcs
  298. }
  299. }
  300. switchepp_logoutinepp($client, $params);
  301. }
  302. } elseif ($_POST['eppCommand'] == 'acknoledge_msg') { #Poll Acknowledge message
  303. $id = Capsule::table('switchepp_store_msgid')->first();
  304. $id = (array) $id;
  305. $client = switchepp_clientloginepp($params); #Epp Connection
  306. if (is_array($client)) {
  307. $error = $client['msg'];
  308. }
  309. $xml1 = switchepp_loggedinepp($client, $params);
  310. $msg = $xml1['status'];
  311. $request = $xml1['request'];
  312. $response_xml = htmlentities($xml1['response']);
  313. if ($xml1['status'] == "success") {
  314. $request = '<?xml version="1.0" encoding="utf-8" standalone="no"?>
  315. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  316. <command>
  317. <poll op="req"/>
  318. <clTRID>POLL-' . rand(10000, 99999) . '</clTRID>
  319. </command>
  320. </epp>';
  321. $request_xml = $client->request($request);
  322. $response_xml = htmlentities($request_xml);
  323. $poll_xml_code = simplexml_load_string($request_xml);
  324. $msgid = $poll_xml_code->response->msgQ->attributes()->id[0];
  325. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  326. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  327. <command>
  328. <poll op="ack" msgID="' . $msgid . '"/>
  329. <clTRID>POLLCF-' . rand(1000, 9999) . '</clTRID>
  330. </command>
  331. </epp>';
  332. $request_xml = $client->request($request);
  333. $response_xml = htmlentities($request_xml);
  334. $response_chnge = simplexml_load_string($request_xml);
  335. $success = $response_chnge->response->result->attributes()->code[0];
  336. if ($success == '1000') {
  337. foreach ($response_chnge->response->result as $resp) {
  338. $msg = $resp->msg; //for whmcs
  339. }
  340. } else {
  341. foreach ($response_chnge->response->result as $resp) {
  342. $msg = $resp->msg; //for whmcs
  343. }
  344. }
  345. switchepp_logoutinepp($client, $params);
  346. }
  347. } elseif ($_POST['eppCommand'] == 'check_contact1') { #check contact 1
  348. $client = switchepp_clientloginepp($params); #Epp Connection
  349. if (is_array($client)) {
  350. $error = $client['msg'];
  351. }
  352. $xml1 = switchepp_loggedinepp($client, $params);
  353. $msg = $xml1['status'];
  354. $request = $xml1['request'];
  355. $response_xml = htmlentities($xml1['response']);
  356. if ($xml1['status'] == "success") {
  357. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  358. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  359. <command>
  360. <check>
  361. <contact:check xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  362. <contact:id>' . $_POST['cont1'] . '</contact:id>
  363. </contact:check>
  364. </check>
  365. <clTRID>ABC-12345</clTRID>
  366. </command>
  367. </epp>';
  368. $request_xml = $client->request($request);
  369. $response_xml = htmlentities($request_xml);
  370. $response_chnge = simplexml_load_string($request_xml);
  371. $success = $response_chnge->response->result->attributes()->code[0];
  372. if ($success == '1000') {
  373. foreach ($response_chnge->response->result as $resp) {
  374. $msg = $resp->msg; //for whmcs
  375. }
  376. } else {
  377. foreach ($response_chnge->response->result as $resp) {
  378. $msg = $resp->msg; //for whmcs
  379. }
  380. }
  381. switchepp_logoutinepp($client, $params);
  382. }
  383. } elseif ($_POST['eppCommand'] == 'create_con1') { #create contact 1
  384. $client = switchepp_clientloginepp($params); #Epp Connection
  385. if (is_array($client)) {
  386. $error = $client['msg'];
  387. }
  388. $xml1 = switchepp_loggedinepp($client, $params);
  389. $msg = $xml1['status'];
  390. $request = $xml1['request'];
  391. $response_xml = htmlentities($xml1['response']);
  392. if ($xml1['status'] == "success") {
  393. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  394. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  395. <command>
  396. <create>
  397. <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  398. <contact:id>' . $_POST['contact_id'] . '</contact:id>
  399. <contact:postalInfo type="loc">
  400. <contact:name>' . $_POST['cfullname'] . '</contact:name>
  401. <contact:org>' . $_POST['ccompanyname'] . '</contact:org>
  402. <contact:addr>
  403. <contact:street>' . $_POST['caddress1'] . '</contact:street>
  404. <contact:street>' . $_POST['caddress2'] . '</contact:street>
  405. <contact:city>' . $_POST['ccity'] . '</contact:city>
  406. <contact:pc>' . $_POST['cpostcode'] . '</contact:pc>
  407. <contact:cc>' . $_POST['ccountry'] . '</contact:cc>
  408. </contact:addr>
  409. </contact:postalInfo>
  410. <contact:voice>' . $_POST['cphone'] . '</contact:voice>
  411. <contact:email>' . $_POST['cemail'] . '</contact:email>
  412. <contact:authInfo>
  413. <contact:pw>Con-' . time() . '</contact:pw>
  414. </contact:authInfo>
  415. </contact:create>
  416. </create>
  417. <clTRID>admin-' . rand(1000, 9999) . '</clTRID>
  418. </command>
  419. </epp>';
  420. $request_xml = $client->request($request);
  421. $response_xml = htmlentities($request_xml);
  422. $response_contact = simplexml_load_string($request_xml);
  423. $success = $response_contact->response->result->attributes()->code[0];
  424. $admin_id = $response_contact->response->resData->children('contact', true)->creData->id;
  425. if ($success == '1000') {
  426. $rows = Capsule::table('switchepp_contact_details')->where('type', 'admin')->count();
  427. if ($rows > 0) {
  428. try {
  429. Capsule::table('switchepp_contact_details')->where('type', 'admin')->update(['contact_id' => $admin_id]);
  430. } catch (Exception $ex) {
  431. logActivity("Could't update into table switchepp_contact_details: {$ex->getMessage()}");
  432. }
  433. } else {
  434. try {
  435. Capsule::table('switchepp_contact_details')->insert(['contact_id' => $admin_id]);
  436. } catch (Exception $ex) {
  437. logActivity("Could't insert into table switchepp_contact_details: {$ex->getMessage()}");
  438. }
  439. }
  440. }
  441. $response_chnge = simplexml_load_string($request_xml);
  442. $success = $response_chnge->response->result->attributes()->code[0];
  443. if ($success == '1000') {
  444. foreach ($response_chnge->response->result as $resp) {
  445. $msg = $resp->msg; //for whmcs
  446. }
  447. } else {
  448. foreach ($response_chnge->response->result as $resp) {
  449. $msg = $resp->msg; //for whmcs
  450. }
  451. }
  452. switchepp_logoutinepp($client, $params);
  453. }
  454. } elseif ($_POST['eppCommand'] == 'create_ns1') { #create hostname 1
  455. $client = switchepp_clientloginepp($params); #Epp Connection
  456. if (is_array($client)) {
  457. $error = $client['msg'];
  458. }
  459. $xml1 = switchepp_loggedinepp($client, $params);
  460. $msg = $xml1['status'];
  461. $request = $xml1['request'];
  462. $response_xml = htmlentities($xml1['response']);
  463. if ($xml1['status'] == "success") {
  464. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  465. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  466. <command>
  467. <create>
  468. <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
  469. <host:name>' . $_POST['host_name'] . '</host:name>
  470. <host:addr ip="v4">' . $_POST['ip'] . '</host:addr>
  471. </host:create>
  472. </create>
  473. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  474. </command>
  475. </epp>';
  476. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><epp xmlns="urn:ietf:params:xml:ns:epp-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd">
  477. <command>
  478. <create>
  479. <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0" xsi:schemaLocation="urn:ietf:params:xml:ns:host-1.0 host-1.0.xsd">
  480. <host:name>' . $_POST['host_name'] . '</host:name>
  481. </host:create>
  482. </create>
  483. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  484. </command>
  485. </epp>';
  486. $request_xml = $client->request($request);
  487. $response_xml = htmlentities($request_xml);
  488. //if($success == '1000'){
  489. //$query = mysql_query("SELECT * FROM `switchepp_store_host`");
  490. //}
  491. $response_chnge = simplexml_load_string($request_xml);
  492. $success = $response_chnge->response->result->attributes()->code[0];
  493. if ($success == '1000') {
  494. foreach ($response_chnge->response->result as $resp) {
  495. $msg = $resp->msg; //for whmcs
  496. }
  497. } else {
  498. foreach ($response_chnge->response->result as $resp) {
  499. $msg = $resp->msg; //for whmcs
  500. }
  501. }
  502. switchepp_logoutinepp($client, $params);
  503. }
  504. } elseif ($_POST['eppCommand'] == 'domain_info') { #domain info 1
  505. $client = switchepp_clientloginepp($params); #Epp Connection
  506. if (is_array($client)) {
  507. $error = $client['msg'];
  508. }
  509. $xml1 = switchepp_loggedinepp($client, $params);
  510. $msg = $xml1['status'];
  511. $request = $xml1['request'];
  512. $response_xml = htmlentities($xml1['response']);
  513. if ($xml1['status'] == "success") {
  514. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  515. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  516. <command>
  517. <info>
  518. <domain:info xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  519. <domain:name>' . $_POST['domaininfo'] . '</domain:name>
  520. </domain:info>
  521. </info>
  522. <clTRID>DOMAININFO-' . rand(100, 999) . '</clTRID>
  523. </command>
  524. </epp>';
  525. $request_xml = $client->request($request);
  526. $response_xml = htmlentities($request_xml);
  527. $response_chnge = simplexml_load_string($request_xml);
  528. $success = $response_chnge->response->result->attributes()->code[0];
  529. if ($success == '1000') {
  530. foreach ($response_chnge->response->result as $resp) {
  531. $msg = $resp->msg; //for whmcs
  532. }
  533. } else {
  534. foreach ($response_chnge->response->result as $resp) {
  535. $msg = $resp->msg; //for whmcs
  536. }
  537. }
  538. switchepp_logoutinepp($client, $params);
  539. }
  540. } elseif ($_POST['eppCommand'] == 'domain_info1') { #domain info 1
  541. $client = switchepp_clientloginepp($params); #Epp Connection
  542. if (is_array($client)) {
  543. $error = $client['msg'];
  544. }
  545. $IDN = new IDNA();
  546. $input = $_POST['domaininfo'];
  547. $domainname = $IDN->encode($input);
  548. $xml1 = switchepp_loggedinepp($client, $params);
  549. $msg = $xml1['status'];
  550. $request = $xml1['request'];
  551. $response_xml = htmlentities($xml1['response']);
  552. if ($xml1['status'] == "success") {
  553. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  554. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  555. <command>
  556. <info>
  557. <domain:info xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  558. <domain:name>' . $domainname . '</domain:name>
  559. </domain:info>
  560. </info>
  561. <clTRID>DOMAININFO-' . rand(100, 999) . '</clTRID>
  562. </command>
  563. </epp>';
  564. $request_xml = $client->request($request);
  565. $response_xml = htmlentities($request_xml);
  566. $response_chnge = simplexml_load_string($request_xml);
  567. $success = $response_chnge->response->result->attributes()->code[0];
  568. if ($success == '1000') {
  569. foreach ($response_chnge->response->result as $resp) {
  570. $msg = $resp->msg; //for whmcs
  571. }
  572. } else {
  573. foreach ($response_chnge->response->result as $resp) {
  574. $msg = $resp->msg; //for whmcs
  575. }
  576. }
  577. switchepp_logoutinepp($client, $params);
  578. }
  579. } elseif ($_POST['eppCommand'] == 'info_tech_contact') { #Tech contact info
  580. $client = switchepp_clientloginepp($params); #Epp Connection
  581. if (is_array($client)) {
  582. $error = $client['msg'];
  583. }
  584. $xml1 = switchepp_loggedinepp($client, $params);
  585. $msg = $xml1['status'];
  586. $request = $xml1['request'];
  587. $response_xml = htmlentities($xml1['response']);
  588. if ($xml1['status'] == "success") {
  589. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  590. $result = (array) $data;
  591. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  592. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  593. <command>
  594. <info>
  595. <contact:info
  596. xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  597. <contact:id>' . $_POST['cont_info'] . '</contact:id>
  598. </contact:info>
  599. </info>
  600. <clTRID>ABC-12345</clTRID>
  601. </command>
  602. </epp>';
  603. $request_xml = $client->request($request);
  604. $response_xml = htmlentities($request_xml);
  605. $response_chnge = simplexml_load_string($request_xml);
  606. $success = $response_chnge->response->result->attributes()->code[0];
  607. if ($success == '1000') {
  608. foreach ($response_chnge->response->result as $resp) {
  609. $msg = $resp->msg; //for whmcs
  610. }
  611. } else {
  612. foreach ($response_chnge->response->result as $resp) {
  613. $msg = $resp->msg; //for whmcs
  614. }
  615. }
  616. switchepp_logoutinepp($client, $params);
  617. }
  618. } elseif ($_POST['eppCommand'] == 'update_domain_1_ctsd') {
  619. $client = switchepp_clientloginepp($params); #Epp Connection
  620. if (is_array($client)) {
  621. $error = $client['msg'];
  622. }
  623. $xml1 = switchepp_loggedinepp($client, $params);
  624. $msg = $xml1['status'];
  625. $request = $xml1['request'];
  626. $response_xml = htmlentities($xml1['response']);
  627. if ($xml1['status'] == "success") {
  628. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  629. $data = (array) $data;
  630. $IDN = new IDNA();
  631. $input = $_POST['up_domain_name2'];
  632. $domainname = $IDN->encode($input);
  633. $add_input = $_POST['up_add_ns'];
  634. $add_ns = $IDN->encode($add_input);
  635. $rem_input = $_POST['up_rem_ns'];
  636. $rem_ns = $IDN->encode($rem_input);
  637. $dnssec = '';
  638. if (isset($_POST['up_d_dnssec']) && $_POST['up_d_dnssec'] == '1') {
  639. $dnssec = '<extension>
  640. <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  641. <secDNS:add>
  642. <secDNS:dsData>
  643. <secDNS:keyTag>' . substr(time(), 0, 5) . '</secDNS:keyTag>
  644. <secDNS:alg>3</secDNS:alg>
  645. <secDNS:digestType>1</secDNS:digestType>
  646. <secDNS:digest>' . strtoupper(bin2hex(uniqid())) . '</secDNS:digest>
  647. </secDNS:dsData>
  648. </secDNS:add>
  649. </secDNS:update>
  650. </extension>';
  651. }
  652. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  653. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  654. <command>
  655. <update>
  656. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  657. <domain:name>' . $domainname . '</domain:name>
  658. <domain:add>
  659. <domain:ns>
  660. <domain:hostObj>' . $add_ns . '</domain:hostObj>
  661. </domain:ns>
  662. <domain:contact type="tech">' . $_POST['add_contact_id'] . '</domain:contact>
  663. </domain:add>
  664. <domain:rem>
  665. <domain:ns>
  666. <domain:hostObj>' . $rem_ns . '</domain:hostObj>
  667. </domain:ns>
  668. </domain:rem>
  669. <domain:chg>
  670. <domain:registrant>' . $_POST['chng_contact_id'] . '</domain:registrant>
  671. </domain:chg>
  672. </domain:update>
  673. </update>
  674. ' . $dnssec . '
  675. <clTRID>clientref-' . rand(1000, 9999) . '</clTRID>
  676. </command>
  677. </epp>';
  678. $request_xml = $client->request($request);
  679. $response_xml = htmlentities($request_xml);
  680. $response_chnge = simplexml_load_string($request_xml);
  681. $success = $response_chnge->response->result->attributes()->code[0];
  682. if ($success == '1000') {
  683. foreach ($response_chnge->response->result as $resp) {
  684. $msg = $resp->msg; //for whmcs
  685. }
  686. } else {
  687. foreach ($response_chnge->response->result as $resp) {
  688. $msg = $resp->msg; //for whmcs
  689. }
  690. }
  691. switchepp_logoutinepp($client, $params);
  692. }
  693. } elseif ($_POST['eppCommand'] == 'update_domain_1') {
  694. $client = switchepp_clientloginepp($params); #Epp Connection
  695. if (is_array($client)) {
  696. $error = $client['msg'];
  697. }
  698. $xml1 = switchepp_loggedinepp($client, $params);
  699. $msg = $xml1['status'];
  700. $request = $xml1['request'];
  701. $response_xml = htmlentities($xml1['response']);
  702. if ($xml1['status'] == "success") {
  703. $IDN = new IDNA();
  704. $input = $_POST['up_domain_name1'];
  705. $domainname = $IDN->encode($input);
  706. $dnssec = '';
  707. if (isset($_POST['up_d_dnssec']) && $_POST['up_d_dnssec'] == '1') {
  708. $dnssec = '<extension>
  709. <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  710. <secDNS:add>
  711. <secDNS:dsData>
  712. <secDNS:keyTag>' . substr(time(), 0, 5) . '</secDNS:keyTag>
  713. <secDNS:alg>3</secDNS:alg>
  714. <secDNS:digestType>1</secDNS:digestType>
  715. <secDNS:digest>' . strtoupper(bin2hex(uniqid())) . '</secDNS:digest>
  716. </secDNS:dsData>
  717. </secDNS:add>
  718. </secDNS:update>
  719. </extension>';
  720. }
  721. /* '<domain:add>
  722. <domain:ns>
  723. <domain:hostObj>' . $add_ns . '</domain:hostObj>
  724. </domain:ns>
  725. <domain:contact type="tech">' . $_POST['up_contact_id'] . '</domain:contact>
  726. </domain:add>
  727. <domain:rem>
  728. <domain:ns>
  729. <domain:hostObj>' . $rem_ns . '</domain:hostObj>
  730. </domain:ns>
  731. </domain:rem>' */
  732. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  733. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  734. <command>
  735. <update>
  736. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  737. <domain:name>' . $domainname . '</domain:name>
  738. <domain:add/>
  739. <domain:rem/>
  740. <domain:chg>
  741. <domain:registrant>' . $_POST['up_contact_id'] . '</domain:registrant>
  742. </domain:chg>
  743. </domain:update>
  744. </update>
  745. ' . $dnssec . '
  746. <clTRID>clientref-' . rand(1000, 9999) . '</clTRID>
  747. </command>
  748. </epp>';
  749. $request_xml = $client->request($request);
  750. $response_xml = htmlentities($request_xml);
  751. $response_chnge = simplexml_load_string($request_xml);
  752. $success = $response_chnge->response->result->attributes()->code[0];
  753. if ($success == '1000') {
  754. foreach ($response_chnge->response->result as $resp) {
  755. $msg = $resp->msg; //for whmcs
  756. }
  757. } else {
  758. foreach ($response_chnge->response->result as $resp) {
  759. $msg = $resp->msg; //for whmcs
  760. }
  761. }
  762. switchepp_logoutinepp($client, $params);
  763. }
  764. } elseif ($_POST['eppCommand'] == 'replace_domain_dnssec') {
  765. $client = switchepp_clientloginepp($params); #Epp Connection
  766. if (is_array($client)) {
  767. $error = $client['msg'];
  768. }
  769. $xml1 = switchepp_loggedinepp($client, $params);
  770. $msg = $xml1['status'];
  771. $request = $xml1['request'];
  772. $response_xml = htmlentities($xml1['response']);
  773. if ($xml1['status'] == "success") {
  774. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  775. $data = (array) $data;
  776. $IDN = new IDNA();
  777. $input = $_POST['up_domain_name'];
  778. $domainname = $IDN->encode($input);
  779. $dnssec = '';
  780. $dnssec = '<extension>
  781. <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  782. <secDNS:rem>
  783. <secDNS:dsData>
  784. <secDNS:keyTag>12346</secDNS:keyTag>
  785. <secDNS:alg>5</secDNS:alg>
  786. <secDNS:digestType>1</secDNS:digestType>
  787. <secDNS:digest>461B5C021BD7E68BF5013F1BA4BB76F4B436FE19</secDNS:digest>
  788. </secDNS:dsData>
  789. </secDNS:rem>
  790. <secDNS:add>
  791. <secDNS:dsData>
  792. <secDNS:keyTag>' . $_POST['keyTag'] . '</secDNS:keyTag>
  793. <secDNS:alg>' . $_POST['alg'] . '</secDNS:alg>
  794. <secDNS:digestType>' . $_POST['digesttype'] . '</secDNS:digestType>
  795. <secDNS:digest>4C1D176C756572C6BFE3D72E87F8B18EF185E55A348480B61D894881AAC381BC</secDNS:digest>
  796. </secDNS:dsData>
  797. </secDNS:add>
  798. </secDNS:update>
  799. </extension>';
  800. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  801. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  802. <command>
  803. <update>
  804. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  805. <domain:name>' . $domainname . '</domain:name>
  806. </domain:update>
  807. </update>
  808. ' . $dnssec . '
  809. <clTRID>clientref-' . rand(1000, 9999) . '</clTRID>
  810. </command>
  811. </epp>';
  812. $request_xml = $client->request($request);
  813. $response_xml = htmlentities($request_xml);
  814. $response_chnge = simplexml_load_string($request_xml);
  815. $success = $response_chnge->response->result->attributes()->code[0];
  816. if ($success == '1000') {
  817. foreach ($response_chnge->response->result as $resp) {
  818. $msg = $resp->msg; //for whmcs
  819. }
  820. } else {
  821. foreach ($response_chnge->response->result as $resp) {
  822. $msg = $resp->msg; //for whmcs
  823. }
  824. }
  825. switchepp_logoutinepp($client, $params);
  826. }
  827. } elseif ($_POST['eppCommand'] == 'update_domain_1_dnssec') {
  828. $client = switchepp_clientloginepp($params); #Epp Connection
  829. if (is_array($client)) {
  830. $error = $client['msg'];
  831. }
  832. $xml1 = switchepp_loggedinepp($client, $params);
  833. $msg = $xml1['status'];
  834. $request = $xml1['request'];
  835. $response_xml = htmlentities($xml1['response']);
  836. if ($xml1['status'] == "success") {
  837. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  838. $data = (array) $data;
  839. $IDN = new IDNA();
  840. $input = $_POST['up_domain_name'];
  841. $domainname = $IDN->encode($input);
  842. $dnssec = '';
  843. $dnssec = '<extension>
  844. <secDNS:update xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  845. <secDNS:add>
  846. <secDNS:dsData>
  847. <secDNS:keyTag>' . $_POST['keyTag'] . '</secDNS:keyTag>
  848. <secDNS:alg>' . $_POST['alg'] . '</secDNS:alg>
  849. <secDNS:digestType>' . $_POST['digesttype'] . '</secDNS:digestType>
  850. <secDNS:digest>461B5C021BD7E68BF5013F1BA4BB76F4B436FE19</secDNS:digest>
  851. </secDNS:dsData>
  852. </secDNS:add>
  853. </secDNS:update>
  854. </extension>';
  855. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  856. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  857. <command>
  858. <update>
  859. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  860. <domain:name>' . $domainname . '</domain:name>
  861. </domain:update>
  862. </update>
  863. ' . $dnssec . '
  864. <clTRID>clientref-' . rand(1000, 9999) . '</clTRID>
  865. </command>
  866. </epp>';
  867. $request_xml = $client->request($request);
  868. $response_xml = htmlentities($request_xml);
  869. $response_chnge = simplexml_load_string($request_xml);
  870. $success = $response_chnge->response->result->attributes()->code[0];
  871. if ($success == '1000') {
  872. foreach ($response_chnge->response->result as $resp) {
  873. $msg = $resp->msg; //for whmcs
  874. }
  875. } else {
  876. foreach ($response_chnge->response->result as $resp) {
  877. $msg = $resp->msg; //for whmcs
  878. }
  879. }
  880. switchepp_logoutinepp($client, $params);
  881. }
  882. } elseif ($_POST['eppCommand'] == 'create_con2') {
  883. $client = switchepp_clientloginepp($params); #Epp Connection
  884. if (is_array($client)) {
  885. $error = $client['msg'];
  886. }
  887. $xml1 = switchepp_loggedinepp($client, $params);
  888. $msg = $xml1['status'];
  889. $request = $xml1['request'];
  890. $response_xml = htmlentities($xml1['response']);
  891. if ($xml1['status'] == "success") {
  892. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  893. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  894. <command>
  895. <create>
  896. <contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  897. <contact:id>' . $_POST['contact_id2'] . '</contact:id>
  898. <contact:postalInfo type="loc">
  899. <contact:name>' . $_POST['fullname'] . '</contact:name>
  900. <contact:org>' . $_POST['companyname'] . '</contact:org>
  901. <contact:addr>
  902. <contact:street>' . $_POST['address1'] . '</contact:street>
  903. <contact:street>' . $_POST['address2'] . '</contact:street>
  904. <contact:city>' . $_POST['city'] . '</contact:city>
  905. <contact:pc>' . $_POST['postcode'] . '</contact:pc>
  906. <contact:cc>' . $_POST['country'] . '</contact:cc>
  907. </contact:addr>
  908. </contact:postalInfo>
  909. <contact:voice>' . $_POST['phone'] . '</contact:voice>
  910. <contact:email>' . $_POST['email2'] . '</contact:email>
  911. <contact:authInfo>
  912. <contact:pw>Con-' . time() . '</contact:pw>
  913. </contact:authInfo>
  914. </contact:create>
  915. </create>
  916. <clTRID>admin-' . rand(1000, 9999) . '</clTRID>
  917. </command>
  918. </epp>';
  919. $request_xml = $client->request($request);
  920. $response_xml = htmlentities($request_xml);
  921. $response_contact = simplexml_load_string($request_xml);
  922. $success = $response_contact->response->result->attributes()->code[0];
  923. $tech_id = $response_contact->response->resData->children('contact', true)->creData->id;
  924. if ($success == '1000') {
  925. $rows = Capsule::table('switchepp_contact_details')->where('type', 'tech')->count();
  926. if ($rows > 0) {
  927. try {
  928. Capsule::table('switchepp_contact_details')->where('type', 'tech')->update(['contact_id' => $tech_id]);
  929. } catch (Exception $ex) {
  930. logActivity("Could't update into table switchepp_contact_details: {$ex->getMessage()}");
  931. }
  932. } else {
  933. try {
  934. Capsule::table('switchepp_contact_details')->insert(['contact_id' => $tech_id]);
  935. } catch (Exception $ex) {
  936. logActivity("Could't insert into table switchepp_contact_details: {$ex->getMessage()}");
  937. }
  938. }
  939. }
  940. $response_chnge = simplexml_load_string($request_xml);
  941. $success = $response_chnge->response->result->attributes()->code[0];
  942. if ($success == '1000') {
  943. foreach ($response_chnge->response->result as $resp) {
  944. $msg = $resp->msg; //for whmcs
  945. }
  946. } else {
  947. foreach ($response_chnge->response->result as $resp) {
  948. $msg = $resp->msg; //for whmcs
  949. }
  950. }
  951. switchepp_logoutinepp($client, $params);
  952. }
  953. } elseif ($_POST['eppCommand'] == 'domain_delete1') {
  954. $client = switchepp_clientloginepp($params); #Epp Connection
  955. if (is_array($client)) {
  956. $error = $client['msg'];
  957. }
  958. $xml1 = switchepp_loggedinepp($client, $params);
  959. $msg = $xml1['status'];
  960. $request = $xml1['request'];
  961. $response_xml = htmlentities($xml1['response']);
  962. if ($xml1['status'] == "success") {
  963. $IDN = new IDNA();
  964. $input = $_POST['domaininfo'];
  965. $domainname = $IDN->encode($input);
  966. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  967. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  968. <command>
  969. <delete>
  970. <domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  971. <domain:name>' . $domainname . '</domain:name>
  972. </domain:delete>
  973. </delete>
  974. <clTRID>ABC-12345</clTRID>
  975. </command>
  976. </epp>';
  977. $request_xml = $client->request($request);
  978. $response_xml = htmlentities($request_xml);
  979. $response_chnge = simplexml_load_string($request_xml);
  980. $success = $response_chnge->response->result->attributes()->code[0];
  981. if ($success == '1000') {
  982. foreach ($response_chnge->response->result as $resp) {
  983. $msg = $resp->msg; //for whmcs
  984. }
  985. } else {
  986. foreach ($response_chnge->response->result as $resp) {
  987. $msg = $resp->msg; //for whmcs
  988. }
  989. }
  990. switchepp_logoutinepp($client, $params);
  991. }
  992. } elseif ($_POST['eppCommand'] == 'create_domain_1') {
  993. $client = switchepp_clientloginepp($params); #Epp Connection
  994. if (is_array($client)) {
  995. $error = $client['msg'];
  996. }
  997. $xml1 = switchepp_loggedinepp($client, $params);
  998. $msg = $xml1['status'];
  999. $request = $xml1['request'];
  1000. $response_xml = htmlentities($xml1['response']);
  1001. if ($xml1['status'] == "success") {
  1002. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  1003. $data = (array) $data;
  1004. $data1 = Capsule::table('switchepp_contact_details')->where('type', 'tech')->first();
  1005. $data1 = (array) $data1;
  1006. #*******************NameServer*************#
  1007. if ($_POST['ns1']) {
  1008. $ns .= '<domain:hostObj>' . $_POST['ns1'] . '</domain:hostObj>';
  1009. }
  1010. if ($_POST['ns2']) {
  1011. $ns .= '<domain:hostObj>' . $_POST['ns2'] . '</domain:hostObj>';
  1012. }
  1013. if ($_POST['ns3']) {
  1014. $ns .= '<domain:hostObj>' . $_POST['ns3'] . '</domain:hostObj>';
  1015. }
  1016. if ($_POST['ns4']) {
  1017. $ns .= '<domain:hostObj>' . $_POST['ns4'] . '</domain:hostObj>';
  1018. }
  1019. if ($ns) {
  1020. $nsnameserver = ' <domain:ns>
  1021. ' . $ns . '
  1022. </domain:ns>';
  1023. }
  1024. $dnssec = '';
  1025. if (isset($_POST['cr_d1_dnssec']) && $_POST['cr_d1_dnssec'] == '1') {
  1026. $dnssec = '<extension>
  1027. <secDNS:create xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1">
  1028. <secDNS:dsData>
  1029. <secDNS:keyTag>' . substr(time(), 0, 5) . '</secDNS:keyTag>
  1030. <secDNS:alg>3</secDNS:alg>
  1031. <secDNS:digestType>1</secDNS:digestType>
  1032. <secDNS:digest>' . strtoupper(bin2hex(uniqid())) . '</secDNS:digest>
  1033. </secDNS:dsData>
  1034. </secDNS:create>
  1035. </extension>';
  1036. }
  1037. $IDN = new IDNA();
  1038. $input = $_POST['domain_name'];
  1039. $domainname = $IDN->encode($input);
  1040. #domian create command
  1041. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1042. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1043. <command>
  1044. <create>
  1045. <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1046. <domain:name>' . $domainname . '</domain:name>
  1047. ' . $nsnameserver . '
  1048. <domain:registrant>' . $_POST['reg_con_id'] . '</domain:registrant>
  1049. <domain:authInfo>
  1050. <domain:pw>switchpwd' . uniqid() . '</domain:pw>
  1051. </domain:authInfo>
  1052. </domain:create>
  1053. </create>
  1054. ' . $dnssec . '
  1055. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  1056. </command>
  1057. </epp>';
  1058. $request_xml = $client->request($request);
  1059. $response_xml = htmlentities($request_xml);
  1060. $response_chnge = simplexml_load_string($request_xml);
  1061. $success = $response_chnge->response->result->attributes()->code[0];
  1062. if ($success == '1000') {
  1063. foreach ($response_chnge->response->result as $resp) {
  1064. $msg = $resp->msg; //for whmcs
  1065. }
  1066. } else {
  1067. foreach ($response_chnge->response->result as $resp) {
  1068. $msg = $resp->msg; //for whmcs
  1069. }
  1070. }
  1071. switchepp_logoutinepp($client, $params);
  1072. }
  1073. } elseif ($_POST['eppCommand'] == 'contact_delete_1') {
  1074. $client = switchepp_clientloginepp($params); #Epp Connection
  1075. if (is_array($client)) {
  1076. $error = $client['msg'];
  1077. }
  1078. $xml1 = switchepp_loggedinepp($client, $params);
  1079. $msg = $xml1['status'];
  1080. $request = $xml1['request'];
  1081. $response_xml = htmlentities($xml1['response']);
  1082. if ($xml1['status'] == "success") {
  1083. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  1084. $data = (array) $data;
  1085. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1086. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1087. <command>
  1088. <delete>
  1089. <contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  1090. <contact:id>' . $_POST['del_contact_id'] . '</contact:id>
  1091. </contact:delete>
  1092. </delete>
  1093. <clTRID>ABC-12345</clTRID>
  1094. </command>
  1095. </epp>';
  1096. $request_xml = $client->request($request);
  1097. $response_xml = htmlentities($request_xml);
  1098. $response_chnge = simplexml_load_string($request_xml);
  1099. $success = $response_chnge->response->result->attributes()->code[0];
  1100. if ($success == '1000') {
  1101. foreach ($response_chnge->response->result as $resp) {
  1102. $msg = $resp->msg; //for whmcs
  1103. }
  1104. } else {
  1105. foreach ($response_chnge->response->result as $resp) {
  1106. $msg = $resp->msg; //for whmcs
  1107. }
  1108. }
  1109. switchepp_logoutinepp($client, $params);
  1110. }
  1111. } elseif ($_POST['eppCommand'] == 'delete_ns_1') {
  1112. $client = switchepp_clientloginepp($params); #Epp Connection
  1113. if (is_array($client)) {
  1114. $error = $client['msg'];
  1115. }
  1116. $xml1 = switchepp_loggedinepp($client, $params);
  1117. $msg = $xml1['status'];
  1118. $request = $xml1['request'];
  1119. $response_xml = htmlentities($xml1['response']);
  1120. if ($xml1['status'] == "success") {
  1121. $IDN = new IDNA();
  1122. $input = $_POST['nameserver'];
  1123. $nameserver = $IDN->encode($input);
  1124. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1125. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1126. <command>
  1127. <delete>
  1128. <host:delete xmlns:host="urn:ietf:params:xml:ns:host-1.0">
  1129. <host:name>' . $nameserver . '</host:name>
  1130. </host:delete>
  1131. </delete>
  1132. <clTRID>ABC-12345</clTRID>
  1133. </command>
  1134. </epp>';
  1135. $request_xml = $client->request($request);
  1136. $response_xml = htmlentities($request_xml);
  1137. $response_chnge = simplexml_load_string($request_xml);
  1138. $success = $response_chnge->response->result->attributes()->code[0];
  1139. if ($success == '1000') {
  1140. foreach ($response_chnge->response->result as $resp) {
  1141. $msg = $resp->msg; //for whmcs
  1142. }
  1143. } else {
  1144. foreach ($response_chnge->response->result as $resp) {
  1145. $msg = $resp->msg; //for whmcs
  1146. }
  1147. }
  1148. switchepp_logoutinepp($client, $params);
  1149. }
  1150. } elseif ($_POST['eppCommand'] == 'check_domain_1') {
  1151. $client = switchepp_clientloginepp($params); #Epp Connection
  1152. if (is_array($client)) {
  1153. $error = $client['msg'];
  1154. }
  1155. $xml1 = switchepp_loggedinepp($client, $params);
  1156. $msg = $xml1['status'];
  1157. $request = $xml1['request'];
  1158. $response_xml = htmlentities($xml1['response']);
  1159. if ($xml1['status'] == "success") {
  1160. $IDN = new IDNA();
  1161. $input = $_POST['domain_name1'];
  1162. $domainname = $IDN->encode($input);
  1163. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1164. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1165. <command>
  1166. <check>
  1167. <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1168. <domain:name>' . $domainname . '</domain:name>
  1169. </domain:check>
  1170. </check>
  1171. <clTRID>ABC-12345</clTRID>
  1172. </command>
  1173. </epp>';
  1174. $request_xml = $client->request($request);
  1175. $response_xml = htmlentities($request_xml);
  1176. $response_chnge = simplexml_load_string($request_xml);
  1177. $success = $response_chnge->response->result->attributes()->code[0];
  1178. if ($success == '1000') {
  1179. foreach ($response_chnge->response->result as $resp) {
  1180. $msg = $resp->msg; //for whmcs
  1181. }
  1182. } else {
  1183. foreach ($response_chnge->response->result as $resp) {
  1184. $msg = $resp->msg; //for whmcs
  1185. }
  1186. }
  1187. switchepp_logoutinepp($client, $params);
  1188. }
  1189. } elseif ($_POST['eppCommand'] == 'check_domain_2') {
  1190. $client = switchepp_clientloginepp($params); #Epp Connection
  1191. if (is_array($client)) {
  1192. $error = $client['msg'];
  1193. }
  1194. $xml1 = switchepp_loggedinepp($client, $params);
  1195. $msg = $xml1['status'];
  1196. $request = $xml1['request'];
  1197. $response_xml = htmlentities($xml1['response']);
  1198. if ($xml1['status'] == "success") {
  1199. $IDN = new IDNA();
  1200. $input = $_POST['domain_name2'];
  1201. $domainname = $IDN->encode($input);
  1202. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1203. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1204. <command>
  1205. <check>
  1206. <domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1207. <domain:name>' . $domainname . '</domain:name>
  1208. </domain:check>
  1209. </check>
  1210. <clTRID>ABC-12345</clTRID>
  1211. </command>
  1212. </epp>';
  1213. $request_xml = $client->request($request);
  1214. $response_xml = htmlentities($request_xml);
  1215. $response_chnge = simplexml_load_string($request_xml);
  1216. $success = $response_chnge->response->result->attributes()->code[0];
  1217. if ($success == '1000') {
  1218. foreach ($response_chnge->response->result as $resp) {
  1219. $msg = $resp->msg; //for whmcs
  1220. }
  1221. } else {
  1222. foreach ($response_chnge->response->result as $resp) {
  1223. $msg = $resp->msg; //for whmcs
  1224. }
  1225. }
  1226. switchepp_logoutinepp($client, $params);
  1227. }
  1228. } elseif ($_POST['eppCommand'] == 'create_domain_2') {
  1229. $client = switchepp_clientloginepp($params); #Epp Connection
  1230. if (is_array($client)) {
  1231. $error = $client['msg'];
  1232. }
  1233. $xml1 = switchepp_loggedinepp($client, $params);
  1234. $msg = $xml1['status'];
  1235. $request = $xml1['request'];
  1236. $response_xml = htmlentities($xml1['response']);
  1237. if ($xml1['status'] == "success") {
  1238. $data = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  1239. $data = (array) $data;
  1240. $data1 = Capsule::table('switchepp_contact_details')->where('type', 'tech')->first();
  1241. $data1 = (array) $data1;
  1242. #*******************NameServer*************#
  1243. if ($_POST['ns1']) {
  1244. $ns .= '<domain:hostObj>' . $_POST['ns1'] . '</domain:hostObj>';
  1245. }
  1246. if ($_POST['ns2']) {
  1247. $ns .= '<domain:hostObj>' . $_POST['ns2'] . '</domain:hostObj>';
  1248. }
  1249. if ($_POST['ns3']) {
  1250. $ns .= '<domain:hostObj>' . $_POST['ns3'] . '</domain:hostObj>';
  1251. }
  1252. if ($_POST['ns4']) {
  1253. $ns .= '<domain:hostObj>' . $_POST['ns4'] . '</domain:hostObj>';
  1254. }
  1255. if ($ns) {
  1256. $nsnameserver = ' <domain:ns>
  1257. ' . $ns . '
  1258. </domain:ns>';
  1259. }
  1260. $IDN = new IDNA();
  1261. $input = $_POST['domain_name'];
  1262. $domainname = $IDN->encode($input);
  1263. #domian create command
  1264. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1265. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1266. <command>
  1267. <create>
  1268. <domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1269. <domain:name>' . $domainname . '</domain:name>
  1270. ' . $nsnameserver . '
  1271. <domain:registrant>' . $_POST['reg_con_id'] . '</domain:registrant>
  1272. <domain:authInfo>
  1273. <domain:pw>switchpwd' . uniqid() . '</domain:pw>
  1274. </domain:authInfo>
  1275. </domain:create>
  1276. </create>
  1277. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  1278. </command>
  1279. </epp>';
  1280. $request_xml = $client->request($request);
  1281. $response_xml = htmlentities($request_xml);
  1282. $response_chnge = simplexml_load_string($request_xml);
  1283. $success = $response_chnge->response->result->attributes()->code[0];
  1284. if ($success == '1000') {
  1285. foreach ($response_chnge->response->result as $resp) {
  1286. $msg = $resp->msg; //for whmcs
  1287. }
  1288. } else {
  1289. foreach ($response_chnge->response->result as $resp) {
  1290. $msg = $resp->msg; //for whmcs
  1291. }
  1292. }
  1293. switchepp_logoutinepp($client, $params);
  1294. }
  1295. } elseif ($_POST['eppCommand'] == 'create_ns2') {
  1296. $client = switchepp_clientloginepp($params); #Epp Connection
  1297. if (is_array($client)) {
  1298. $error = $client['msg'];
  1299. }
  1300. $xml1 = switchepp_loggedinepp($client, $params);
  1301. $msg = $xml1['status'];
  1302. $request = $xml1['request'];
  1303. $response_xml = htmlentities($xml1['response']);
  1304. if ($xml1['status'] == "success") {
  1305. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1306. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1307. <command>
  1308. <create>
  1309. <host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
  1310. <host:name>' . $_POST['host_name'] . '</host:name>
  1311. <host:addr ip="v4">' . $_POST['ip'] . '</host:addr>
  1312. </host:create>
  1313. </create>
  1314. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  1315. </command>
  1316. </epp>';
  1317. $request_xml = $client->request($request);
  1318. $response_xml = htmlentities($request_xml);
  1319. $response_chnge = simplexml_load_string($request_xml);
  1320. $success = $response_chnge->response->result->attributes()->code[0];
  1321. if ($success == '1000') {
  1322. foreach ($response_chnge->response->result as $resp) {
  1323. $msg = $resp->msg; //for whmcs
  1324. }
  1325. } else {
  1326. foreach ($response_chnge->response->result as $resp) {
  1327. $msg = $resp->msg; //for whmcs
  1328. }
  1329. }
  1330. switchepp_logoutinepp($client, $params);
  1331. }
  1332. } elseif ($_POST['eppCommand'] == 'update_domain1w_2') {
  1333. $client = switchepp_clientloginepp($params); #Epp Connection
  1334. if (is_array($client)) {
  1335. $error = $client['msg'];
  1336. }
  1337. $xml1 = switchepp_loggedinepp($client, $params);
  1338. $msg = $xml1['status'];
  1339. $request = $xml1['request'];
  1340. $response_xml = htmlentities($xml1['response']);
  1341. if ($xml1['status'] == "success") {
  1342. $IDN = new IDNA();
  1343. $input = $_POST['domain'];
  1344. $domainname = $IDN->encode($input);
  1345. $input1 = $_POST['upd_nameserver'];
  1346. $nameserver = $IDN->encode($input1);
  1347. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1348. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1349. <command>
  1350. <update>
  1351. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1352. <domain:name>' . $domainname . '</domain:name>
  1353. <domain:add>
  1354. <domain:ns>
  1355. <domain:hostObj>' . $nameserver . '</domain:hostObj>
  1356. </domain:ns>
  1357. </domain:add>
  1358. <domain:rem/>
  1359. <domain:chg/>
  1360. </domain:update>
  1361. </update>
  1362. <clTRID>Test3</clTRID>
  1363. </command>
  1364. </epp>';
  1365. $request_xml = $client->request($request);
  1366. $response_xml = htmlentities($request_xml);
  1367. $response_chnge = simplexml_load_string($request_xml);
  1368. $success = $response_chnge->response->result->attributes()->code[0];
  1369. if ($success == '1000') {
  1370. foreach ($response_chnge->response->result as $resp) {
  1371. $msg = $resp->msg; //for whmcs
  1372. }
  1373. } else {
  1374. foreach ($response_chnge->response->result as $resp) {
  1375. $msg = $resp->msg; //for whmcs
  1376. }
  1377. }
  1378. switchepp_logoutinepp($client, $params);
  1379. }
  1380. } elseif ($_POST['eppCommand'] == 'update_con_2') {
  1381. $client = switchepp_clientloginepp($params); #Epp Connection
  1382. if (is_array($client)) {
  1383. $error = $client['msg'];
  1384. }
  1385. $xml1 = switchepp_loggedinepp($client, $params);
  1386. $msg = $xml1['status'];
  1387. $request = $xml1['request'];
  1388. $response_xml = htmlentities($xml1['response']);
  1389. if ($xml1['status'] == "success") {
  1390. $data = Capsule::table('switchepp_contact_details')->where('type', 'tech')->first();
  1391. $data = (array) $data;
  1392. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1393. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1394. <command>
  1395. <update>
  1396. <contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  1397. <contact:id>' . $_POST['contact_id_2'] . '</contact:id>
  1398. <contact:chg>
  1399. <contact:postalInfo type="loc">
  1400. <contact:org>' . $_POST['cname'] . '</contact:org>
  1401. <contact:addr>
  1402. <contact:street>' . $_POST['add1'] . '</contact:street>
  1403. <contact:street>' . $_POST['add2'] . '</contact:street>
  1404. <contact:city>' . $_POST['up_city'] . '</contact:city>
  1405. <contact:pc>' . $_POST['pcode'] . '</contact:pc>
  1406. <contact:cc>' . $_POST['up_country'] . '</contact:cc>
  1407. </contact:addr>
  1408. </contact:postalInfo>
  1409. <contact:voice>' . $_POST['up_phone'] . '</contact:voice>
  1410. <contact:fax/>
  1411. <contact:email>' . $_POST['email'] . '</contact:email>
  1412. <contact:authInfo>
  1413. <contact:pw>con-' . time() . '</contact:pw>
  1414. </contact:authInfo>
  1415. </contact:chg>
  1416. </contact:update>
  1417. </update>
  1418. <clTRID>clientref-' . rand(1000, 9999) . '</clTRID>
  1419. </command>
  1420. </epp>';
  1421. $request_xml = $client->request($request);
  1422. $response_xml = htmlentities($request_xml);
  1423. $response_chnge = simplexml_load_string($request_xml);
  1424. $success = $response_chnge->response->result->attributes()->code[0];
  1425. if ($success == '1000') {
  1426. foreach ($response_chnge->response->result as $resp) {
  1427. $msg = $resp->msg; //for whmcs
  1428. }
  1429. } else {
  1430. foreach ($response_chnge->response->result as $resp) {
  1431. $msg = $resp->msg; //for whmcs
  1432. }
  1433. }
  1434. switchepp_logoutinepp($client, $params);
  1435. }
  1436. } elseif ($_POST['eppCommand'] == 'del_domain1') {
  1437. $client = switchepp_clientloginepp($params); #Epp Connection
  1438. if (is_array($client)) {
  1439. $error = $client['msg'];
  1440. }
  1441. $xml1 = switchepp_loggedinepp($client, $params);
  1442. $msg = $xml1['status'];
  1443. $request = $xml1['request'];
  1444. $response_xml = htmlentities($xml1['response']);
  1445. if ($xml1['status'] == "success") {
  1446. $IDN = new IDNA();
  1447. $input = $_POST['domaininfo'];
  1448. $domainname = $IDN->encode($input);
  1449. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1450. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1451. <command>
  1452. <delete>
  1453. <domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1454. <domain:name>' . $domainname . '</domain:name>
  1455. </domain:delete>
  1456. </delete>
  1457. <clTRID>ABC-12345</clTRID>
  1458. </command>
  1459. </epp>';
  1460. $request_xml = $client->request($request);
  1461. $response_xml = htmlentities($request_xml);
  1462. $response_chnge = simplexml_load_string($request_xml);
  1463. $success = $response_chnge->response->result->attributes()->code[0];
  1464. if ($success == '1000') {
  1465. foreach ($response_chnge->response->result as $resp) {
  1466. $msg = $resp->msg; //for whmcs
  1467. }
  1468. } else {
  1469. foreach ($response_chnge->response->result as $resp) {
  1470. $msg = $resp->msg; //for whmcs
  1471. }
  1472. }
  1473. switchepp_logoutinepp($client, $params);
  1474. }
  1475. } elseif ($_POST['eppCommand'] == 'restore_domain1') {
  1476. $client = switchepp_clientloginepp($params); #Epp Connection
  1477. if (is_array($client)) {
  1478. $error = $client['msg'];
  1479. }
  1480. $xml1 = switchepp_loggedinepp($client, $params);
  1481. $msg = $xml1['status'];
  1482. $request = $xml1['request'];
  1483. $response_xml = htmlentities($xml1['response']);
  1484. if ($xml1['status'] == "success") {
  1485. $IDN = new IDNA();
  1486. $input = $_POST['domaininfo'];
  1487. $domainname = $IDN->encode($input);
  1488. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1489. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1490. <command>
  1491. <update>
  1492. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1493. <domain:name>' . $domainname . '</domain:name>
  1494. <domain:chg />
  1495. </domain:update>
  1496. </update>
  1497. <extension>
  1498. <rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
  1499. <rgp:restore op="request" />
  1500. </rgp:update>
  1501. </extension>
  1502. </command>
  1503. </epp>';
  1504. $request_xml = $client->request($request);
  1505. $response_xml = htmlentities($request_xml);
  1506. $response_chnge = simplexml_load_string($request_xml);
  1507. $success = $response_chnge->response->result->attributes()->code[0];
  1508. if ($success == '1000') {
  1509. foreach ($response_chnge->response->result as $resp) {
  1510. $msg = $resp->msg; //for whmcs
  1511. }
  1512. } else {
  1513. foreach ($response_chnge->response->result as $resp) {
  1514. $msg = $resp->msg; //for whmcs
  1515. }
  1516. }
  1517. switchepp_logoutinepp($client, $params);
  1518. }
  1519. } elseif ($_POST['eppCommand'] == 'update_domain_auth') {
  1520. $client = switchepp_clientloginepp($params); #Epp Connection
  1521. if (is_array($client)) {
  1522. $error = $client['msg'];
  1523. }
  1524. $xml1 = switchepp_loggedinepp($client, $params);
  1525. $msg = $xml1['status'];
  1526. $request = $xml1['request'];
  1527. $response_xml = htmlentities($xml1['response']);
  1528. if ($xml1['status'] == "success") {
  1529. $IDN = new IDNA();
  1530. $input = $_POST['domain_update'];
  1531. $domainname = $IDN->encode($input);
  1532. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1533. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1534. <command>
  1535. <update>
  1536. <domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1537. <domain:name>' . $domainname . '</domain:name>
  1538. <domain:chg>
  1539. <domain:authInfo>
  1540. <domain:pw>' . $_POST['auth'] . '</domain:pw>
  1541. </domain:authInfo>
  1542. </domain:chg>
  1543. </domain:update>
  1544. </update>
  1545. <clTRID>Test3</clTRID>
  1546. </command>
  1547. </epp>';
  1548. $request_xml = $client->request($request);
  1549. $response_xml = htmlentities($request_xml);
  1550. $response_chnge = simplexml_load_string($request_xml);
  1551. $success = $response_chnge->response->result->attributes()->code[0];
  1552. if ($success == '1000') {
  1553. foreach ($response_chnge->response->result as $resp) {
  1554. $msg = $resp->msg; //for whmcs
  1555. }
  1556. } else {
  1557. foreach ($response_chnge->response->result as $resp) {
  1558. $msg = $resp->msg; //for whmcs
  1559. }
  1560. }
  1561. switchepp_logoutinepp($client, $params);
  1562. }
  1563. }
  1564. }
  1565. function switchepp_clientloginepp($params)
  1566. {
  1567. try {
  1568. $certFile = __DIR__ . '/../cert/cert.pem';
  1569. $client = new Net_EPP_Client();
  1570. $use_ssl = true;
  1571. if (file_exists($certFile)) {
  1572. $context = stream_context_create();
  1573. stream_context_set_option($context, 'ssl', 'verify_peer', false);
  1574. stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
  1575. stream_context_set_option($context, 'ssl', 'local_cert', $certFile);
  1576. stream_context_set_option($context, 'ssl', 'passphrase', $params['passphrase']);
  1577. $client->connect($params['eppurl'], $params['eppport'], 300, $use_ssl, $context) or die("Not connected with epp server");
  1578. } else {
  1579. $context = false;
  1580. $client->connect($params['eppurl'], $params['eppport'], 300, $use_ssl, $context) or die("Not connected with epp server");
  1581. }
  1582. } catch (Exception $e) {
  1583. $port = $params['eppport'];
  1584. $client = array("error" => 'true', 'msg' => "Connection Error: " . $e->getMessage());
  1585. }
  1586. return $client;
  1587. return $client;
  1588. }
  1589. function switchepp_logoutinepp($client, $params)
  1590. {
  1591. if (is_array($client)) {
  1592. $error = $client['msg'];
  1593. return $error;
  1594. }
  1595. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1596. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1597. <epp:command xmlns:epp="urn:ietf:params:xml:ns:epp-1.0">
  1598. <epp:logout />
  1599. <epp:clTRID>TEST-REGISTRAR-A</epp:clTRID>
  1600. </epp:command>
  1601. </epp>';
  1602. $response = $client->request($request);
  1603. return $response;
  1604. }
  1605. function switchepp_loggedinepp($client, $params)
  1606. {
  1607. if (is_array($client)) {
  1608. $error = $client['msg'];
  1609. return $error;
  1610. }
  1611. if ($params['eppurl'] != '' && $params['eppport'] != '' && $params['registrar_password'] != '' && $params['registrar_id'] != '') {
  1612. $request = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1613. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1614. <command>
  1615. <login>
  1616. <clID>' . $params['registrar_id'] . '</clID>
  1617. <pw>' . $params['registrar_password'] . '</pw>
  1618. <options>
  1619. <version>1.0</version>
  1620. <lang>en</lang>
  1621. </options>
  1622. <svcs>
  1623. <objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
  1624. <objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
  1625. <objURI>urn:ietf:params:xml:ns:host-1.0</objURI>
  1626. <svcExtension>
  1627. <extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
  1628. <extURI>urn:ietf:params:xml:ns:rgp-1.0</extURI>
  1629. <extURI>urn:ietf:params:xml:ns:changePoll-1.0</extURI>
  1630. <extURI>https://www.nic.ch/epp/balance-1.0</extURI>
  1631. <extURI>urn:ietf:params:xml:ns:epp:unhandled-namespaces-1.0</extURI>
  1632. </svcExtension>
  1633. </svcs>
  1634. </login>
  1635. <clTRID>' . rand(9999999, 100000) . '</clTRID>
  1636. </command>
  1637. </epp>';
  1638. $response = $client->request($request);
  1639. $response_chnge = simplexml_load_string($response);
  1640. $success = $response_chnge->response->result->attributes()->code[0];
  1641. if ($success != '1000') {
  1642. foreach ($response_chnge->response->result as $resp) {
  1643. $status = $resp->msg; //for whmcs
  1644. }
  1645. } else
  1646. $status = "success";
  1647. return ["status" => $status, "request" => $request, "response" => $response];
  1648. }
  1649. }
  1650. function switchepp_domain_info($domain)
  1651. {
  1652. $IDN = new IDNA();
  1653. $input = $domain;
  1654. $domainname = $IDN->encode($input);
  1655. $xml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  1656. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  1657. <command>
  1658. <info>
  1659. <domain:info xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
  1660. <domain:name>' . $domainname . '</domain:name>
  1661. </domain:info>
  1662. </info>
  1663. <clTRID>clientref-' . rand(100, 999) . '</clTRID>
  1664. </command>
  1665. </epp>';
  1666. return $xml;
  1667. }
  1668. ?><html>
  1669. <head>
  1670. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  1671. <script>
  1672. $(document).ready(function() {
  1673. $('#selectcommand').change(function() {
  1674. var command = this.value;
  1675. //alert(command);
  1676. if (command == 'create_con1') {
  1677. $('#createContact1').css('display', 'block');
  1678. } else {
  1679. $('#createContact1').css('display', 'none');
  1680. }
  1681. if (command == 'update_con_2') {
  1682. $("#updateContact").css("display", "block");
  1683. } else {
  1684. $("#updateContact").css("display", "none");
  1685. }
  1686. if (command == 'info_tech_contact') {
  1687. $("#info_tech_contact").css("display", "block");
  1688. } else {
  1689. $("#info_tech_contact").css("display", "none");
  1690. }
  1691. if (command == 'create_con2') {
  1692. $('#createContact').css('display', 'block');
  1693. $('#contactInfo').css('display', 'none');
  1694. } else {
  1695. $('#createContact').css('display', 'none');
  1696. }
  1697. if (command == 'transfer_domain1') {
  1698. $('#transferDomain').css('display', 'block');
  1699. } else {
  1700. $('#transferDomain').css('display', 'none');
  1701. }
  1702. if (command == 'create_ns1' || command == 'create_ns2') {
  1703. $("#create_name_server1").css("display", "block");
  1704. } else {
  1705. $("#create_name_server1").css("display", "none");
  1706. }
  1707. if (command == 'check_contact1') {
  1708. $("#check_contact1").css("display", "block");
  1709. } else {
  1710. $("#check_contact1").css("display", "none");
  1711. }
  1712. if (command == 'update_domain1w_2') {
  1713. $("#update_domain1_2").css("display", "block");
  1714. } else {
  1715. $("#update_domain1_2").css("display", "none");
  1716. }
  1717. if (command == 'update_domain_auth') {
  1718. $("#update_domain_auth").css("display", "block");
  1719. } else {
  1720. $("#update_domain_auth").css("display", "none");
  1721. }
  1722. if (command == 'delete_ns_1') {
  1723. $("#delete_ns_1").css("display", "block");
  1724. } else {
  1725. $("#delete_ns_1").css("display", "none");
  1726. }
  1727. if (command == 'contact_delete_1') {
  1728. $("#contact_delete_1").css("display", "block");
  1729. } else {
  1730. $("#contact_delete_1").css("display", "none");
  1731. }
  1732. if (command == 'check_domain_1') {
  1733. $("#check_domain_1").css("display", "block");
  1734. } else {
  1735. $("#check_domain_1").css("display", "none");
  1736. }
  1737. if (command == 'check_domain_2') {
  1738. $("#check_domain_2").css("display", "block");
  1739. } else {
  1740. $("#check_domain_2").css("display", "none");
  1741. }
  1742. if (command == 'create_domain_1' || command == 'create_domain_2') {
  1743. $("#create_domain").css("display", "block");
  1744. } else {
  1745. $("#create_domain").css("display", "none");
  1746. }
  1747. if (command == 'update_domain_1') {
  1748. $("#update_domain_1").css("display", "block");
  1749. } else {
  1750. $("#update_domain_1").css("display", "none");
  1751. }
  1752. if (command == 'update_domain_1_ctsd') {
  1753. $("#update_domain_1_ctsd").css("display", "block");
  1754. } else {
  1755. $("#update_domain_1_ctsd").css("display", "none");
  1756. }
  1757. if (command == 'update_domain_1_dnssec' || command == 'replace_domain_dnssec') {
  1758. $("#update_domain_1_dnssec").css("display", "block");
  1759. } else {
  1760. $("#update_domain_1_dnssec").css("display", "none");
  1761. }
  1762. if (command == 'login') {
  1763. $("#changepw").css('display', 'block');
  1764. } else {
  1765. $("#changepw").css('display', 'none');
  1766. }
  1767. if (command == 'logout') {
  1768. $("#update_domain_auth").css("display", "none");
  1769. }
  1770. if (command == 'contact_info') {
  1771. $('#contactInfo').css('display', 'block');
  1772. $('#createContact').css('display', 'none');
  1773. } else {
  1774. $('#contactInfo').css('display', 'none');
  1775. }
  1776. // if (command == 'contact_delete1') {
  1777. // $('#contactInfo').css('display', 'block');
  1778. // //$('#createContact').css('display', 'none');
  1779. // } else {
  1780. // $('#contactInfo').css('display', 'none');
  1781. // }
  1782. if (command == 'domain_create') {
  1783. $('#optionsforcontacts').css('display', 'block');
  1784. } else {
  1785. $('#optionsforcontacts').css('display', 'none');
  1786. }
  1787. if (command == 'domain_info' || command == 'domain_check' || command == 'domain_delete1' || command == 'del_domain1' || command == 'domain_info1' || command == 'restore_domain1') {
  1788. $('#domaininfo').css('display', 'block');
  1789. } else {
  1790. $('#domaininfo').css('display', 'none');
  1791. }
  1792. $('.det').click(function() {
  1793. // alert(this.id);
  1794. var selected = this.id;
  1795. if (selected == 'existing') {
  1796. $('#selectedoption').val('existing');
  1797. } else {
  1798. $('#selectedoption').val('newdetails');
  1799. $('#createContactfordomain').css('display', 'block');
  1800. }
  1801. });
  1802. });
  1803. });
  1804. </script>
  1805. </head>
  1806. <body>
  1807. <?php
  1808. $rows = Capsule::table('switchepp_login_details')->count();
  1809. $data = Capsule::table('switchepp_login_details')->first();
  1810. $data = (array) $data;
  1811. ?>
  1812. <div style="border:1px solid red;float:left;width: 50%;background: #dff0d8;margin-left: 25%; padding: 10px;border: 1px solid gray;border-radius: 7px;">
  1813. <form action="" method="POST">
  1814. <h3 style="text-align: center;margin-top: 5px;">Try Our EPP Demonstrator:</h3>
  1815. <table style="margin: 12px 88px;">
  1816. <tr>
  1817. <td>
  1818. <table>
  1819. <tr>
  1820. <td>Socket Url :</td>
  1821. <td><input type="text" required="required" name="epp_url" value="<?php echo $data['epp_url']; ?>"></td>
  1822. </tr>
  1823. <tr>
  1824. <td>login Id :</td>
  1825. <td><input type="text" required="required" name="login_id" value="<?php echo $data['username']; ?>"></td>
  1826. </tr>
  1827. </table>
  1828. </td>
  1829. <td>
  1830. <table>
  1831. <tr>
  1832. <td>Port :</td>
  1833. <td><input type="text" required="required" name="port" value="<?php echo $data['port']; ?>"></td>
  1834. </tr>
  1835. <tr>
  1836. <td>Password :</td>
  1837. <td><input type="text" required="required" name="password" value="<?php echo $data['password']; ?>"></td>
  1838. </tr>
  1839. </table>
  1840. </td>
  1841. </tr>
  1842. <input type="hidden" name="save" value="Save To Make Connection">
  1843. <!-- <tr>
  1844. <td colspan="3"><input type="submit" name="save" value="Save To Make Connection"></td>
  1845. </tr>-->
  1846. </table>
  1847. <?php //} if ($rows > 0) {
  1848. ?>
  1849. <p align="center">Select Command to execute</p>
  1850. <p align="center"><select name="eppCommand" id="selectcommand">
  1851. <option value="">Select an EPP command ...</option>
  1852. <!--<optgroup label="EPP Core Commands">-->
  1853. <option value="hello">1 (Hello Command)</option>
  1854. <option value="login">2 (Login and change password)</option>
  1855. <option value="poll">3 (Poll and confirm messages)</option>
  1856. <option value="transfer_domain1">4 (Transfer domain 1)</option>
  1857. <option value="acknoledge_msg">5 (Acknowledge messages) </option>
  1858. <!--</optgroup>-->
  1859. <!--<optgroup label="EPP Contact Commands">-->
  1860. <option value="check_contact1">6 (Check contact 1)</option>
  1861. <option value="create_con1">7 (Create contact 1)</option>
  1862. <option value="create_domain_1">8 (Create domain 1)</option>
  1863. <option value="check_domain_1">9 (Check domain 1)</option>
  1864. <option value="create_ns1">10 (Create name server 1)</option>
  1865. <option value="domain_info">11 (Info domain 1)</option>
  1866. <option value="info_tech_contact">12 (Info Tech Contact)</option>
  1867. <!--</optgroup>-->
  1868. <!--<optgroup label="EPP Domain Commands">-->
  1869. <option value="update_domain_1_ctsd">13 (Update domain 1 (complete transfer))</option>
  1870. <option value="create_con2">14 (Create contact 2)</option>
  1871. <option value="del_domain1">15 (Delete domain 1)</option>
  1872. <option value="restore_domain1">16 (Restore domain 1)</option>
  1873. <option value="update_domain_1">17 (Update domain 1)</option>
  1874. <option value="contact_delete_1">18 (Delete contact 1)</option>
  1875. <option value="delete_ns_1">19 (Delete name server 1)</option>
  1876. <option value="check_domain_2">20 (Check domain 2)</option>
  1877. <option value="create_domain_2">21 (Create domain 2)</option>
  1878. <option value="create_ns2">22 (Create name server 2 subordinate of domain 2</option>
  1879. <option value="update_domain1w_2">23 (Update domain 1 with ns 2)</option>
  1880. <option value="update_con_2">24 (Update contact 2)</option>
  1881. <option value="update_domain_auth">25 (Update domain 2 with authinfo)</option>
  1882. <option value="update_domain_1_dnssec">26 (Update domain 1 with DNSSEC data)</option>
  1883. <option value="domain_info1">27 (Check update with domain info)</option>
  1884. <option value="replace_domain_dnssec">28 (Replace DNSSEC data)</option>
  1885. <option value="logout">29 (Logout)</option>
  1886. <!-- <option value="domain_delete1">Delete domain 1 (for a holder transfer)</option>
  1887. <option value="create_domain_1">Create domain 1</option>
  1888. <option value="check_domain_1">Check domain</option>-->
  1889. <!--</optgroup>-->
  1890. </select>
  1891. </p>
  1892. <p align="center" style="color: #ff0000;"><?php echo $error; ?></p>
  1893. <?php //}
  1894. ?>
  1895. <p style="display: none;" id="hostip" align="center">Enter <input type="text" name="ipaddress" id="field" placeholder="ns1.example-12345.com"></p>
  1896. <p style="display: none;" id="optionsforcontacts">
  1897. Enter Domain Name : <input type="text" name="domain" placeholder="xyz123.qa"> <br> <br>
  1898. <input type="radio" name="usedetails" class="det" id="existing">Use Existing Contacts<br>
  1899. <input type="radio" class="det" name="usedetails" id="newdetails">Make New
  1900. <input type="hidden" id="selectedoption" name="selectedoption" value="">
  1901. </p>
  1902. </table>
  1903. <table style="display: none" id="createContactfordomain">
  1904. <tbody>
  1905. <tr>
  1906. <td>Name </td>
  1907. <td><input type="text" name="c_fullname" placeholder="your fullname"></td>
  1908. </tr>
  1909. <tr>
  1910. <td>Company name </td>
  1911. <td><input type="text" name="c_companyname" placeholder="your company name"></td>
  1912. </tr>
  1913. <tr>
  1914. <td>Address1 </td>
  1915. <td><input type="text" name="c_address1" placeholder="your address"></td>
  1916. </tr>
  1917. <tr>
  1918. <td>Address2 </td>
  1919. <td><input type="text" name="c_address2" placeholder="alternate address"></td>
  1920. </tr>
  1921. <tr>
  1922. <td>City </td>
  1923. <td><input type="text" name="c_city" placeholder="your city"></td>
  1924. </tr>
  1925. <tr>
  1926. <td>Postcode </td>
  1927. <td><input type="text" name="c_postcode" placeholder="zip code"></td>
  1928. </tr>
  1929. <tr>
  1930. <td>Country </td>
  1931. <td><select name="country" id="country" tabindex="13"><?php
  1932. foreach (Capsule::table('switchepp_manage_country')->get() as $rowdata) {
  1933. $rowdata = (array) $rowdata;
  1934. ?>
  1935. <option value="<?php echo $rowdata['country_key']; ?>"><?php echo $rowdata['country']; ?></option>
  1936. <?php } ?>
  1937. </select></td>
  1938. </tr>
  1939. <tr>
  1940. <td>Phone Number</td>
  1941. <td><input type="text" name="c_phone" placeholder="+1.123456789"></td>
  1942. </tr>
  1943. <tr>
  1944. <td>Email</td>
  1945. <td><input type="email" name="c_email" placeholder="abc@abc123.com"></td>
  1946. </tr>
  1947. </tbody>
  1948. </table>
  1949. <table style="display: none;" id="createContact">
  1950. <tbody>
  1951. <tr>
  1952. <td>Contact id</td>
  1953. <td><input name="contact_id2" type="text" value="" placeholder="TEST-123456"></td>
  1954. </tr>
  1955. <tr>
  1956. <td>Name </td>
  1957. <td><input type="text" name="fullname" placeholder="your fullname"></td>
  1958. </tr>
  1959. <tr>
  1960. <td>Company name </td>
  1961. <td><input type="text" name="companyname" placeholder="your company name"></td>
  1962. </tr>
  1963. <tr>
  1964. <td>Address1 </td>
  1965. <td><input type="text" name="address1" placeholder="your address"></td>
  1966. </tr>
  1967. <tr>
  1968. <td>Address2 </td>
  1969. <td><input type="text" name="address2" placeholder="alternate address"></td>
  1970. </tr>
  1971. <tr>
  1972. <td>City </td>
  1973. <td><input type="text" name="city" placeholder="your city"></td>
  1974. </tr>
  1975. <tr>
  1976. <td>Postcode </td>
  1977. <td><input type="text" name="postcode" placeholder="zip code"></td>
  1978. </tr>
  1979. <tr>
  1980. <td>Country </td>
  1981. <td><select name="country" id="country" tabindex="13"><?php
  1982. foreach (Capsule::table('switchepp_manage_country')->get() as $rowdata) {
  1983. $rowdata = (array) $rowdata;
  1984. ?>
  1985. <option value="<?php echo $rowdata['country_key']; ?>"><?php echo $rowdata['country']; ?></option>
  1986. <?php } ?>
  1987. </select></td>
  1988. </tr>
  1989. <tr>
  1990. <td>Phone Number</td>
  1991. <td><input type="text" name="phone" placeholder="0123567890"></td>
  1992. </tr>
  1993. <tr>
  1994. <td>Email</td>
  1995. <td><input type="email" name="email2" placeholder="abc@abc123.com"></td>
  1996. </tr>
  1997. </tbody>
  1998. </table>
  1999. <table style="display: none;" id="check_contact1">
  2000. <tr>
  2001. <td>Contact id 1:</td>
  2002. <td></td>
  2003. <td><input type="text" value="" name="cont1"></td>
  2004. </tr>
  2005. <!-- <tr>
  2006. <td>Contact id 2:</td>
  2007. <td></td>
  2008. <td><input type="text" value="" name="cont2"></td>
  2009. </tr>-->
  2010. </table>
  2011. <table style="display:none;" id="info_tech_contact">
  2012. <tr>
  2013. <td>Contact id:</td>
  2014. <td></td>
  2015. <td><input type="text" name="cont_info" value="" placeholder="TEST-12345"></td>
  2016. </tr>
  2017. </table>
  2018. <table style="display:none;" id="contact_delete_1">
  2019. <tr>
  2020. <td>Contact Id:</td>
  2021. <td></td>
  2022. <td><input type="text" value="" name="del_contact_id" placeholder="TEST-12345"></td>
  2023. </tr>
  2024. </table>
  2025. <table style="display: none;" id="createContact1">
  2026. <tbody>
  2027. <tr>
  2028. <td>Contact id</td>
  2029. <td><input name="contact_id" type="text" value="" placeholder="TEST-123456"></td>
  2030. </tr>
  2031. <tr>
  2032. <td>Name </td>
  2033. <td><input type="text" name="cfullname" placeholder="your fullname"></td>
  2034. </tr>
  2035. <tr>
  2036. <td>Company name </td>
  2037. <td><input type="text" name="ccompanyname" placeholder="your company name"></td>
  2038. </tr>
  2039. <tr>
  2040. <td>Address1 </td>
  2041. <td><input type="text" name="caddress1" placeholder="your address"></td>
  2042. </tr>
  2043. <tr>
  2044. <td>Address2 </td>
  2045. <td><input type="text" name="caddress2" placeholder="alternate address"></td>
  2046. </tr>
  2047. <tr>
  2048. <td>City </td>
  2049. <td><input type="text" name="ccity" placeholder="your city"></td>
  2050. </tr>
  2051. <tr>
  2052. <td>Postcode </td>
  2053. <td><input type="text" name="cpostcode" placeholder="zip code"></td>
  2054. </tr>
  2055. <tr>
  2056. <td>Country </td>
  2057. <td><select name="ccountry" id="country" tabindex="13"><?php
  2058. foreach (Capsule::table('switchepp_manage_country')->get() as $rowdata) {
  2059. $rowdata = (array) $rowdata;
  2060. ?>
  2061. <option value="<?php echo $rowdata['country_key']; ?>"><?php echo $rowdata['country']; ?></option>
  2062. <?php } ?>
  2063. </select></td>
  2064. </tr>
  2065. <tr>
  2066. <td>Phone Number</td>
  2067. <td><input type="text" name="cphone" placeholder="0123567890"></td>
  2068. </tr>
  2069. <tr>
  2070. <td>Email</td>
  2071. <td><input type="email" name="cemail" placeholder="abc@abc123.com"></td>
  2072. </tr>
  2073. </tbody>
  2074. </table>
  2075. <?php
  2076. $client = switchepp_clientloginepp($params); #Epp Connection
  2077. if (is_array($client)) {
  2078. $error = $client['msg'];
  2079. } {
  2080. $xml1 = switchepp_loggedinepp($client, $params);
  2081. $result = Capsule::table('switchepp_contact_details')->where('type', 'admin')->first();
  2082. $result = (array) $result;
  2083. if ($result['contact_id'] != '') {
  2084. $request_xml = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2085. <epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
  2086. <command>
  2087. <info>
  2088. <contact:info
  2089. xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
  2090. <contact:id>' . $result['contact_id'] . '</contact:id>
  2091. </contact:info>
  2092. </info>
  2093. <clTRID>ABC-12345</clTRID>
  2094. </command>
  2095. </epp>';
  2096. $get_response_xml = $client->request($request_xml);
  2097. $get_xml_data = simplexml_load_string($get_response_xml);
  2098. $get_data = $get_xml_data->response->resData->children("contact", true)->infData;
  2099. }
  2100. }
  2101. ?>
  2102. <table style="display: none;" id="updateContact">
  2103. <tbody>
  2104. <!--<tr><td>Contact Type </td><td><select name="typeOfcontact"><option value="">Choose</option><option value="registrant">Registrant</option><option value="tech">Tech</option><option value="billing">Billing</option><option value="admin">Admin</option></select></td></tr>-->
  2105. <tr>
  2106. <td>Contact ID 2 </td>
  2107. <td><input type="text" name="contact_id_2" placeholder="TEXT-123344" value=""></td>
  2108. </tr>
  2109. <tr>
  2110. <td>Name </td>
  2111. <td><input type="text" name="fname" placeholder="your fullname" value="<?php echo $get_data->postalInfo->name; ?>"></td>
  2112. </tr>
  2113. <tr>
  2114. <td>Company name </td>
  2115. <td><input type="text" name="cname" placeholder="your company name" value="<?php echo $get_data->postalInfo->org; ?>"></td>
  2116. </tr>
  2117. <tr>
  2118. <td>Address1 </td>
  2119. <td><input type="text" name="add1" placeholder="your address" value="<?php echo $get_data->postalInfo->addr->street[0]; ?>"></td>
  2120. </tr>
  2121. <tr>
  2122. <td>Address2 </td>
  2123. <td><input type="text" name="add2" placeholder="alternate address" value="<?php echo $get_data->postalInfo->addr->street[1]; ?>"></td>
  2124. </tr>
  2125. <tr>
  2126. <td>City </td>
  2127. <td><input type="text" name="up_city" placeholder="your city" value="<?php echo $get_data->postalInfo->addr->city; ?>"></td>
  2128. </tr>
  2129. <tr>
  2130. <td>Postcode </td>
  2131. <td><input type="text" name="pcode" placeholder="zip code" value="<?php echo $get_data->postalInfo->addr->pc; ?>"></td>
  2132. </tr>
  2133. <tr>
  2134. <td>Country </td>
  2135. <td><select name="up_country" id="country" tabindex="13"><?php
  2136. foreach (Capsule::table('switchepp_manage_country')->get() as $rowdata) {
  2137. $rowdata = (array) $rowdata;
  2138. ?>
  2139. <option value="<?php echo $rowdata['country_key']; ?>" <?php if ($rowdata['country_key'] == $get_data->postalInfo->addr->cc) { ?> selected="selected" <?php } ?>><?php echo $rowdata['country']; ?></option>
  2140. <?php } ?>
  2141. </select></td>
  2142. </tr>
  2143. <tr>
  2144. <td>Phone Number</td>
  2145. <td><input type="text" name="up_phone" placeholder="+1.123456789" value="<?php echo $get_data->voice; ?>"></td>
  2146. </tr>
  2147. <tr>
  2148. <td>Email</td>
  2149. <td><input type="up_email" name="email" placeholder="abc@abc123.com" value="<?php echo $get_data->email; ?>"></td>
  2150. </tr>
  2151. </tbody>
  2152. </table>
  2153. <table style="display: none;" id="contactInfo">
  2154. <tbody>
  2155. <tr>
  2156. </tr>
  2157. </tbody>
  2158. </table>
  2159. <table style="display: none;" id="transferDomain">
  2160. <tr>
  2161. <td>Transfer Domain Name:</td>
  2162. <td></td>
  2163. <td><input type="text" name="trnsfr_domain" value="" placeholder="example.ch"></td>
  2164. </tr>
  2165. <tr>
  2166. <td>Password:</td>
  2167. <td></td>
  2168. <td><input type="text" name="trnsfr_pw" value=""></td>
  2169. </tr>
  2170. </table>
  2171. <table style="display: none;" id="update_domain_auth">
  2172. <tr>
  2173. <td>Domain Name:</td>
  2174. <td></td>
  2175. <td><input type="text" value="" name="domain_update" placeholder="example.ch"></td>
  2176. </tr>
  2177. <tr>
  2178. <td>Domain Password:</td>
  2179. <td></td>
  2180. <td><input type="text" value="" name="auth"></td>
  2181. </tr>
  2182. </table>
  2183. <table style="display: none;" id="update_domain1_2">
  2184. <tr>
  2185. <td>Domain Name:</td>
  2186. <td></td>
  2187. <td><input type="text" value="" name="domain" placeholder="example.ch"></td>
  2188. </tr>
  2189. <tr>
  2190. <td>Name Server:</td>
  2191. <td></td>
  2192. <td><input type="text" value="" name="upd_nameserver"></td>
  2193. </tr>
  2194. </table>
  2195. <table style="display:none" id="create_name_server1">
  2196. <tr>
  2197. <td>Name Server:</td>
  2198. <td></td>
  2199. <td><input type="text" name="host_name" value="" placeholder="ns1.yourdomain.ch"></td>
  2200. </tr>
  2201. <tr>
  2202. <td>Ip Address:</td>
  2203. <td></td>
  2204. <td><input type="text" name="ip" value="" placeholder="xx.xx.xx.xx"></td>
  2205. </tr>
  2206. </table>
  2207. <table style="display: none;" id="create_domain">
  2208. <tr>
  2209. <td>Domain Name:</td>
  2210. <td></td>
  2211. <td><input type="text" value="" name="domain_name" placeholder="example.ch"></td>
  2212. </tr>
  2213. <tr>
  2214. <td>Reg Contact id:</td>
  2215. <td></td>
  2216. <td><input type="text" value="" name="reg_con_id" placeholder="TEST-12345"></td>
  2217. </tr>
  2218. <tr>
  2219. <td>Tech Contact id:</td>
  2220. <td></td>
  2221. <td><input type="text" value="" name="tech_con_id" placeholder="TEST-12345"></td>
  2222. </tr>
  2223. <tr>
  2224. <td>Name Server 1:</td>
  2225. <td></td>
  2226. <td><input type="text" value="ns1.yourdomain.com" name="ns1"></td>
  2227. </tr>
  2228. <tr>
  2229. <td>Name Server 2:</td>
  2230. <td></td>
  2231. <td><input type="text" value="ns2.yourdomain.com" name="ns2"></td>
  2232. </tr>
  2233. <tr>
  2234. <td>Name Server 3:</td>
  2235. <td></td>
  2236. <td><input type="text" value="" name="ns3"></td>
  2237. </tr>
  2238. <tr>
  2239. <td>Name Server 4:</td>
  2240. <td></td>
  2241. <td><input type="text" value="" name="ns4"></td>
  2242. </tr>
  2243. <tr>
  2244. <td>Name Server 5:</td>
  2245. <td></td>
  2246. <td><input type="text" value="" name="ns5"></td>
  2247. </tr>
  2248. <tr>
  2249. <td>DNSSEC:</td>
  2250. <td></td>
  2251. <td><input type="checkbox" value="1" name="cr_d1_dnssec"></td>
  2252. </tr>
  2253. </table>
  2254. <table style="display: none;" id="update_domain_1">
  2255. <tr>
  2256. <td>Domain Name:</td>
  2257. <td></td>
  2258. <td><input type="text" value="" name="up_domain_name1" placeholder="example.ch"></td>
  2259. </tr>
  2260. <tr>
  2261. <td>Registrant Id:</td>
  2262. <td></td>
  2263. <td><input type="text" value="" name="up_contact_id" placeholder="TEST-12345-1"></td>
  2264. </tr>
  2265. </table>
  2266. <table style="display: none;" id="update_domain_1_ctsd">
  2267. <tr>
  2268. <td>Domain Name:</td>
  2269. <td></td>
  2270. <td><input type="text" value="" name="up_domain_name2" placeholder="example.ch"></td>
  2271. </tr>
  2272. <tr>
  2273. <td>Registrant Id (For Change):</td>
  2274. <td></td>
  2275. <td><input type="text" value="" name="chng_contact_id" placeholder="TEST-12345-1"></td>
  2276. </tr>
  2277. <tr>
  2278. <td>Tech Id (For Add):</td>
  2279. <td></td>
  2280. <td><input type="text" value="" name="add_contact_id" placeholder="TEST-12345-1"></td>
  2281. </tr>
  2282. <tr>
  2283. <td>Add Name Server:</td>
  2284. <td></td>
  2285. <td><input type="text" value="ns2.yourdomain.com" name="up_add_ns"></td>
  2286. </tr>
  2287. <tr>
  2288. <td>Remove Name Server:</td>
  2289. <td></td>
  2290. <td><input type="text" value="ns1.yourdomain.com" name="up_rem_ns"></td>
  2291. </tr>
  2292. <!-- <tr>
  2293. <td>DNSSEC:</td>
  2294. <td></td>
  2295. <td><input type="checkbox" value="1" name="up_d_dnssec"></td>
  2296. </tr>-->
  2297. </table>
  2298. <table style="display: none;" id="update_domain_1_dnssec">
  2299. <tr>
  2300. <td>Domain Name:</td>
  2301. <td></td>
  2302. <td><input type="text" value="" name="up_domain_name" placeholder="example.ch"></td>
  2303. </tr>
  2304. <tr>
  2305. <td>KeyTag:</td>
  2306. <td></td>
  2307. <td><input type="text" value="" name="keyTag" placeholder="123456"></td>
  2308. </tr>
  2309. <tr>
  2310. <td>Alg:</td>
  2311. <td></td>
  2312. <td><select name="alg">
  2313. <option>5</option>
  2314. <option>7</option>
  2315. <option>8</option>
  2316. <option>10</option>
  2317. <option>13</option>
  2318. <option>14</option>
  2319. <option>15</option>
  2320. <option>16</option>
  2321. </select></td>
  2322. </tr>
  2323. <tr>
  2324. <td>DigestType:</td>
  2325. <td></td>
  2326. <td><select name="digesttype">
  2327. <option>1</option>
  2328. <option>2</option>
  2329. <option>4</option>
  2330. </select></td>
  2331. </tr>
  2332. </table>
  2333. <table style="display: none;" id="check_domain_1">
  2334. <tr>
  2335. <td>Domain Name:</td>
  2336. <td></td>
  2337. <td><input type="text" value="" name="domain_name1" placeholder="example.ch"></td>
  2338. </tr>
  2339. </table>
  2340. <table style="display: none;" id="check_domain_2">
  2341. <tr>
  2342. <td>Domain Name 2:</td>
  2343. <td></td>
  2344. <td><input type="text" value="" name="domain_name2" placeholder="example2.ch"></td>
  2345. </tr>
  2346. </table>
  2347. <table id="delete_ns_1" style="display:none;">
  2348. <tr>
  2349. <td>Name Server</td>
  2350. <td></td>
  2351. <td><input type="text" name="nameserver" value="" placeholder="ns1.yourdomain.ch"></td>
  2352. </tr>
  2353. </table>
  2354. <table style="display: none;" id="changepw">
  2355. <tr>
  2356. <td>Username Name:</td>
  2357. <td></td>
  2358. <td><input type="text" name="username" value=""></td>
  2359. </tr>
  2360. <tr>
  2361. <td>Old Password:</td>
  2362. <td></td>
  2363. <td><input type="text" name="old_pw" value=""></td>
  2364. </tr>
  2365. <tr>
  2366. <td>New Password:</td>
  2367. <td></td>
  2368. <td><input type="text" name="new_pw" value=""></td>
  2369. </tr>
  2370. </table>
  2371. <table id="domaininfo" style="display: none;">
  2372. <tr>
  2373. <td>Enter domain:</td>
  2374. <td></td>
  2375. <td><input type="text" name="domaininfo" placeholder="example.ch"></td>
  2376. </tr>
  2377. </table>
  2378. <?php
  2379. // if ($rows > 0) {
  2380. ?>
  2381. <p align="center"><input type="submit" name="execute" value="Execute"></p>
  2382. <p align="center"><?php echo $msg; ?></p>
  2383. <?php // }
  2384. ?>
  2385. </form>
  2386. Epp Request : <textarea rows="15" cols="85" style="line-height: 20px;padding: 5px;word-break: break-word;display:<?php
  2387. if (!empty($request)) {
  2388. echo 'display:block';
  2389. } else {
  2390. echo 'display:none';
  2391. }
  2392. ?>"><?php
  2393. if (!empty($request)) {
  2394. echo $request;
  2395. }
  2396. ?></textarea>
  2397. <p>************************************************************************************</p>
  2398. Epp Response : <textarea rows="20" cols="85" style="line-height: 20px;padding: 5px;word-break: break-word;display:<?php
  2399. if (!empty($response_xml)) {
  2400. echo 'display:block';
  2401. } else {
  2402. echo 'display:none';
  2403. }
  2404. ?>"><?php
  2405. if (!empty($response_xml)) {
  2406. echo $response_xml;
  2407. }
  2408. ?></textarea>
  2409. </div>
  2410. </body>
  2411. </html>