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

Checkout Recorrência: Redirecionamento

Exemplo

$payment = new \PagSeguro\Domains\Requests\Payment();

/**
 * Nome completo do comprador. Especifica o nome completo do comprador que está realizando o pagamento. Este campo é
 * opcional e você pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele
 * preencha esses dados novamente no PagSeguro.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.
 *
 * @var string $senderName
 */
$payment->setSender()->setName($senderName);

/**
 * E-mail do comprador. Especifica o e-mail do comprador que está realizando o pagamento. Este campo é opcional e você
 * pode enviá-lo caso já tenha capturado os dados do comprador em seu sistema e queira evitar que ele preencha esses
 * dados novamente no PagSeguro.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: um e-mail válido (p.e., [email protected]), com no máximo 60 caracteres.
 *
 * @var string $senderEmail
 */
$payment->setSender()->setEmail($senderEmail);

/** @var \PagSeguro\Domains\Phone $phone */
$payment->setSender()->setPhone()->instance($phone);

/** @var \PagSeguro\Domains\Document $document */
$payment->setSender()->setDocument()->instance($document);

/** @var \PagSeguro\Domains\Address $address */
$payment->setShipping()->setAddress()->instance($address);

/** @var \PagSeguro\Domains\ShippingCost $shippingCost */
$payment->setShipping()->setCost()->instance($shippingCost);

/** @var \PagSeguro\Domains\ShippingType $shippingType */
$payment->setShipping()->setType()->instance($shippingType);

/**
 * Lista de itens contidos na transação. O número de itens sob este elemento corresponde ao valor de itemCount.
 *
 * @var \PagSeguro\Domains\Item $item
 * @var array $items
 */
$items = [$item];

$payment->setItems($items);

/**
 * Moeda utilizada. Indica a moeda na qual o pagamento será feito. No momento, a única opção disponível é BRL (Real).
 *
 * Presença: Obrigatória.
 * Tipo: Texto.
 * Formato: Case sensitive. Somente o valor BRL é aceito.
 *
 * @var string $currency
 */
$payment->setCurrency($currency);

/**
 * Valor extra. Especifica um valor extra que deve ser adicionado ou subtraído ao valor total do pagamento. Esse valor
 * pode representar uma taxa extra a ser cobrada no pagamento ou um desconto a ser concedido, caso o valor seja
 * negativo.
 *
 * Presença: Opcional.
 * Tipo: Número.
 * Formato: Decimal (positivo ou negativo), com duas casas decimais separadas por ponto (p.e., 1234.56 ou -1234.56),
 * maior ou igual a -9999999.00 e menor ou igual a 9999999.00. Quando negativo, este valor não pode ser maior ou igual
 * à soma dos valores dos produtos.
 *
 * @var string $extraAmount
 */
$payment->setExtraAmount($extraAmount);

/**
 * Código de referência. Define um código para fazer referência ao pagamento. Este código fica associado à transação
 * criada pelo pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu sistema.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: Livre, com o limite de 200 caracteres.
 *
 * @var string $reference
 */
$payment->setReference($reference);

/**
 * URL de redirecionamento após o pagamento. Determina a URL para a qual o comprador será redirecionado após o final do
 * fluxo de pagamento. Este parâmetro permite que seja informado um endereço de específico para cada pagamento
 * realizado.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: Uma URL válida, com limite de 255 caracteres.
 *
 * @var string $redirectUrl
 */
$payment->setRedirectUrl($redirectUrl);

/**
 * URL para envio de notificações sobre o pagamento. Determina a URL para a qual o PagSeguro enviará os códigos de
 * notificação relacionados ao pagamento. Toda vez que houver uma mudança no status da transação e que demandar sua
 * atenção, uma nova notificação será enviada para este endereço.
 *
 * Presença: Opcional.
 * Tipo: Texto.
 * Formato: Uma URL válida, com limite de 255 caracteres.
 *
 * @var string $notificationUrl
 */
$payment->setNotificationUrl($notificationUrl);

/*
 * Pre Approval info
 */
$payment->setPreApproval()->setCharge(PRE_APPROVAL_CHARGE);
$payment->setPreApproval()->setName(PRE_APPROVAL_NAME);
$payment->setPreApproval()->setDetails(PRE_APPROVAL_DETAILS);
$payment->setPreApproval()->setAmountPerPayment(PRE_APPROVAL_AMOUNT_PER_PAYMENT);
$payment->setPreApproval()->setMaxAmountPerPeriod(PRE_APPROVAL__AMOUNT_PER_PERIOD);
$payment->setPreApproval()->setPeriod(PRE_APPROVAL_PERIOD);
$payment->setPreApproval()->setMaxTotalAmount(PRE_APPROVAL_MAX_TOTAL_AMOUNT);
$payment->setPreApproval()->setInitialDate(PRE_APPROVAL_INITIAL_DATE);
$payment->setPreApproval()->setFinalDate(PRE_APPROVAL_FINAL_DATE);

$payment->setReviewUrl($reviewUrl);

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