ecomplus / app-vindi

E-Com Plus app to integrate Vindi for recurring payments
GNU General Public License v3.0
2 stars 3 forks source link

Notificações de boleto não estão chegando #18

Closed matheusgnreis closed 3 years ago

matheusgnreis commented 3 years ago

Descrever bug Os pedidos são gerados, depois aprovados porém a notificação não é consumada na loja. 5f4c50a57430f92180ea6979, 5f6175e67430f92180f07e0f ID da loja 1107 Abaixo segue a tela de configuração Vindi

image

Cartão de crédito está certinho

leomp12 commented 3 years ago

Ó o URL do webhook aí todo errado :neutral_face: Já foi resolvido né?!

matheusgnreis commented 3 years ago

Modificou, chegou a notificação, mas não alterou.

request_body : {"event":{"type":"bill_paid","created_at":"2020-10-06T09:04:15.901-03:00","data":{"bill":{"id":86797275,"code":"3992","amount":"284.89","installments":1,"status":"paid","seen_at":null,"billing_at":null,"due_at":"2020-09-27T23:59:59.000-03:00","url":"https://app.vindi.com.br/customer/bills/86797275?token=c6309477-c132-4a28-abcc-3003f5b122f3","created_at":"2020-09-27T15:05:02.000-03:00","updated_at":"2020-10-06T09:04:15.000-03:00","bill_items":[{"id":104425154,"amount":"284.89","quantity":null,"pricing_range_id":null,"description":"1x  SCIREC - Hidratante para a Área dos Olhos com chá branco orgânico e  melão","pricing_schema":null,"product":{"id":657543,"name":"Pedido na  loja  linden-leaves.netlify.app","code":"ecomplus-1597158955209"},"product_item":null,"discount":null}],"charges":[{"id":85110003,"amount":"284.89","status":"paid","due_at":"2020-09-27T23:59:59.000-03:00","paid_at":"2020-10-06T09:04:15.000-03:00","installments":1,"attempt_count":4,"next_attempt":null,"print_url":null,"created_at":"2020-09-27T15:05:02.000-03:00","updated_at":"2020-10-06T09:04:15.000-03:00","last_transaction":{"id":148565946,"transaction_type":"capture","status":"success","amount":"284.89","installments":1,"gateway_message":"Success.","gateway_response_code":null,"gateway_authorization":"10012010060857402980","gateway_transaction_id":"1456c6f7-d413-4767-aac1-aa2f748fbe0b","gateway_response_fields":{"reference":"148565940","tid":"10012010060857402980","nsu":"500743249","authorizationCode":"011038","brandTid":"011038","dateTime":"2020-10-06T09:04:15-03:00","amount":28489,"cardBin":"553665","last4":"1731","additional":{"gateway":"518"},"returnCode":"00","returnMessage":"Success.","CodRet":"00","NumAutor":"011038","Msgret":"Success.","NumPedido":"148565940","NumSqn":"500743249","Tid":"10012010060857402980","Data":"20201006","Hora":"09:04:15"},"fraud_detector_score":null,"fraud_detector_status":null,"fraud_detector_id":null,"created_at":"2020-10-06T09:04:15.000-03:00","gateway":{"id":41570,"connector":"e_rede_rest"},"payment_profile":{"id":24519458,"holder_name":"ANGELA  C  AZEVEDO","registry_code":null,"bank_branch":null,"bank_account":null,"card_expiration":"2027-10-31T23:59:59.000-03:00","allow_as_fallback":true,"card_number_first_six":"553665","card_number_last_four":"1731","token":"349f6aed-2281-42b6-bb0e-3ea7d3db9abc","created_at":"2020-09-27T15:05:02.000-03:00","payment_company":{"id":1,"name":"MasterCard","code":"mastercard"}}},"payment_method":{"id":44736,"public_name":"Cartão  de crédito","name":"Cartão de  crédito","code":"credit_card","type":"PaymentMethod::CreditCard"}}],"customer":{"id":16508146,"name":"Angela  Cristina Azevedo Araujo","email":"angel-cristina@uol.com.br","code":"5f70d44c7430f92180f5b76b:1601229901493"},"period":null,"subscription":null,"metadata":{},"payment_profile":{"id":24519458,"holder_name":"ANGELA  C  AZEVEDO","registry_code":null,"bank_branch":null,"bank_account":null,"card_expiration":"2027-10-31T23:59:59.000-03:00","allow_as_fallback":true,"card_number_first_six":"553665","card_number_last_four":"1731","token":"349f6aed-2281-42b6-bb0e-3ea7d3db9abc","created_at":"2020-09-27T15:05:02.000-03:00","payment_company":{"id":1,"name":"MasterCard","code":"mastercard"}},"payment_condition":null}}}}
-- | --
  | response_body |  
  | #response_code 204 | 204
  | response_headers{"etag":"W/\"a-bAsFyilMr4Ra1hIU5PyoyFRunpI\"","function_execution_id":"2556w6i4qyph","x_powered_by":"Express","x_cloud_trace_context":"5f71cdfd286c214c67a375e7142512f8","date":"Tue,  06 Oct 2020 12:04:16 GMT","content_type":"text/html","server":"Google  Frontend","content_length":"0","alt_svc":"h3-Q050=\":443\";  ma=2592000,h3-29=\":443\"; ma=2592000,h3-27=\":443\";  ma=2592000,h3-T051=\":443\"; ma=2592000,h3-T050=\":443\";  ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\";  ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""} | {"etag":"W/\"a-bAsFyilMr4Ra1hIU5PyoyFRunpI\"","function_execution_id":"2556w6i4qyph","x_powered_by":"Express","x_cloud_trace_context":"5f71cdfd286c214c67a375e7142512f8","date":"Tue,  06 Oct 2020 12:04:16 GMT","content_type":"text/html","server":"Google  Frontend","content_length":"0","alt_svc":"h3-Q050=\":443\";  ma=2592000,h3-29=\":443\"; ma=2592000,h3-27=\":443\";  ma=2592000,h3-T051=\":443\"; ma=2592000,h3-T050=\":443\";  ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\";  ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""} |   |   | {"etag":"W/\"a-bAsFyilMr4Ra1hIU5PyoyFRunpI\"","function_execution_id":"2556w6i4qyph","x_powered_by":"Express","x_cloud_trace_context":"5f71cdfd286c214c67a375e7142512f8","date":"Tue,  06 Oct 2020 12:04:16 GMT","content_type":"text/html","server":"Google  Frontend","content_length":"0","alt_svc":"h3-Q050=\":443\";  ma=2592000,h3-29=\":443\"; ma=2592000,h3-27=\":443\";  ma=2592000,h3-T051=\":443\"; ma=2592000,h3-T050=\":443\";  ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\";  ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""}
{"etag":"W/\"a-bAsFyilMr4Ra1hIU5PyoyFRunpI\"","function_execution_id":"2556w6i4qyph","x_powered_by":"Express","x_cloud_trace_context":"5f71cdfd286c214c67a375e7142512f8","date":"Tue,  06 Oct 2020 12:04:16 GMT","content_type":"text/html","server":"Google  Frontend","content_length":"0","alt_svc":"h3-Q050=\":443\";  ma=2592000,h3-29=\":443\"; ma=2592000,h3-27=\":443\";  ma=2592000,h3-T051=\":443\"; ma=2592000,h3-T050=\":443\";  ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\";  ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\""}
    
   success true | true
   type bill_paid | bill_paid
   url https://us-central1-ecom-vindi.cloudfunctions.net/app/vindi/webhook
matheusgnreis commented 3 years ago

Me mandou hoje aqui o email

leomp12 commented 3 years ago

O payload aí está com metadata vazio "metadata":{}, por isto não teve referência e nenhum pedido foi atualizado. Isto aí realmente foi um pagamento feito na loja? Não foi duplicado de outra fatura? Ou talvez teve alguma edição manual que removeu esse dado?

Todos as bills são criadas com metadata, nunca estará vazia em pagamentos feitos no nosso checkout, a não ser que seja apagado manualmente.

https://github.com/ecomplus/app-vindi/blob/master/functions/routes/ecom/modules/create-transaction.js#L22-L27 https://github.com/ecomplus/app-vindi/blob/master/functions/routes/ecom/modules/create-transaction.js#L58-L59

leomp12 commented 3 years ago

Neste caso aí nem é boleto, é cartão de crédito mesmo, que inclusive foi bastante testado em sandbox e funciona normalmente, tanto aprovando quanto cancelando, mas precisa do metadata, não sei se tem como o lojista remover isso no painel ou se há alguma ocasião em que a Vindi não envia isso nos webhooks (o que não faria sentido). De fato o webhook foi enviado certinho agora, mas o payload não.

leomp12 commented 3 years ago

A bill está correta, olhei aqui pelo ID, então só precisamos saber o que raios aconteceu com o metadata aí. @matheusgnreis quem te passou isso foi o pessoal da Vindi? Vê com eles por favor o que houve com o metadata desta bill que não deveria estar vazio no payload do evento.

Na mesma loja tem um pedido mais recente 5f7e4e2db2161709fa3c7b63 com entradas no histórico de atualizações automáticas da Vindi certinho.

matheusgnreis commented 3 years ago

Foi o pessoal da vindi que encaminhou para o lojista e ele só me encaminhou o email também

leomp12 commented 3 years ago

@matheusgnreis certo, vê com eles então o porque desse matadata vazio por favor e quando descobrirmos vemos o que fazer aqui...

leomp12 commented 3 years ago

@matheusgnreis olhou isso aqui? Alguma novidade?

matheusgnreis commented 3 years ago

Responderam hoje, que tem hora que a sua URL normal dá 404 e não souberam responder a questão do metadados, queriam saber se existe algum pedido na e-com que tenha vindo o metadados, se sim, qual?

leomp12 commented 3 years ago

Dá 404 porque é um not found mesmo, não encontra o pedido respectivo, neste caso porque precisa do metadata e veio sem... Todos da 1011 vem com metadata, sempre.

leomp12 commented 3 years ago

Vou contornar de um outro jeito aqui só pra não ficar em aberto, mas tem cagada deles aí eu acho.

leomp12 commented 3 years ago

E eles deveriam verificar eu acho haha

matheusgnreis commented 3 years ago

O chamado da vindi, onde apontam as questoes questionadas

https://atendimento.vindi.com.br/hc/pt-br/requests/190223

Informam que a url de webhook não é valida em alguns casos, ela retorna 404, outros retorna resultado. Lá é um canal mais direto para resolver esse BO, se tiver um exemplo ai de um body com metadata valido para encaminhar lá

leomp12 commented 3 years ago

@matheusgnreis como eu já falei algumas vezes, dá 404 quando não encontra o pedido gente, tá certo :neutral_face: Eu tô cansado de saber que retorna 404 haha

Quando o pedido é encontrado mas não há alteração de status (provavelmente porque já está no respectivo status) retorna 204, quando não encontra o pedido retorna 404, quando encontra e muda o status retorna 201. Por exemplo, tem um webhook recente deles do charge 87466525, só que esta cobrança não foi criada pelo app, não é da plataforma, e portanto não há pedido respectivo na plataforma e não há o que tratar, neste caso está retornando 404. Não pretendo parar de retornar 404 nesses casos, é um problema pra eles?

Antes havia um problema com eventos de bills sem o metadata, acho que é um erro deles e até já reportei pra eles, mas eu já contornei isso de outra forma, mesmo que venha sem o metadata estou salvando local e consigo resgatar de qual pedido é a bill, por isto fechei o issue. A não ser que a lojista tenha tido o problema nos últimos 3 dias, tá tudo certo e não há o que fazer aqui...

matheusgnreis commented 3 years ago

Pagamento foi confirmado ontem:

Gateway: Aceita (boletos)
    ID Transação Gateway: 76fb8ab8-5890-400f-990a-d4ded36be664
Data da ocorrência: 19/10/2020
Data remota: 19/10/2020
Tentativa: 1
ID Transação Vindi: 150810925

E pedido na e-com ainda consta como aguardando pagamento

leomp12 commented 3 years ago

@matheusgnreis não sei exatamente de qual pedido você está falando mas desse aqui por exemplo 5f6d40477430f92180f4f310 (alterado manualmente para pago) nenhuma notificação foi recebida com o ID da bill nem do change:

Screenshot_2020-10-20 E-Com Plus Dashboard App

Screenshot_2020-10-20 ecom-vindi – Console do Firebase(1)

Screenshot_2020-10-20 ecom-vindi – Console do Firebase

Diferente do pedido 5f8cb8c5b2161709fa407e59 por exemplo, que foi alterado automaticamente e tenho logs de hooks tanto referente ao bill quanto ao change:

Screenshot_2020-10-20 ecom-vindi – Console do Firebase(2)

Pode ser que haja algo diferente pra boleto especificamente, aí já seria outro problema, diferente do exemplo que você deu aqui.

O link que você colocou do ticket na Vindi não abre pra mim, vê com eles por favor sobre esse boleto em específico se esses hooks foram enviados como deveriam, e os logs que eles têm do lado deles lá...

matheusgnreis commented 3 years ago

Vamos lá, de acordo com ele:

"Quanto ao log, nós não temos um logs específico pelo método de pagamento, tendo em vista que ambos são o mesmo tipo de evento, o de "bill_paid". Mas, segue abaixo um exemplo de webhook enviado (de baixa de pagamento de boleto) que foi enviado pela Vindi:"

Request Body do webhook:

Vou retirar infos para que nao fique público dados que teoricamente não devem, como email e token { "event": { "type": "bill_paid", "created_at": "2020-10-20T06:43:23.653-03:00", "data": { "bill": { "id": 88790345, "code": "4006", "amount": "664.89", "installments": 1, "status": "paid", "seen_at": null, "billing_at": null, "due_at": "2020-10-19T23:59:59.000-03:00", "url": "https://app.vindi.com.br/customer/bills/88790345?token=xxxxxxxxx", "created_at": "2020-10-16T16:54:52.000-03:00", "updated_at": "2020-10-20T06:43:23.000-03:00", "bill_items": [{ "id": 106922755, "amount": "664.89", "quantity": null, "pricing_range_id": null, "description": "1x 31749-104; 1x SCIREC; ", "pricing_schema": null, "product": { "id": 657543, "name": "Pedido na loja linden-leaves.netlify.app", "code": "ecomplus-1597158955209" }, "product_item": null, "discount": null }], "charges": [{ "id": 87230561, "amount": "664.89", "status": "paid", "due_at": "2020-10-19T23:59:59.000-03:00", "paid_at": "2020-10-19T00:00:00.000-03:00", "installments": 1, "attempt_count": 2, "next_attempt": null, "print_url": null, "created_at": "2020-10-16T16:54:52.000-03:00", "updated_at": "2020-10-20T06:43:23.000-03:00", "last_transaction": { "id": 150810925, "transaction_type": "charge", "status": "success", "amount": "664.89", "installments": 1, "gateway_message": "PAYMENT_CONFIRMED", "gateway_response_code": null, "gateway_authorization": "80aaf3b4-5651-4da3-acef-5a42cf9ac1c5", "gateway_transaction_id": "76fb8ab8-5890-400f-990a-d4ded36be664", "gateway_response_fields": { "id": "80aaf3b4-5651-4da3-acef-5a42cf9ac1c5", "state": { "code": "3002", "name": "PAYMENT_CONFIRMED" }, "print_url": "https://api.aceitafacil.com/boleto/8e1e6804-a56a-4889-8b07-d7f6b6fc19ed/", "charge_id": "3e0c6510-bba6-4af4-b2f6-6dc0fc555250", "barcode": "34199841300000664891090519659800445496789000", "typeable_barcode": "34191.09057 19659.800445 54967.890002 9 84130000066489", "nsu": "109/05196598-0", "clearance_date": "2020-10-21", "clearance_amount": "660.90", "paid_amount": "664.89", "payment_date": "2020-10-19" }, "fraud_detector_score": null, "fraud_detector_status": null, "fraud_detector_id": null, "created_at": "2020-10-16T16:54:53.000-03:00", "gateway": { "id": 41513, "connector": "aceita_facil" }, "payment_profile": null }, "payment_method": { "id": 44828, "public_name": "Boleto bancário", "name": "Boleto bancário - Aceita Fácil", "code": "bank_slip", "type": "PaymentMethod::BankSlip" } }], "customer": { "id": 16783742, "name": "Rita wwwwww Oliveira", "email": "yyyyyyyy", "code": "5f6e91497430f92180f56e72:1602878092465" }, "period": null, "subscription": null, "metadata": {}, "payment_profile": null, "payment_condition": { "penalty_fee_value": "0.0", "penalty_fee_type": "percentage", "daily_fee_value": "0.0", "daily_fee_type": "percentage", "after_due_days": null, "payment_condition_discounts": [] } } } } } O pedido pelo que identifiquei pelo transaction_code é 5f89fa8bb2161709fa3fe47e Para esse foi retornado código 204

inline191464753

leomp12 commented 3 years ago

Na verdade eu não queria exemplos de log por forma de pagamento não, queria é saber se mandaram pra bill e/ou charge específicas que eu citei que não tinha recebido nenhum hook...

É esse pedido 5f89fa8bb2161709fa3fe47e mesmo, retornou 204 porque ele consta no BD e foi encontrado, tem certeza que não tem a entrada no payments history desse pedido relativo a este hook?

matheusgnreis commented 3 years ago

Pelo que ele sempre fala para aprovação é bill, no caso desse pedido tem notificação de pendente apenas:

"notification_code": "charge_created;2020-10-16T16:54:53.416-03:00",
matheusgnreis commented 3 years ago

Talvez se acessar agora https://atendimento.vindi.com.br/hc/pt-br/requests/190223 na aba colocar em cópia você consegue ter acesso.