3.3.0
Link para download do xcframework para adição manual do sdk
Release Notes
Principais alterações
- Novo método: Adição de um novo método público para fazer novamente o fluxo de aceite de termos e condições da apple.
- Controle de erros: Captura de exceções não mapeadas no fluxo de pagamento, para melhor clareza de erros e evitar possíveis falhas críticas.
- Mais informações sobre o pagamento: Adição de um novo campo
binNumberno objeto de resposta de um pagamento, noPaymentApprovedResponse, ePaymentErrorResponse. - Novos parâmetros na requisição de pagamento: Adição dos campos de repasse no objeto
PaymentRequest
Novo método
Este método faz o processamento de vínculo da conta da apple novamente, fazendo aparecer a tela da apple de termos e condições no aplicativo. Não é um método obrigatório, já que fazemos esse fluxo internamente, mas, uma ferramenta pro usuário usar caso desejado.
Exemplo
TapOnPhone.processTermsAndConditions(
onSuccess: {
print("sucesso")
}, onError: { [weak self] error in
guard self != nil else { return }
print("SDK error - code: ", error.code.rawValue)
print("name: ", error.code.description)
print("message: ", error.message)
})Fluxo
| Termos e condições |
|---|
![]() |
Controle de erros
Durante o pagamento, algumas exceções não estavam mapeadas, podendo resultar em erros inesperados no lado do aplicativo. A correção aqui faz todos os erros caírem no callback onError do pagamento.
Informações sobre o pagamento
Foi adicionado o campo binNumber ao objeto PaymentApprovedResponse e PaymentErrorResponse, que é uma propriedade que representa o identificador do cartão utilizado durante o pagamento, agora o objeto contém:
struct PaymentApprovedResponse {
let transactionId: String // Id da transação na Zoop
let cardBrand: String // Bandeira do cartão
let readerIdentifier: String? // Id do leitor de pagamentos
let readResultId: String? // Id do resultado da leitura do cartão
let binNumber: String? // Bin do cartão utilizado no pagamento
}
struct PaymentErrorResponse {
let error: TapOnPhoneError // Estrutura de erro do SDK informando o que exatamente aconteceu
let transactionId: String? // Id da transação na Zoop
let cardBrand: String? // Bandeira do cartão
let readResultId: String? // Id do resultado da leitura do cartão
let binNumber: String? // Bin do cartão utilizado no pagamento
}Novos parâmetros na requisição de pagamento
ID do Plano
O que é: Identificador único do plano comercial acordado com a Zoop a ser utilizado na transação em questão.
Para que serve: Define qual regra de taxa Zoop e plano de repasse a serem aplicados sobre as transações do marketplace.
Finalidade no produto: Garantir que a cobrança das taxas e o repasse sejam realizados corretamente, conforme o plano vigente. Esse ID é informado ao MKTP no processo do onboarding do mesmo, e pode ser atualizado em caso de reajuste de taxas.
Valor a ser Repassado para o Seller
O que é: Montante líquido a ser repassado para o seller após aplicação de MDR (o que inclui taxa Zoop e/ou taxa e subsídio Nubank)
Para que serve: Representa o valor que o seller efetivamente irá receber por sua venda.
Finalidade no produto: Permite ao MKTP definir sua estratégia financeira, seja para incluir comissionamento ou oferecer subsídios (incentivar vendas).
Exemplo
struct PaymentRequest(
let amount: Int
let paymentType: TapOnPhonePaymentType
let installments: Int
let metadata: String?
let billing: Billing?
)
struct Billing(
let planId: String
let value: Int
)O campo é opcional, se for configurado, o ID do plano não pode ser vazio, não pode passar de 52 caracteres e o valor não pode ser zerado. O valor é representado por inteiro, valor em centavos.
