This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/plugins/registrar/OPENSRS.php
2008-11-26 14:50:40 -08:00

290 lines
7.7 KiB
PHP

<?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;
}
}
?>