struzik-vladislav/epp-ext-iddigital-charge

Charge extension provided by Identity Digital (https://www.identity.digital/).

v1.3.0 2024-02-07 01:05 UTC

This package is auto-updated.

Last update: 2024-03-31 00:27:47 UTC


README

Build Status Latest Stable Version Total Downloads Software License StandWithUkraine

Charge extension provided by Identity Digital.

Extension for struzik-vladislav/epp-client library.

Usage

<?php

use Psr\Log\NullLogger;
use Struzik\EPPClient\EPPClient;
use Struzik\EPPClient\Extension\IdDigital\Charge\ChargeExtension;
use Struzik\EPPClient\Extension\IdDigital\Charge\Request\Addon\ChargeAgreement;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeCheckData;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeCreateData;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeInfoData;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeRenewData;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeTransferData;
use Struzik\EPPClient\Extension\IdDigital\Charge\Response\Addon\ChargeUpdateData;
use Struzik\EPPClient\Extension\RGP\Request\RGPRequestRestoreRequest;
use Struzik\EPPClient\Node\Domain\DomainContactNode;
use Struzik\EPPClient\Node\Domain\DomainPeriodNode;
use Struzik\EPPClient\Request\Domain\CheckDomainRequest;
use Struzik\EPPClient\Request\Domain\CreateDomainRequest;
use Struzik\EPPClient\Request\Domain\InfoDomainRequest;
use Struzik\EPPClient\Request\Domain\RenewDomainRequest;
use Struzik\EPPClient\Request\Domain\RequestDomainTransferRequest;

// ...

$client->pushExtension(new ChargeExtension('http://www.unitedtld.com/epp/charge-1.0', new NullLogger()));

// ...

/**
 * Domain check example.
 */
$request = new CheckDomainRequest($client);
$request->addDomain('premium.tld');

$response = $client->send($request);
$checkDomainAddon = $response->findExtAddon(ChargeCheckData::class);
if ($checkDomainAddon instanceof ChargeCheckData and $checkDomainAddon->isExistsChargeData('premium.tld')) {
    $category = $checkDomainAddon->getCategory('premium.tld');
    $categoryName = $checkDomainAddon->getCategoryName('premium.tld');
    $type = $checkDomainAddon->getType('premium.tld');
    $createAmount = $checkDomainAddon->getCreateAmount('premium.tld');
    $renewAmount = $checkDomainAddon->getRenewAmount('premium.tld');
    $transferAmount = $checkDomainAddon->getTransferAmount('premium.tld');
    $restoreAmount = $checkDomainAddon->getRestoreAmount('premium.tld');
}

/**
 * Domain info example.
 */
$request = new InfoDomainRequest($client);
$request->setDomain('premium.tld');

$response = $client->send($request);
$infoDomainAddon = $response->findExtAddon(ChargeInfoData::class);
if ($infoDomainAddon instanceof ChargeInfoData) {
    $category = $infoDomainAddon->getCategory();
    $categoryName = $infoDomainAddon->getCategoryName();
    $type = $infoDomainAddon->getType();
    $createAmount = $infoDomainAddon->getCreateAmount();
    $renewAmount = $infoDomainAddon->getRenewAmount();
    $transferAmount = $infoDomainAddon->getTransferAmount();
    $restoreAmount = $infoDomainAddon->getRestoreAmount();
}

/**
 * Domain create example.
 */
$request = new CreateDomainRequest($client);
$request->setDomain('premium.tld');
$request->setPeriod(1);
$request->setUnit(DomainPeriodNode::UNIT_YEAR);
$request->setRegistrant('abc123');
$request->setContacts([
    DomainContactNode::TYPE_ADMIN => 'abc123',
    DomainContactNode::TYPE_TECH => 'abc123',
]);
$request->setPassword('2fooBAR');
$agreementAddon = (new ChargeAgreement())
    ->setCategory('premium')
    ->setCategoryName('AAA')
    ->setType('price')
    ->setCreateAmount('25.00');
$request->addExtAddon($agreementAddon);

$response = $client->send($request);
$createDomainAddon = $response->findExtAddon(ChargeCreateData::class);
if ($createDomainAddon instanceof ChargeCreateData) {
    $category = $createDomainAddon->getCategory();
    $categoryName = $createDomainAddon->getCategoryName();
    $type = $createDomainAddon->getType();
    $createAmount = $createDomainAddon->getCreateAmount();
    $renewAmount = $createDomainAddon->getRenewAmount();
    $transferAmount = $createDomainAddon->getTransferAmount();
    $restoreAmount = $createDomainAddon->getRestoreAmount();
}

/**
 * Domain renew example.
 */
$request = new RenewDomainRequest($client);
$request->setDomain('premium.tld');
$request->setExpiryDate(DateTime::createFromFormat('!Y-m-d', '2023-01-01'));
$request->setPeriod(1);
$request->setUnit(DomainPeriodNode::UNIT_YEAR);
$agreementAddon = (new ChargeAgreement())
    ->setCategory('premium')
    ->setCategoryName('AAA')
    ->setType('price')
    ->setRenewAmount('25.00');
$request->addExtAddon($agreementAddon);

$response = $client->send($request);
$renewDomainAddon = $response->findExtAddon(ChargeRenewData::class);
if ($renewDomainAddon instanceof ChargeRenewData) {
    $category = $renewDomainAddon->getCategory();
    $categoryName = $renewDomainAddon->getCategoryName();
    $type = $renewDomainAddon->getType();
    $createAmount = $renewDomainAddon->getCreateAmount();
    $renewAmount = $renewDomainAddon->getRenewAmount();
    $transferAmount = $renewDomainAddon->getTransferAmount();
    $restoreAmount = $renewDomainAddon->getRestoreAmount();
}

/**
 * Domain transfer example.
 */
$request = new RequestDomainTransferRequest($client);
$request->setDomain('premium.tld');
$request->setPassword('2fooBAR');
$agreementAddon = (new ChargeAgreement())
    ->setCategory('premium')
    ->setCategoryName('AAA')
    ->setType('price')
    ->setTransferAmount('25.00');
$request->addExtAddon($agreementAddon);

$response = $client->send($request);
$transferDomainAddon = $response->findExtAddon(ChargeTransferData::class);
if ($transferDomainAddon instanceof ChargeTransferData) {
    $category = $transferDomainAddon->getCategory();
    $categoryName = $transferDomainAddon->getCategoryName();
    $type = $transferDomainAddon->getType();
    $createAmount = $transferDomainAddon->getCreateAmount();
    $renewAmount = $transferDomainAddon->getRenewAmount();
    $transferAmount = $transferDomainAddon->getTransferAmount();
    $restoreAmount = $transferDomainAddon->getRestoreAmount();
}

/**
 * Domain restore example.
 */
$request = new RGPRequestRestoreRequest($client);
$request->setDomain('testprem.tld');
$agreementAddon = (new ChargeAgreement())
    ->setCategory('premium')
    ->setCategoryName('AAA')
    ->setType('price')
    ->setRestoreAmount('25.00');
$request->addExtAddon($agreementAddon);

$response = $client->send($request);
$updateDomainAddon = $response->findExtAddon(ChargeUpdateData::class);
if ($updateDomainAddon instanceof ChargeUpdateData) {
    $category = $updateDomainAddon->getCategory();
    $categoryName = $updateDomainAddon->getCategoryName();
    $type = $updateDomainAddon->getType();
    $createAmount = $updateDomainAddon->getCreateAmount();
    $renewAmount = $updateDomainAddon->getRenewAmount();
    $transferAmount = $updateDomainAddon->getTransferAmount();
    $restoreAmount = $updateDomainAddon->getRestoreAmount();
}