Skip to content

Instantly share code, notes, and snippets.

@viniciusbig
Created October 10, 2018 19:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save viniciusbig/a2907f88d3ac955516df6b841991e55d to your computer and use it in GitHub Desktop.
Save viniciusbig/a2907f88d3ac955516df6b841991e55d to your computer and use it in GitHub Desktop.
// Obter identificação do comprador
var getSenderHash = function () {
console.log('getSenderHash >>>');
PagSeguroDirectPayment.onSenderHashReady(function(response) {
if (response.status == 'error') {
console.log(response.message);
return false;
}
console.log(response);
hashField.val(response.senderHash);
formEl.submit();
});
}
var bindEvents = function() {
submitEl.click(function (e) {
e.preventDefault();
getSenderHash();
});
}
<?php
$boleto = new \PagSeguro\Domains\Requests\DirectPayment\Boleto();
/**
* Modo do pagamento
*
* Presença: Obrigatória.
* Tipo: Texto.
* Formato: aceita a opção default.
*
* @var string $paymentMode
* @options=['default']
*/
$paymentMode = 'DEFAULT';
$boleto->setMode($paymentMode);
/**
* Especifica o e-mail que vai receber o pagamento
*
* Presença: Obrigatória.
* Tipo: Texto.
* Presença: Obrigatória.
* 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.
*
* @var string $receiverEmail
*/
$receiverEmail = 'meu-email-pagseguro@uol.com.br';
$boleto->setReceiverEmail($receiverEmail);
/**
* 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: Somente o valor BRL é aceito.
*
* @var string $currency
* @options=['BRL']
*/
$currency = 'BRL';
$boleto->setCurrency($currency);
/**
* 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];
// $boleto->setItems($items);
// Add an item for this payment request
$boleto->addItems()->withParameters('0001', 'Notebook prata', 2, 130.00);
$boleto->addItems()->withParameters('0002', 'Notebook preto', 2, 430.00);
/**
* Código de referência da transação. Informa o código que foi usado para fazer referência ao pagamento. Este código
* foi fornecido no momento do pagamento e é útil para vincular as transações do PagSeguro às vendas registradas no seu
* sistema.
*
* Presença: Opcional.
* Formato: Livre, com o limite de 200 caracteres.
* Tipo: Texto.
*
* @var string $reference
*/
$reference = 'LIBPHP000001-boleto';
$boleto->setReference($reference);
/**
* Valor extra. Informa um valor extra que foi somado ou subtraído do valor pago pelo comprador. Este valor é
* especificado por você no pagamento e pode representar um valor que você quer cobrar separadamente do comprador ou um
* desconto que quer dar a ele.
*
* Presença: Obrigatória.
* Tipo: Número.
* Formato: Decimal, com duas casas decimais separadas por ponto (“.”).
* Por exemplo, 1234.56 ou -1234.56.
*
* @var float $amount
*/
$amount = 11.5;
$boleto->setExtraAmount($amount);
/**
* Nome completo do comprador. Informa o nome completo do comprador que realizou o pagamento.
*
* Presença: Opcional.
* Tipo: Texto.
* Formato:* No mínimo duas sequências de caracteres, com o limite total de 50 caracteres.
*
* @var string $senderName
*/
$senderName = 'João Comprador';
$boleto->setSender()->setName($senderName);
/**
* E-mail do comprador. Informa o e-mail do comprador que realizou a transação.
*
* Presença: Obrigatória.
* Tipo: Texto.
* Formato: um e-mail válido (p.e., usuario\@site.com.br), com no máximo 60 caracteres.
*
* @var string $senderEmail
*/
$senderEmail = 'email-cliente@sandbox.pagseguro.com.br';
$boleto->setSender()->setEmail($senderEmail);
/** @var \PagSeguro\Domains\Phone $phone */
// $boleto->setSender()->setPhone()->instance($phone);
$boleto->setSender()->setPhone()->withParameters(11, 56273440);
/** @var \PagSeguro\Domains\Document $document */
// $boleto->setSender()->setDocument()->instance($document);
$boleto->setSender()->setDocument()->withParameters('CPF', '357.681.098-62');
/**
* Identificador do vendedor (fingerprint) gerado pelo JavaScript do PagSeguro.
*
* Presença: Obrigatória.
* Tipo: Texto.
* Formato: Obtido a partir de uma chamada javascript PagseguroDirectPayment.getSenderHash().
*
* @var string $senderHash
*
* @see https://devpagseguro.readme.io/docs/checkout-web-usando-a-sua-tela#obter-indicacao-do-comprador
*/
$senderHash = $data['senderHash']; // pega a hash no POST
$boleto->setSender()->setHash($senderHash);
// $clientIp = $this->request->clientIp();
// $boleto->setSender()->setIp($clientIp);
/** @var \PagSeguro\Domains\Address $address */
// $boleto->setShipping()->setAddress()->instance($address);
// $boleto->setShipping()->setAddress()->withParameters(
// 'Av. Brig. Faria Lima','1384', 'Jardim Paulistano', '01452002',
// 'São Paulo', 'SP', 'BRA', 'apto. 114'
// );
/**
* Obrigatoriedade do endereço de entrega
* Define a obrigatoriedade dos campos de endereço.
*
* Tipo: Boolean.
* Formato: Somente os valores true e false são aceitos.
* Presença: Obrigatória.
*
* @var string $shippingRequired
* @options=['TRUE', 'FALSE']
*/
$shippingRequired = 'FALSE';
$boleto->setShipping()->setAddressRequired()->withParameters($shippingRequired);
try {
$credential = \PagSeguro\Configuration\Configure::getAccountCredentials();
/** @var \PagSeguro\Domains\Requests\Authorization $authorization */
$response = $boleto->register(
/** @var \PagSeguro\Domains\AccountCredentials | \PagSeguro\Domains\ApplicationCredentials $credential */
$credential
);
/**
* You can use methods like getCode() to get the transaction
* code and getPaymentLink() for the Payment's URL.
*/
debug($result->getCode());
} catch (Exception $e) {
debug($e);die;
die($e->getMessage());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment