<?php /** * AgileBill - Open Billing Software * * This body of work is free software; you can redistribute it and/or * modify it under the terms of the Open AgileBill License * License as published at http://www.agileco.com/agilebill/license1-4.txt * * For questions, help, comments, discussion, etc., please join the * Agileco community forums at http://forum.agileco.com/ * * @link http://www.agileco.com/ * @copyright 2004-2008 Agileco, LLC. * @license http://www.agileco.com/agilebill/license1-4.txt * @author Tony Landis <tony@agileco.com> * @package AgileBill * @version 1.4.93 */ /* ============================================================================ Available Config Variables: ============================================================================ debug (0/1 test/live) osrs_user osrs_testkey osrs_livekey osrs_enviroment (0/1 test/live) ============================================================================ */ set_magic_quotes_runtime(0); error_reporting(0); require_once '_opensrs-php/openSRS_base.php'; class openSRS extends openSRS_base { var $USERNAME = OPENSRS_USERNAME; var $TEST_PRIVATE_KEY = TEST_PRIVATE_KEY; var $LIVE_PRIVATE_KEY = LIVE_PRIVATE_KEY; var $environment = 'TEST'; # 'TEST' or 'LIVE' var $crypt_type = 'DES'; # 'DES' or 'BLOWFISH'; var $protocol = 'XCP'; # 'XCP' for domains, 'TPP' for email and certs var $connect_timeout = 20; # seconds var $read_timeout = 20; # seconds var $RELATED_TLDS = array( array( '.ca' ), array( '.com', '.net', '.org' ), array( '.co.uk', '.org.uk' ), array( '.vc' ), array( '.cc' ), ); } class plg_reg_OPENSRS { function plg_reg_OPENSRS ($obj) { $this->registrar = $obj->registrar; $this->domainrs = $obj->domain; $this->domain_name = $obj->domain['domain_name'].'.'.$obj->domain['domain_tld']; $this->domain = $obj->domain['domain_name']; $this->tld = $obj->domain['domain_tld']; $this->term = $obj->domain['domain_term']; if(!empty($obj->server['ns_primary'])) $this->ns1 = $obj->server['ns_primary']; else $this->ns1 = $obj->registrar['ns1']; if(!empty($obj->server['ns_secondary'])) $this->ns2 = $obj->server['ns_secondary']; else $this->ns2 = $obj->registrar['ns2']; if(!empty($obj->server['ns_ip_primary'])) $this->nsip1 = $obj->server['ns_ip_primary']; else $this->nsip1 = $obj->registrar['ns1ip']; if(!empty($obj->server['ns_ip_secondary'])) $this->nsip2 = $obj->server['ns_ip_secondary']; else $this->nsip2 = $obj->registrar['ns2ip']; # get the account details for the registrant: $db = &DB(); $q = "SELECT * FROM ".AGILE_DB_PREFIX."account WHERE id = ".$db->qstr( $this->domainrs['account_id'] )." AND site_id = ".$db->qstr(DEFAULT_SITE); $rs = $db->Execute($q); if ($rs->RecordCount() == 1) { $this->account = $rs->fields; } # get the country code for this account: $q = "SELECT three_code FROM ".AGILE_DB_PREFIX."country WHERE id = ".$db->qstr( $this->account['country_id'] )." AND site_id = ".$db->qstr(DEFAULT_SITE); $rs = $db->Execute($q); if ($rs->RecordCount() == 1) { $this->country = $rs->fields['three_code']; } } ###################### ### Register domain ###################### function register() { if($this->registrar['osrs_user'] == 1) $mode = 'live'; else $mode = 'test'; define('OPENSRS_USERNAME', $this->registrar['osrs_user']); define('TEST_PRIVATE_KEY', $this->registrar['osrs_testkey']); define('LIVE_PRIVATE_KEY', $this->registrar['osrs_livekey']); $O = new openSRS; $cmd = array( 'action' => 'sw_register', 'object' => 'DOMAIN', 'attributes' => array( 'object' => 'DOMAIN', 'protocal' => 'XCP', 'registrant_ip' => '', 'domain' => $this->domain_name, 'affiliate_id' => '', 'auto_renew' => '0', 'ca_link_domain' => '0', 'custom_nameservers' => '1', 'custom_tech_contact' => '0', 'domain_description' => '', 'encoding_type' => '', 'flock_domain' => '', 'handle' => 'process', 'isa_trademark' => '0', 'lang_pref' => 'EN', 'legal_type' => 'CCT', 'link_domains' => '0', //'nameserver_list' => '', 'period' => $this->term, 'rant_no' => '', 'reg_domain' => '', 'reg_password' => '', 'reg_type' => 'new', 'reg_username' => $this->account['username'], 'nameserver_list' => array( '0' => array( 'sortorder' => '1', 'name' => $this->ns1 ), '1' => array( 'sortorder' => '2', 'name' => $this->ns2 ), ), 'tld_data' => array( 'forwarding_email' => $this->account['email'], 'nexus' => array( 'app_purpose' => '', 'category' => '', 'validator' => '', ), ), 'contact_set' => array( 'admin' => array ( 'address1' => $this->account['address1'], 'address2' => $this->account['address2'], 'address3' => '', 'city' => $this->account['city'], 'country' => 'US', 'email' => $this->account['email'], 'fax' => '', 'first_name' => $this->account['first_name'], 'last_name' => $this->account['last_name'], 'lang_pref' => 'EN', 'org_name' => $this->account['company'], 'phone' => '888-555-1212', 'postal_code' => $this->account['zip'], 'state' => $this->account['state'], 'url' => 'http://' . $this->domain_name ), 'billing' => array ( 'address1' => $this->account['address1'], 'address2' => $this->account['address2'], 'address3' => '', 'city' => $this->account['city'], 'country' => 'US', 'email' => $this->account['email'], 'fax' => '', 'first_name' => $this->account['first_name'], 'last_name' => $this->account['last_name'], 'lang_pref' => 'EN', 'org_name' => $this->account['company'], 'phone' => '888-555-1212', 'postal_code' => $this->account['zip'], 'state' => $this->account['state'], 'url' => 'http://' . $this->domain_name ), 'owner' => array ( 'address1' => $this->account['address1'], 'address2' => $this->account['address2'], 'address3' => '', 'city' => $this->account['city'], 'country' => 'US', 'email' => $this->account['email'], 'fax' => '', 'first_name' => $this->account['first_name'], 'last_name' => $this->account['last_name'], 'lang_pref' => 'EN', 'org_name' => $this->account['company'], 'phone' => '888-555-1212', 'postal_code' => $this->account['zip'], 'state' => $this->account['state'], 'url' => 'http://' . $this->domain_name ), ) ) ); # get the result $result = $O->send_cmd($cmd); # debug if($this->registrar['debug'] == 1) { echo "<h1>Command</h1>\n"; print_r($cmd); echo "<HR />"; echo "<h1>Result</h1>\n"; print_r($result); echo "<h1>Command</h1>\n"; print_r($cmd); echo "<HR />"; echo "<h1>Log</h1>\n"; $O->showlog(); echo "<HR />"; echo "<h1>OPS XML Log</h1>\n"; $O->_OPS->showlog('xml'); echo "<HR />"; echo "<h1>OPS Raw Log</h1>\n"; $O->_OPS->showlog('raw'); } if(@$result['is_success'] == 1) return TRUE; else return FALSE; } ### Renew domain function renew() { return false; } ### Transfer domain function transfer() { return false; } ### Park domain function park() { return false; } } ?>