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

Criar um multi pagamento

Caio Gaspar edited this page Jul 14, 2017 · 4 revisions

Criando um multi-pagamento

A criação de um multi-pagamento é idêntica à criação de um pagamento comum, com a diferença de que o objeto de pedido deve ser do tipo Multiorders e o método para criar um multipagamento deve ser o multipayments. A variável $multiorder no exemplo é um objeto do tipo Multiorders que é o multi-pedido para qual o multi-pagamento será adicionado, você pode conferir como cadastrar um novo multi-pedido ou obter um multi-pedido já cadastrado nas seções Criar um multi-pedido ou Consultar um multi-pedido.

Note que é preciso passar o cliente, no caso passamos através da variável $customer, no exemplo ela é um objeto do tipo Customer, você pode conferir como cadastrar um novo cliente ou obter um cliente já cadastrado nas seções Cadastro de clientes e Consultar um cliente.

Cartão de crédito

No caso do 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 passando true como parâmetro.

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 nesse 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 = $multiorder->multipayments()
        ->setCreditCardHash($hash, $customer)
	->setInstallmentCount(3)
	->setStatementDescriptor('teste de pag')
	->setDelayCapture(false)
	->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 = $multiorder->multipayments()
	->setCreditCard($expiration_month, $expiration_year,$number_cc, $cvc, $customer, $store_cc)
	->setInstallmentCount(3)
	->setStatementDescriptor('teste de pag')
	->setDelayCapture(false)
	->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 = $multiorder->multipayments()  
        ->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 = $multiorder->multipayments()                    
        ->setOnlineBankDebit($bank_number, $expiration_date, $return_uri)
        ->execute();
    print_r($payment);
} catch (Exception $e) {
    printf($e->__toString());
}

Clone this wiki locally