Skip to content
This repository has been archived by the owner on Oct 15, 2024. It is now read-only.

Criar um pagamento

MbNakaya edited this page Dec 4, 2017 · 9 revisions

Criando um pagamento

Nos exemplos abaixo criaremos pagamentos para um pedido já criado, cada um com um método de pagamento diferente.

A variável $order, no exemplo, é um objeto do tipo Orders, que é o pedido no qual o pagamento será adicionado. Você pode conferir como cadastrar um novo pedido ou obter um pedido já cadastrado nas seções Criar um pedido ou Consultar um pedido.

No caso de um pagamento por cartão de crédito, note que é preciso passar o pagador (portador do cartão), através da variável $holder, que carrega um objeto do tipo Holder.

Cartão de crédito

Para pagamentos feitos por cartão de crédito, é possível parcelar, por isso o método setInstallmentCount determina o número de parcelas. Também é possível criar pagamentos pré-autorizados usando o método setDelayCapture.

Sem certificação PCI

Sem a certificação PCI é necessário criptografar os dados sensíveis do cartão para dar mais segurança às transações. Você pode encontrar como criptografar seus dados neste link. Após a criptografia nós usaremos a hash gerada no método setCreditCardHash.

try {
    $hash = 'i1naupwpTLrCSXDnigLLTlOgtm+xBWo6iX54V/hSyfBeFv3rvqa1VyQ8/pqWB2JRQX2GhzfGppXFPCmd/zcmMyDSpdnf1GxHQHmVemxu4AZeNxs+TUAbFWsqEWBa6s95N+O4CsErzemYZHDhsjEgJDe17EX9MqgbN3RFzRmZpJqRvqKXw9abze8hZfEuUJjC6ysnKOYkzDBEyQibvGJjCv3T/0Lz9zFruSrWBw+NxWXNZjXSY0KF8MKmW2Gx1XX1znt7K9bYNfhA/QO+oD+v42hxIeyzneeRcOJ/EXLEmWUsHDokevOkBeyeN4nfnET/BatcDmv8dpGXrTPEoxmmGQ==';
    $payment = $order->payments()
        ->setCreditCardHash($hash, $holder)
	->setInstallmentCount(3)
	->setStatementDescriptor('teste de pag')
	->execute();
	print_r($payment);
} catch (Exception $e) {
    printf($e->__toString());
}
Com certificação PCI

Com a certificação PCI o método que deve ser usado para pagamentos com cartão de crédito é osetCreditCard.

try {
    $expiration_month = 12;
    $expiration_year = 21;
    $number_cc = '4073020000000002';
    $cvc = '123';
    $store_cc = true;
    $payment = $order->payments()
	->setCreditCard($expiration_month, $expiration_year,$number_cc, $cvc, $holder, $store_cc)
	->setInstallmentCount(3)
	->setStatementDescriptor('teste de pag')
	->execute();
	print_r($payment);
} catch (Exception $e) {
    printf($e->__toString());
}

Boleto

No pagamento com boleto são enviados apenas 3 parâmetros:

  • URL do logo que você deseja que apareça, representada abaixo com a variável: $logo_uri;
  • Data de vencimento, representada pela variável $expiration_date;
  • Linhas de instrução do boleto, são apenas 3 linhas. Representadas pela variável $instruction_lines, que é um array.
$logo_uri = 'https://cdn.moip.com.br/wp-content/uploads/2016/05/02163352/logo-moip.png';
$expiration_date = new DateTime();
$instruction_lines = ['INSTRUÇÃO 1', 'INSTRUÇÃO 2', 'INSTRUÇÃO 3'];
try {
    $payment = $order->payments()  
        ->setBoleto($expiration_date, $logo_uri, $instruction_lines)
        ->execute();
    print_r($payment);
} catch (Exception $e) {
    printf($e->__toString());
}

Débito Online

No pagamento por débito online também são enviados apenas 3 parâmetros:

  • URL do logo que você deseja que apareça, representada abaixo com a variável: $return_uri;
  • Data de vencimento, representada pela variável $expiration_date;
  • Número do banco representado pela variável $bank_number.
try {
    $bank_number = '001';
    $return_uri = 'https://moip.com.br';
    $expiration_date = new DateTime();
    $payment = $order->payments()                    
        ->setOnlineBankDebit($bank_number, $expiration_date, $return_uri)
        ->execute();
    print_r($payment);
} catch (Exception $e) {
    printf($e->__toString());
}
Clone this wiki locally