Enom API: Интеграция

C++ JAVA
Post Reply
User avatar
Ticketa
Турист
Турист
Posts: 480
Joined: Mon Feb 27, 2012 1:54 pm
Answers: 23
Location: in /root
Contact:

Enom API: Интеграция

Post by Ticketa » Fri Jun 12, 2020 5:44 pm

Привет,
някой правил ли е интеграция на следното API: https://www.phpclasses.org/package/3219 ... view_files

Всичко което е вътре - работи коректно.
Проблема ми е, че не мога да създам допълнителна функция, която да взема цените и при проверка на домейн да добавя в табличен вид цените:

name | price | buy/bussy
blabla.com | 19.99$ | buy
blabla.net | 19.99$ | bussy

В момента проверявам така:

Code: Select all

$enom = new EnomService('USERNAME_ENOM', 'APIKEY_ENOM'', false, true); //user,pass,ssl,live(false,true)
$enom->debug = false;

            $finddomain = ( isset($_GET['finddomain']) && trim($_GET['finddomain']) != '' ) ? trim($_GET['finddomain']) : '';
			$finddomain = str_replace(' ', '-', $finddomain);
	        if ( $finddomain ) {
                foreach ($enom->checkDomain($finddomain, 'com,net,co.uk,biz,org,info,us,eu') as $key => $element) {
                    if($element == 1) {
                        $element = '<a href="#purchase" class="btn btn-primary">Buy this domain</a>';
                    } else {
                        $element = 'домейна е зает';
                    }
                      //for($i=0; $i<count($enom->GrabPrice()); $i++)
                      //{
                        //if($enom->GrabPrice()['tld'.$i] == 'com') {
                            //$price = $enom->GrabPrice()['registerprice'.$i];
                        //} elseif($enom->GrabPrice()['tld'.$i] == 'com') {
                            //$price = $enom->GrabPrice()['registerprice'.$i];
                        //}
                      //}
        			//print($enom->GrabPrice()['tld1']);die;
        			//print($enom->GrabPrice()['registerprice1']);die;
                    $content .= '
        		<tr>
            		<td>'.$key.'</td>
            		<td><b>€ 16.79 / per year</b><p>VAT is included. Promo price for first year.</p></td>
            		<td>'.$element.'</td>
        		</tr>';
                }
            }
Всичко е коректно с малката разлика, че не успявам да взема цените от профила в Еном.

За целта тръгнах към класа да добавя нова функция: GrabPrice(), обаче не работи коректно:

Code: Select all

  function GrabPrice()
  {
    /*
    SimpleXMLElement Object
    (
        [tld] => com
        [tldid] => 0
        [registerprice] => 15.95
        [resellerpricereg] => 15.50
        [registerenabled] => true
        [renewprice] => 15.95
        [resellerpricerenew] => 15.50
        [renewenabled] => true
        [transferprice] => 15.95
        [resellerpricetran] => 15.50
        [transferenabled] => true
        [rgpprice] => 250.00
        [resellerpricergp] => 250.00
        [rgpenabled] => true
        [IDNCategory] => 
    )
    */
    $this->_setCommand('PE_GetRetailPricing');

    $this->addParam( 'TLDOnly', 1);
    $this->addParam( 'years', 1);

    if( !$this->process() || '0' != $this->response['ErrCount'] )
    {
      return $this->_returnError();
    }
    $result = array();
    
    return $this->response;
  }

Обаче, не успявам да взема коректно данните. В самата функция съм сложил примерен масив с коректни данни (как изглежда масива , който търся)

Иначе, работещ вариант за вземане на цените е този:

Code: Select all

// Grab domain pricing data from ENOM
$apiUrl = 'http://reseller.enom.com/interface.asp?command=PE_GetRetailPricing&TLDOnly=1&years=1&uid=' . ENOM_USER . '&pw=' . ENOM_PASS . '&responsetype=xml';

$xmlFeed = simplexml_load_file($apiUrl);
$enomData = $xmlFeed->pricestructure->tld;

$enomDataCount = count($xmlFeed->pricestructure->tld);
if ($enomDataCount > 0) {
	$count = 0;
	for ($i = 0; $i < $enomDataCount; $i++) {
		$tldFromEnom = (string)$enomData[$i]->tld;

		if (in_array_r($tldFromEnom, $tldsList)) {
            
            $registerPrice  = $enomData[$i]->registerprice;
            $renewPrice     = $enomData[$i]->renewprice;
            $transferPrice  = $enomData[$i]->transferprice;

			echo "Found domain '{$tldFromEnom}' and grabbed prices";

			$relid = $tldsList[$tldFromEnom]['id'];

			echo "id: " . $relid.'<br>';

			echo 'registerPrice: $'.$registerPrice.'<br>';
			echo 'renewPrice: $'.$renewPrice.'<br>';
			echo 'transferPrice: $'.$transferPrice.'<br>';

			$count++;
		}
	}
}
Просто трябва да го "нагодя" към класа с функцията , за да сработи :? :? :? :? :? :?

П.С. Не желая да използвам whmcs.

ЕДИТ:
След малко тестове коригирах функцията (по-горе) и успях да print_r-на резултата , изглежда по този начин:

Code: Select all

Array
(
    [tld1] => com
    [tldid1] => 0
    [registerprice1] => 15.95
    [resellerpricereg1] => 15.50
    [registerenabled1] => true
    [renewprice1] => 15.95
    [resellerpricerenew1] => 15.50
    [renewenabled1] => true
    [transferprice1] => 15.95
    [resellerpricetran1] => 15.50
    [transferenabled1] => true
    [rgpprice1] => 250.00
    [resellerpricergp1] => 250.00
    [rgpenabled1] => true
    [IDNCategory1] => 
    [tld2] => net
    [tldid2] => 1
    [registerprice2] => 23.95
    [resellerpricereg2] => 17.00
    [registerenabled2] => true
    [renewprice2] => 23.95
    [resellerpricerenew2] => 17.00
    [renewenabled2] => true
    [transferprice2] => 23.95
    [resellerpricetran2] => 17.00
    [transferenabled2] => true
    [rgpprice2] => 250.00
    [resellerpricergp2] => 250.00
    [rgpenabled2] => true
    [IDNCategory2] => 
    [tld3] => me
    [tldid3] => 93
    [registerprice3] => 37.50
    [resellerpricereg3] => 22.00
    [registerenabled3] => true
    [renewprice3] => 37.50
    [resellerpricerenew3] => 22.00
    [renewenabled3] => true
    [transferprice3] => 37.50
    [resellerpricetran3] => 22.00
    [transferenabled3] => true
    [rgpprice3] => 250.00
    [resellerpricergp3] => 250.00
    [rgpenabled3] => true
    [IDNCategory3] => 
Остава само да се "внедри" към foreach , частта , съдействие?

Би трябвало да изглежда нещо подобно за по-добро структуриране:

Code: Select all

SimpleXMLElement Object
(
    [tld] => com
    [tldid] => 0
    [registerprice] => 15.95
    [resellerpricereg] => 15.50
    [registerenabled] => true
    [renewprice] => 15.95
    [resellerpricerenew] => 15.50
    [renewenabled] => true
    [transferprice] => 15.95
    [resellerpricetran] => 15.50
    [transferenabled] => true
    [rgpprice] => 250.00
    [resellerpricergp] => 250.00
    [rgpenabled] => true
    [IDNCategory] => SimpleXMLElement Object
        (
        )

)

User avatar
Ticketa
Турист
Турист
Posts: 480
Joined: Mon Feb 27, 2012 1:54 pm
Answers: 23
Location: in /root
Contact:

Re: Enom API: Интеграция

Post by Ticketa » Sat Jun 13, 2020 4:16 pm

Някой ?

Post Reply