AuthorizationCreateCompany - Thiago-Medeiros/pagseguro-php-sdk GitHub Wiki

Solicitando autorização - Sugestão de Cadastro: Empresarial

Para utilizar o modelo de aplicações do PagSeguro é necessário que você crie uma aplicação. Esta aplicação será responsável por centralizar as autorizações concedidas pelos seus clientes. Para criar uma nova aplicação, acesse os menus Aplicações >>> Minhas aplicações ou o link https://pagseguro.uol.com.br/aplicacao/listagem.jhtml e clique em “Criar nova aplicação”

Exemplo

/**
 * Ao criar uma autorização você também pode encaminhar os dados do cliente. Assim, caso o e-mail do vendedor enviado
 * via API já esteja cadastrado na base, será sugerido o login com este e-mail. Caso ele não tenha conta, os dados
 * serão utilizados como sugestão para o cadastro e assim facilitando o cadastro do cliente.
 */
$authorization = new \PagSeguro\Domains\Requests\Authorization();

/**
 * Identificador usado para fazer referência à autorização da sua requisição.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: Livre, com limite total de 20 caracteres.
 *
 * @var string $reference
 */
$authorization->setReference($reference);

/**
 * URL para onde o comprador será redirecionado após a finalização do fluxo de autorização. Caso seja informado na
 * chamada, será utilizada esta ao invés da URL informada no cadastro da aplicação.
 *
 * Presença: Obrigatória.
 * Tipo: Texto.
 * Formato: Uma URL válida, com limite de 255 caracteres
 *
 * @var string $redirectUrl
 */
$authorization->setRedirectUrl($redirectUrl);

/**
 * URL para onde a notificação será direcionada após a finalização do fluxo de autorização. Caso seja informado na
 * chamada, será utilizada esta ao invés da URL informada no cadastro da aplicação.
 *
 * Presença: Obrigatória.
 * Tipo: Texto.
 * Formato: Uma URL válida, com limite de 255 caracteres.
 *
 * @var string $notificationUrl
 */
$authorization->setNotificationUrl($notificationUrl);

/**
 * Permissões a serem autorizadas
 * Presença: Obrigatória.
 * Tipo: Texto.
 *
 * Valores aceitos:
 * CREATE_CHECKOUTS - A aplicação poderá direcionar compradores para o PagSeguro e intermediar pagamentos
 * RECEIVE_TRANSACTION_NOTIFICATIONS - A aplicação poderá receber e consultar notificações das transações que ela
 * intermediou SEARCH_TRANSACTIONS - A aplicação poderá consultar as transações que ela intermediou
 * MANAGE_PAYMENT_PRE_APPROVALS - A aplicação poderá gerenciar e utilizar pré-aprovações de pagamentos
 * DIRECT_PAYMENT - A aplicação poderá gerenciar pagamentos via checkout transparente.
 */
$authorization->addPermission(\PagSeguro\Enum\Authorization\Permissions::CREATE_CHECKOUTS);
$authorization->addPermission(\PagSeguro\Enum\Authorization\Permissions::SEARCH_TRANSACTIONS);
$authorization->addPermission(\PagSeguro\Enum\Authorization\Permissions::RECEIVE_TRANSACTION_NOTIFICATIONS);
$authorization->addPermission(\PagSeguro\Enum\Authorization\Permissions::MANAGE_PAYMENT_PRE_APPROVALS);
$authorization->addPermission(\PagSeguro\Enum\Authorization\Permissions::DIRECT_PAYMENT);

/**
 * Agrupa os dados do responsável legal pela empresa
 *
 * @var \PagSeguro\Domains\Authorization\Partner $authorizationPartner
 */
$authorizationPartner = new \PagSeguro\Domains\Authorization\Partner(
    'John Doe',
    new DateTime('10-10-1990'),
    $document,
    new \PagSeguro\Domains\Phone('12', '13141231', \PagSeguro\Enum\Authorization\PhoneEnum::HOME)
);

/**
 * Agrupa os dados de empresa
 *
 * @var \PagSeguro\Domains\Authorization\Company $authorizationCompany
 */
$authorizationCompany = new \PagSeguro\Domains\Authorization\Company(
    'John Doe',
    'http://www.example.com',
    new \PagSeguro\Domains\Document('CNPJ', '32137524000115'),
    new \PagSeguro\Domains\Phone('12', '13131313', \PagSeguro\Enum\Authorization\PhoneEnum::BUSINESS),
    /** @var \PagSeguro\Domains\Address $address */
    $address,
    $authorizationPartner
);

/** @var \PagSeguro\Domains\Authorization\Account $accountCompany */
$accountCompany = new \PagSeguro\Domains\Authorization\Account('[email protected]', $authorizationCompany);

/** @var \PagSeguro\Domains\Requests\Authorization $authorization */
$authorization->setAccount(
    $accountCompany
);

try {
    $response = $authorization->register(
        /** @var \PagSeguro\Domains\AccountCredentials | \PagSeguro\Domains\ApplicationCredentials $credential */
        $credential
    );
} catch (Exception $e) {
    die($e->getMessage());
}