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 binNumber no objeto de resposta de um pagamento, no PaymentApprovedResponse, e PaymentErrorResponse.
  • 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
tc tc

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.