feat: adding 3ds feature #402
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementação de Suporte a 3DS (3D Secure) em Orders
🔍 Processo de Descoberta e Implementação
Esta seção documenta o passo a passo completo para implementar novas features no SDK, servindo como guia para futuras implementações.
1. Monitoramento de Mudanças
Canal de comunicação: mp-op-public-order-updates
Neste caso: Foi anunciada a feature de 3DS (3D Secure) para Orders.
2. Verificação no Fury Spec Hub
O que fazer:
Neste caso:
3. Análise da Spec e Exemplos
O que analisar no swagger:
Neste caso:
Request
Response
4. Mapeamento para Estrutura do SDK Node.js
4.1 Entendendo a Estrutura de Pastas
4.2 Mapeamento JSON → Tipos TypeScript
Regra geral:
Exemplo deste caso:
5. Implementação dos Tipos
5.1 Tipos Compartilhados (commonTypes.ts)
Arquivo:
src/clients/order/commonTypes.tsPontos importantes:
'always' | 'on_fraud_risk' | 'never')5.2 Integração com Tipos Existentes
Modificações necessárias:
6. Estrutura Completa do SDK (Resumo)
Fluxo de uma chamada:
order.create({ body: orderData })response.transactions?.payments?.[0].payment_method?.transaction_security?.url🎯 Objetivo
Permitir que integradores implementem autenticação 3DS em suas transações através do SDK Node.js, com:
validation)liability_shift)🔧 Alterações Técnicas
Arquivos Modificados
1.
src/clients/order/commonTypes.tsTransactionSecurityeTransactionSecurityResponseOnlineConfigpara incluirtransaction_security?: TransactionSecurityPaymentMethodResponsepara incluirtransaction_security?: TransactionSecurityResponse2.
src/clients/order/create/types.tsTransactionSecurityPaymentMethodRequestpara incluirtransaction_security?: TransactionSecurityNovos Arquivos Criados
3.
src/examples/order/createWith3DS.tsExemplo completo mostrando:
4.
src/examples/order/handle3DSResponse.tsExemplo de tratamento de diferentes cenários 3DS:
5.
e2e/order/create3DS.spec.tsTestes de integração para:
6.
e2e/order/get3DS.spec.tsTestes de consulta para: