Método InitPayment
A partir da versão 1.7.0, estaremos disponibilizando duas opções de initPayment, com parâmetros de sobrecarga diferentes, portanto, leia com atenção e escolha a que mais e adequa a sua implementação. Abaixo, segue a descrição detalhada de cada uma delas:
Método InitPayment(onComplete)
Método chamado para transacionar o pagamento, no qual ira receber o callback(onComplete) somente quando pressionado sobre o botão “Ver comprovante" da tela de sucesso.
Em caso erro, será recebido o callback depois do fechamento da tela de error.
Exemplo:
Task {
await TapOnPhoneWP.shared.initPayment(
view: self,
config: config,
data: tapPaymentData,
onStart: { vc in
// ponto recomendado para iniciar loader customizado
},
onLoadComplete: {
// ponto para dispensar o loader customizado
},
onComplete: { result in
switch result {
case .success(let transaction):
// transaction é TapPaymentTransaction
case .failure(let error):
break
}
},
counterTimeInSeconds: nil
)
}Descrição dos parâmetros:
| Campo | Descrição |
|---|---|
view (UIViewController) | View atual usada como contexto para exibição das telas necessárias. |
config (TapConfig) | Config com os dados de configuração. O mesmo informado na inicialização. |
data (TapPaymentData) | Os dados de pagamento, retornados pela jornada de telas de pagamento ou preenchido com o resultado da suas próprias telas. |
onStart (((UIViewController) async -> Void)?) | Evento chamado quando inicializa o método initPayment. Caso esteja utilizando uma animação de load customizada, este é o momento recomendado para inicia-la. |
onLoadComplete (() -> Void) | Evento chamado quando o loader customizado deve ser dispensado. |
onComplete (((Result<TapPaymentTransaction, Error>) -> Void)?) | Método chamado quando o pagamento completa todos os seus processos, podendo ser success ou failure em caso de algum problema. Em caso de sucesso, entrega um TapPaymentTransaction. Consulte a seção Modelo de retorno TapPaymentTransaction e a página Tratamento de erros. |
counterTimeInSeconds (Int?) | Tempo, em segundos, de contagem/timeout exibido na tela de aproximação do cartão. Opcional, default nil. |
Método InitPayment (onPaymentSuccess, onPaymentError)
Método chamado para transacionar o pagamento, no qual ira receber o onPaymentSuccess logo após a animação da bandeira. Em caso erro, será recebido o callback depois do fechamento da tela de error.
Exemplo:
Task {
await TapOnPhoneWP.shared.initPayment(
view: self,
config: config,
data: tapPaymentData,
onStart: { vc in
// ponto recomendado para iniciar loader customizado
},
onLoadComplete: {},
onPaymentSuccess: { (transaction: TapPaymentTransaction) in
// ver modelo TapPaymentTransaction abaixo
},
onPaymentError: { error in
// tratar erro
},
counterTimeInSeconds: nil
)
}Descrição dos parâmetros:
| Campo | Descrição |
|---|---|
view (UIViewController) | View atual usada como contexto para exibição das telas necessárias. |
config (TapConfig) | Config com os dados de configuração. O mesmo informado na inicialização. |
data (TapPaymentData) | Os dados de pagamento, retornados pela jornada de telas de pagamento ou preenchido com o resultado da suas próprias telas. |
onStart (((UIViewController) async -> Void)?) | Evento chamado quando inicializa o método initPayment. Caso esteja utilizando uma animação de load customizada, este é o momento recomendado para inicia-la. |
onLoadComplete (() -> Void) | Evento chamado quando o loader customizado deve ser dispensado. |
onPaymentSuccess: ((TapPaymentTransaction) -> Void)? | Método chamado quando o pagamento é completado com sucesso, logo após a animação da bandeira. Entrega um TapPaymentTransaction. |
onPaymentError: ((Error) -> Void)? | Método chamado quando ocorre uma falha durante o pagamento. Consulte a página Tratamento de erros. |
counterTimeInSeconds (Int?) | Se for nil, o botão de progresso fica desabilitado. |
Modelo PaymentData
public struct PaymentData: Equatable {
public init() {
price = 0.0
installments = 1
}
public var price: Decimal
public var installments: Int
public var paymentMethod: PaymentMethod?
public var showNewSaleButton: Bool = true
}Novo campo: showNewSaleButton — controla a exibição do botão "Nova venda" no comprovante.
Modelo de retorno TapPaymentTransaction
Em caso de sucesso, os callbacks onComplete e onPaymentSuccess entregam um objeto TapPaymentTransaction. Não há inicializador público memberwise para nenhum dos tipos abaixo: apenas o SDK constrói e entrega as instâncias, e o app integrador só as recebe e lê.
public struct TapPaymentTransaction {
public var amount: Double?
public var aid: String?
public var brand: String?
public var cardNumber: String? // número mascarado, não é o PAN completo
public var date: Date?
public var transactionDate: String?
public var transactionType: String?
public var status: Int?
public var installments: Int?
public var dynamicBankDataModel: TapDynamicBankData?
}
public struct TapDynamicBankData {
public var issuerScriptResults: String?
public var paymentId: String?
public var cpfcnpj: String? // documento do comerciante
public var receiptInfoModel: TapReceiptInfo?
}
public struct TapReceiptInfo {
public var merchantName: String?
public var merchantAddress: String?
public var merchantCity: String?
public var merchantState: String?
public var nsu: String?
public var date: String?
public var cardNumber: String?
public var brand: String?
public var transactionType: String?
public var authorizationCode: String?
public var value: Double?
public var installments: Int?
public var paymentDateTime: String?
}Updated 1 day ago