Closed souzadavi closed 6 years ago
Olá @souzadavi, tudo bem?
O problema está ocorrendo porque os customers podem receber somente o endereço do tipo SHIPPING
. Ao passar um BILLING
, na criação do customer, gera um problema que afeta o callback, não retornando o phone
. Sendo que o endereço BILLING
serve para cadastrar o holder (portador do cartão).
Hoje, o método addAddress()
aceita os dois tipos de endereço, por conta de comportamento antigo da API. Estamos trabalhando para corrigir e atualizar as features da SDK. 😉🚀
Eita, então como devo proceder ? tenho q fazer por fora da SDK o cadastro do customer ou na hora do cadastro do customer eu informo o billing e o shipping??
muito obrigado pelo retorno...
Na hora de cadastrar o customer, você deve passar apenas o shipping. Caso queira cadastrar um cartão para um customer, aí você precisará criar um holder (seguindo o modelo da API), e aí será utilizado o billing:
"fundingInstrument":{
"method":"CREDIT_CARD",
"creditCard":{
"expirationMonth":"06",
"expirationYear":"22",
"number":"6362970000457013",
"cvc":"123",
"holder":{
"fullname":"Maria Oliveira",
"birthdate":"1980-05-10",
"taxDocument":{
"type":"CPF",
"number":"10013390023"
},
"billingAddress":{
"city":"Rio de Janeiro",
"district":"Copacabana",
"street":"Rua Raimundo Corrêa",
"streetNumber":"1200",
"zipCode":"05246200",
"state":"RJ",
"country":"BRA"
},
"phone":{
"countryCode":"55",
"areaCode":"11",
"number":"22226842"
}
}
}
}
@souzadavi, acabamos de perceber o erro na documentação que provavelmente causou confusão pra você. Acabei de abrir uma issue para ajustar isso #281, mas só para ficar claro, a maneira correta de criar um customer é:
$customer = $moip->customers()->setOwnId(uniqid())
->setFullname('Fulano de Tal')
->setEmail('fulano@email.com')
->setBirthDate('1988-12-30')
->setTaxDocument('22222222222')
->setPhone(11, 66778899)
->addAddress('SHIPPING',
'Rua de teste do SHIPPING', 123,
'Bairro do SHIPPING', 'Sao Paulo', 'SP',
'01234567', 8)
->create();
Obrigado pelas informações, no ->setPhone(11, 66778899) não tem q definir o código do pais? ->setPhone(11, 66778899, 55) ??
O telefone esta indo agora, apesar de receber apenas 8 números ao invés de 9.
E o código de cancelamento antes era o 3 depois do ajuste do telefone passou a mostrar o código de cancelamento 7.
Estranho que no sandbox ia de boa, agora na produção o pagamento não é aprovado de jeito nenhum!
Obrigado.
Oi @souzadavi, não, a SDK informa 55
por padrão se você não passar nada, dá uma olhadinha aqui no source code pra vc entender como é feito.
Sobre o bug dos 9 números retornarem 8, é um bug da API mesmo, já estamos trabalhando nisso (não está relacionado à SDK, acontece com todos).
Já sobre os pagamentos não aprovados, fala com a gente no slack ou pelo e-mail integracao@moip.com.br, ja que não está relacionado à um problema da SDK. Quando falar com a gente, passa os IDs dos pedidos que foram cancelados, ok?
Valeu!
Pelo slack, sem sucesso, q pena queria tanto esse recurso, e não consigo resolver...
Olá pessoa, olha eu aqui de novo, script homologado em produção, porém os pagamento do cartão não estão sendo confirmados, todos os pagamento por cartão de crédito estão sendo cancelado pela operado.
Eu notei que o número de telefone não esta sendo salvo no MOIP, eu estou com a suspeita de que a operadora deve estar cancelando por conta disso. Já tentei definir manualmente o número do telefone mas mesmo assim o número não é salvo na plataforma do MOIP.
aniversario, nome e cpf estão lindo. o endereço tbm não aparece no resumo da transação do moip...
try { $customer_moip = $moip->customers()->setOwnId(uniqid()) ->setFullname($firstname . ' ' . $lastname) ->setEmail($email) ->setBirthDate($birthday) ->setTaxDocument($cpf) ->setPhone("11","996113223","55") //// MESMO DEFININDO MANUALMENTE NÃO SALVA ->addAddress('BILLING', $street , $homeNumber , 'Bairro', $city, $state,$postcode, 8) ->create();
obs.: no sandbox, tbm não esta salvando o número do telefone.
Algo errado no setPhone?