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

Recorrência transparente: Criação de recorrência

Permite criar um plano de pagamento recorrente que concentra todas as configurações de pagamento.

Exemplo

$plan = new \PagSeguro\Domains\Requests\DirectPreApproval\Plan();

/**
 * URL para onde o assinante será redirecionado após a finalização do fluxo de pagamento. Este valor somente será
 * utilizado caso queira utilizar este plano em um Pagamento Recorrente via botão.
 *
 * Opcional
 *
 * @var string $redirectUrl
 */
$plan->setRedirectURL($redirectUrl);

/**
 * Código/Identificador para fazer referência a assinatura em seu sistema.
 *
 * @var string $reference
 */
$plan->setReference($reference);

/**
 * URL para onde o assinante será redirecionado, durante o fluxo de pagamento, caso o mesmo queira alterar/revisar as
 * regras da assinatura. Este valor somente será utilizado caso queira utilizar este plano em um Pagamento Recorrente
 * via botão.
 *
 * Opcional
 *
 * @var string $preApprovalReviewUrl
 */
$plan->setReviewURL($preApprovalReviewUrl);

/**
 * Quantidade máxima de consumidores que podem aderir ao plano.
 *
 * Opcional
 *
 * @var integer $preApprovalMaxUses
 */
$plan->setMaxUses($preApprovalMaxUses);

/**
 * Especifica o e-mail que deve aparecer na tela de pagamento. Formato: Um e-mail válido, com limite de 60 caracteres.
 * O e-mail informado deve estar vinculado à conta PagSeguro que está realizando a chamada à API.
 *
 * @var string $receiverEmail
 */
$plan->setReceiver()->withParameters($receiverEmail);

/**
 * Nome/Identificador do plano. Formato: Livre, com limite de 100 caracteres.
 *
 * @var string $preApprovalName
 */
$plan->setPreApproval()->setName($preApprovalName);

/**
 * Indica o modelo de cobrança do pagamento recorrente. Use AUTO para o modelo pré-pago e MANUAL para o modelo pós-pago.
 *
 * @var string $preApprovalCharge
 * @options=['AUTO', 'MANUAL']
 */
$plan->setPreApproval()->setCharge($preApprovalCharge);

/**
 * Periodicidade da cobrança.
 *
 * @var string $preApprovalPeriod
 * @options=['WEEKLY', 'MONTHLY', 'BIMONTHLY', 'TRIMONTHLY', 'SEMIANNUALLY', 'YEARLY']
 */
$plan->setPreApproval()->setPeriod($preApprovalPeriod);

/**
 * Valor exato de cada cobrança. Obrigatório para o modelo AUTO. Formato: Decimal, com duas casas decimais separadas
 * por ponto (p.e, 1234.56). Deve ser um valor maior ou igual a 1.00 e menor ou igual a 2000.00.
 *
 * Opcional
 *
 * @var float $preApprovalAmountPerPayment
 */
$plan->setPreApproval()->setAmountPerPayment($preApprovalAmountPerPayment);

/**
 * Valor da taxa de adesão. Sempre será cobrada juntamente com a primeira parcela do pagamento, independente se o plano
 * é pré-pago ou pós-pago. Formato: Decimal, com duas casas decimais separadas por ponto (p.e, 1234.56), maior ou igual
 * a 0.00 e menor ou igual a 1000000.00.
 *
 * Opcional
 *
 * @var float $preApprovalMembershipFee
 */
$plan->setPreApproval()->setMembershipFee($preApprovalMembershipFee);

/**
 * Período de teste, em dias. A recorrência mantém o status INITIATED durante o período de testes, de modo que a
 * primeira cobrança só ocorrerá após esse período, permitindo que a recorrência mude para ACTIVE. No caso de pagamento
 * pré-pago, a cobrança se dá imediatamente após o fim do período de testes; no caso de pagamento pós-pago, a cobrança
 * ocorre após o período de cobrança somado ao período de testes. Formato: Inteiro, maior ou igual a 1 e menor ou igual
 * a 1000000.
 *
 * Opcional
 *
 * @var integer $preApprovalTrialPeriod
 */
$plan->setPreApproval()->setTrialPeriodDuration($preApprovalTrialPeriod);

$plan->setPreApproval()->setExpiration()->withParameters(
    /** @var integer $expirationUnit Um número inteiro maior ou igual a 1 e menor ou igual a 1000000. */
    $expirationUnit,
    /**
     * @var string $expirationvalue Combine com value para obter a duração da recorrência, ex: 2 YEARS.
     * @options=['DAYS', 'MONTHS', 'YEARS']
     */
    $expirationvalue
);

/**
 * Descrição do plano.
 *
 * Opcional
 *
 * @var string $preApprovalDetails
 */
$plan->setPreApproval()->setDetails($preApprovalDetails);

/**
 * Fim da vigência do plano. As cobranças cessarão após esta data. Formato: YYYY-MM-DDThh:mm:ss.sTZD. Valores aceitos:
 * Se preApprovalInitialDate for informado então preApprovalInitialDate < preApprovalFinalDate <=
 * preApprovalInitialDate + valor definido no perfil, caso contrário, data atual < preApprovalFinalDate <= data atual +
 * valor definido no perfil. Obrigatório se expiration for nulo, proibido se expiration não for nulo.
 *
 * Opcional
 *
 * @var string $preApprovalFinalDate
 */
$plan->setPreApproval()->setFinalDate($preApprovalFinalDate);

/**
 * Url para onde o assinante será redirecionado caso este solicite o cancelamento da assinatura no site do PagSeguro
 * (fluxo de retenção).
 *
 * Opcional
 *
 * @var string $preApprovalCancelurl
 */
$plan->setPreApproval()->setCancelURL($preApprovalCancelurl);

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