v1.2.0
Esta versão adiciona suporte a terminais PagBank, através do PlugPagService, unifica a publicação Maven em apenas um repositório e passa a imprimir um comprovante padrão do PayOS SDK. A interface pública expõe novas interfaces, deixando de depender de integrações específicas.
Breaking changesAtualize o app antes de compilar contra
1.2.0. Esta release quebra:
- imports e tipos
com.tectoy.*na interface pública;- a assinatura de
revertTransaction;- o tipo de retorno de
PayOsSdkTransactionParams.getTypeTransaction()e os tipos de crédito, CVV e da transação persistida;- os métodos de texto de
PayOsSdkPrinterpara terminais Pax;- o
minSdkpara terminais Nexgo - N62 (agora 24);- as URLs e as coordenadas Maven por terminal;
whenexaustivo sobrePayOsSdkTransactionType(entraramVOUCHERePICPAY);
Artefatos
Com a unificação dos artefatos abaixo de apenas um repositório Maven, temos a seguinte distribuição:
Terminais PAX - A960, A910S, A910
- debug:
com.paytime:payossdk-pax-debug:1.2.0 - release:
com.paytime:payossdk-pax:1.2.0
Terminais Nexgo - N62
-
debug:
com.paytime:payossdk-nexgo-debug:1.2.0 -
release:
com.paytime:payossdk-nexgo:1.2.0
Terminais PagBank - A930, P2, GPOS780, A50, A50S
-
debug:
com.paytime:payossdk-pags-debug:1.2.0 -
release:
com.paytime:payossdk-pags:1.2.0
repositories {
maven {
url = uri("URL_MAVEN_PAYTIME_PAYOSSDK_DEBUG")
credentials {
username = "USERNAME_MAVEN_PAYTIME_PAYOSSDK_DEBUG"
password = "PASSWORD_MAVEN_PAYTIME_PAYOSSDK_DEBUG"
}
authentication {
create<BasicAuthentication>("basic")
}
}
// Somente PagBank (A930, P2, GPOS780, A50, A50S)
maven {
url = uri("https://github.com/pagseguro/PlugPagServiceWrapper/raw/master")
}
}
dependencies {
// debugImplementation("com.paytime:payossdk-pax-debug:1.2.0")
// debugImplementation("com.paytime:payossdk-nexgo-debug:1.2.0")
debugImplementation("com.paytime:payossdk-pags-debug:1.2.0")
}Principais alterações (quebram integração até 1.0.15)
A interface pública não expõe mais tipos genéricos
Todas as importações ocorrem através de com.paytime.payossdk e com.paytime.payossdk.external.*.
Callbacks de PayOsSdkPayment (init, makeTransaction, revertTransaction, tableLoad, updateTerminalConfigurations, syncTransactionToCloud, cancelPixTransaction e o novo printReceipt) recebem PayOsSdkConnectorCallback. Os parâmetros de onRequest, onMessage e onError passam a ser tipos PayOS:
| Até 1.0.15 | A partir da 1.2.0 |
|---|---|
ConnectorCallback | PayOsSdkConnectorCallback |
RequestFlowEnum | PayOsSdkRequestFlow |
NotificationType | PayOsSdkNotificationType |
ReturnCodes | PayOsSdkReturnCode |
CvvTypeEnum | PayOsSdkCvvType |
CreditType | PayOsSdkCreditType |
AuthTypeEnum | PayOsSdkAuthType |
ReasonUndoEnum | PayOsSdkReasonUndo |
EncryptMode | PayOsSdkEncryptMode |
ReadCardType | PayOsSdkReadCardType |
TransactionStatus | PayOsSdkPinpadTransactionStatus |
TypeTransaction | PayOsSdkTransactionType |
PayOsSdkTransactionType inclui VOUCHER e PICPAY. Um when exaustivo que compilava antes precisa tratar esses dois valores. makeTransaction continua aceitando apenas CREDIT, DEBIT e PIX; os demais tipos retornam PayOsSdkReturnCode.INVALID_TRANSACTION.
Assinaturas que mudam de tipo:
setCvvTyperecebePayOsSdkCvvType.PayOsSdkTransactionParams.getCreditType/setCreditTypeusamPayOsSdkCreditType.PayOsSdkTransactionParams.getTypeTransaction()devolvePayOsSdkTransactionType. Antes devolviaTypeTransaction.- Em
PayOsSdkTransactionStore,reasonUndo,authentication,entryModeeencryptModeusam os enums PayOS da tabela acima.
class PaymentCallback : PayOsSdkConnectorCallback {
override fun onRequest(flow: PayOsSdkRequestFlow, payload: Any?) {}
override fun onMessage(type: PayOsSdkNotificationType, message: String) {}
override fun onApproved(data: Any?) {}
override fun onError(code: PayOsSdkReturnCode, messages: List<String>, extra: Int?) {}
}revertTransaction recebe um objeto de parâmetros
revertTransaction recebe um objeto de parâmetrosrevertTransaction deixa de receber a gatewayKey como String. O primeiro argumento passa a ser PayOsSdkRevertTransactionParams, com a chave e a flag de comprovante.
Antes:
payment.revertTransaction(gatewayKey, callback)A partir da 1.2.0:
val params = PayOsSdkRevertTransactionParams()
params.setGatewayKey(gatewayKey)
params.setPrintReceipt(false)
payment.revertTransaction(params, callback)makeTransaction e revertTransaction aceitam um terceiro argumento opcional, receiptCallback: PayOsSdkConnectorCallback?. O default é null, então a chamada com dois argumentos continua válida. Esse callback só entra em cena quando printReceipt = true no objeto de parâmetros.
setPrintReceipt existe em PayOsSdkTransactionParams e em PayOsSdkRevertTransactionParams. O default é false: a transação conclui no callback de pagamento e o SDK não imprime. Com true, depois do onApproved desse callback o SDK imprime a 1ª via do estabelecimento e entrega o resultado da impressão no receiptCallback. A via só fica marcada como impressa quando a impressão termina com sucesso.
Pagamento com comprovante:
val params = PayOsSdkTransactionParams()
params.setAmount(1500)
params.setTypeTransaction(PayOsSdkTransactionType.CREDIT)
params.setCreditType(PayOsSdkCreditType.NO_INSTALLMENT)
params.setPrintReceipt(true)
payment.makeTransaction(params, paymentCallback, receiptCallback)Estorno com comprovante:
val params = PayOsSdkRevertTransactionParams()
params.setGatewayKey(gatewayKey)
params.setPrintReceipt(true)
payment.revertTransaction(params, paymentCallback, receiptCallback)Sem comprovante, omita o terceiro argumento e deixe a flag desligada:
params.setPrintReceipt(false)
payment.makeTransaction(params, paymentCallback)
payment.revertTransaction(revertParams, paymentCallback)No Nexgo, printReceipt = true responde PayOsSdkReturnCode.UNSUPPORTED_OPERATION no receiptCallback.
PayOsSdkPrinter imprime bitmap
PayOsSdkPrinter imprime bitmapOs seguintes métodos não são mais expostos pela interface pública:
setAlignModefontSetspaceSetprintStrprintLineleftIndentsetDoubleWidthsetDoubleHeightsetInvert
A interface que permanece é: configure, init, getStatus, start, printBitmap, step e setGray. setGray aceita níveis de 0 a 4; valores fora desse intervalo são limitados a esse range. O comprovante do SDK usa nível 4.
O flavor Nexgo não publica PayOsSdkPrinter. printReceipt e a impressão automática do comprovante respondem PayOsSdkReturnCode.UNSUPPORTED_OPERATION.
Nexgo exige minSdk 24
minSdk 24O AAR payment-pos-nexgo declara minSdk 24, e o flavor Nexgo do PayOS SDK acompanha esse valor. Pax e PAGS permanecem em 23. Um app Nexgo com minSdk 23 falha no merge do manifest.
Comprovante
PayOsSdkTransactionParams.setPrintReceipt(true) e PayOsSdkRevertTransactionParams.setPrintReceipt(true) pedem a 1ª via do estabelecimento depois de onApproved. A via só é consumida quando a impressão termina com sucesso. O receiptCallback opcional acompanha essa impressão.
printReceipt(copyType, callback) reimprime a última transação com status CONFIRMED ou CANCELLED.
PayOsSdkReceiptCopyType | Via | Regra |
|---|---|---|
ESTABLISHMENT | 1ª via do estabelecimento | Pode tentar de novo se a impressão falhou. Depois de um sucesso, a próxima chamada devolve INVALID_CALL. |
CLIENT | 1ª via do cliente | Mesma regra da via do estabelecimento. |
ESTABLISHMENT_SECOND_COPY | 2ª via do estabelecimento | Uma impressão bem-sucedida. |
CLIENT_SECOND_COPY | 2ª via do cliente | Uma impressão bem-sucedida. |
Mensagens de INVALID_CALL:
A 1a via do estabelecimento já foi impressa. Só é possível fazer reimpressão.A 1a via do cliente já foi impressa. Só é possível fazer reimpressão.A 2a via do estabelecimento já foi impressa.A 2a via do cliente já foi impressa.
O comprovante é um bitmap. O rodapé usa o nome e o versionName do app hospedeiro. A intensidade térmica do comprovante é 4. Falta de papel em start() devolve erro de hardware; o resultado deixa de ser sucesso com a bobina vazia.
No Nexgo, essas chamadas devolvem UNSUPPORTED_OPERATION (Impressora não suportada neste terminal.).
Checklist de migração
- Troque a dependência para
payossdk-pax-debug,payossdk-nexgo-debugoupayossdk-pags-debugna versão1.2.0, apontando parapayossdk-debug.- Para release, basta remover o sufixo -debug dos artefatos e do repositório Maven.
- Corrija os imports e passe a usar os tipos da tabela de breaking changes.
- Troque
revertTransaction(gatewayKey, callback)porPayOsSdkRevertTransactionParams. - Ajuste
getTypeTransaction(),setCreditType/getCreditType,setCvvTypee os campos dePayOsSdkTransactionStore. - Feche os ramos
VOUCHERePICPAYnoswhendePayOsSdkTransactionType. - No Pax, substitua impressão por texto por
printBitmap, ou usesetPrintReceipt(true)eprintReceipt. - No Nexgo, suba o
minSdkdo app para 24 e trateUNSUPPORTED_OPERATIONnas interfaces de comprovante.
Updated about 4 hours ago