wirecardBrasil / moip-sdk-java-le

Cliente em JAVA para integração server-side com APIs Moip v2
MIT License
25 stars 32 forks source link

OrderRequest - Cliente já existente. #41

Closed lgertel closed 7 years ago

lgertel commented 7 years ago

Como criar um OrderRequest passando um cliente já existente? Encontrei somente o customer que recebe um CustomerRequest, mas já tenho o cliente criado e com as informações.

Alguém?

humbertosales commented 7 years ago

Amigo, tive a mesma dúvida que você...

Estou seguindo a seguinte linha de raciocínio, mas ainda não rodei os testes... se quiser tentar aí...

    public void criarPedido(Contratacao contratacao) {
    // Contratante request
    CustomerRequest customerRequest = new CustomerRequest();
    customerRequest.id(contratacao.getContratante().getPessoa().getIdMoip());
    // Pedido request
    OrderRequest orderRequest = new OrderRequest();
    orderRequest.ownId("" + contratacao.getId());
    orderRequest.customer(customerRequest);
    // Itens do pedido
    Set<ServicoContratado> servicosContratados = contratacao.getServicosContratados();
    for (ServicoContratado servicoContratado : servicosContratados) {
        orderRequest.addItem(servicoContratado.getServico().getNome(), 1,
            servicoContratado.getServico().getDescricao(),
            converterParaInteiroInclusiveDecimal(servicoContratado.getValor()));
    }

    Order createdOrder = getAPI().order().create(orderRequest);
    contratacao.setIdPedidoMoip(createdOrder.getId());

    }
caiogaspar commented 7 years ago

Olá @lgertel e @humbertosales. Tudo bem? Pra criar um pedido com cliente já existente, como o Humberto já passou acima, basta passar o ID do Moip (não o OwnID) no CustomerRequest que o pedido será associado ao cliente.

Segue um exemplo de como usar:

Order createOrder = api.order().create(new OrderRequest()
    .ownId("my_own_id")
    .addItem("Nome do produto", 1, "Mais info...", 100)
    .customer(new CustomerRequest()
        .id("CUSTOMER-ID")
    )
);

Abs!