Consulta¶
Consultar transações¶
A consulta pode ser feita de três formas, utilizando o tx_id da transação,
utilizando o pix_client_id que foi passado durante criação da cobrança e realizando a consulta completa, onde:
Info
A funcionalidade de impressão automática está disponível a partir da versão 1.3.3.0 do App Pix.
Para versões anteriores a 1.3.3.0, utilizar print_customer_receipt e print_merchant_receipt para controlar a exibição dos comprovantes.
consultByTxId()¶
Para realizar a consulta utilizando o tx_id da transação:
Request¶
// request de consulta
{
"tx_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42",
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
consultByTxId |
Sim | Objeto de transferência de dados que conterá as informações da requisição do pix. Note que nem todos os parâmetros são obrigatórios. |
callback |
ConsultPixPaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo de consulta. |
Detalhe dos Parâmetros
request (consultByTxId)
| Nome | Tipo | Obrigatório | Descrição | Padrão | |
|---|---|---|---|---|---|
tx_id |
String |
Sim | O tx_id representa o id da transação pix. | ||
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser exibido. | true |
|
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido. | true |
|
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
|
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
Detalhe dos Parâmetros
callback (ConsultPixPaymentCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método para notificação em caso de sucesso. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixResponse |
onError |
String |
Sim | Método para notificação em caso de erro. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixErrorResponse |
fun consultCobRequestService(
pixClient: PixClient,
txId: String,
previewCustomerReceipt: Boolean,
previewMerchantReceipt: Boolean,
printCustomerReceipt: Boolean,
printMerchantReceipt: Boolean,
context: Context
) {
val gson: Gson = Gson()
if (pixClient.isBound() && txId.isNotBlank()) {
val consultCobRequest = ConsultCobRequest(txId, previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
val callback = object : PixClient.ConsultByTxIdCallback {
override fun onError(response: String?) {
val responseError = gson.fromJson(response, PixErrorResponse::class.java)
println("Erro $response")
Toast.makeText(context, responseError.errorMessage, Toast.LENGTH_SHORT).show()
}
override fun onSuccess(response: String?) {
println("consultado $response")
if (response != null) {
val responseObject =
gson.fromJson(response, PixResponse::class.java)
val responseUtils = ResponseUtils()
Toast.makeText(
context,
responseUtils.messageConsultPix(context, responseObject),
Toast.LENGTH_LONG
).show()
}
}
}
pixClient.consultByTxId(
gson.toJson(consultCobRequest),
callback
)
}
}
Exemplo da classe ConsultCobRequest:¶
data class ConsultCobRequest(
@SerializedName("tx_id")
val txId: String,
@SerializedName("preview_customer_receipt")
val previewCustomerReceipt: Boolean,
@SerializedName("preview_merchant_receipt")
val previewMerchantReceipt: Boolean,
@SerializedName("print_customer_receipt")
val printCustomerReceipt: Boolean,
@SerializedName("print_merchant_receipt")
val printMerchantReceipt: Boolean
)
Exemplo da classe ResponseUtils:¶
class ResponseUtils {
fun messageConsultPix(context: Context, response: PixResponse): String {
return "${context.getString(R.string.consult)}: \n" +
"${context.getString(R.string.value)}: ${response.cobValue} \n" +
"${context.getString(R.string.status)}: ${chargeStatus(context, response.status.getValue())} \n" +
"${context.getString(R.string.tx_id)}: ${response.txID}"
}
fun chargeStatus(context: Context, status: String): String {
return when (status) {
ChargeStatus.ACTIVE.getValue() -> context.getString(R.string.active)
ChargeStatus.CONCLUDED.getValue() -> context.getString(R.string.sale)
ChargeStatus.REFUNDED.getValue() -> context.getString(R.string.refunded)
ChargeStatus.REFUND_PROCESSING.getValue() -> context.getString(R.string.refund_processing)
ChargeStatus.REFUND_NOT_DONE.getValue() -> context.getString(R.string.refund_not_done)
ChargeStatus.REMOVED_BY_USER.getValue() -> context.getString(R.string.cancelled_charge)
ChargeStatus.REMOVED_BY_PSP.getValue() -> context.getString(R.string.cancelled_charge)
ChargeStatus.EXPIRED.getValue() -> context.getString(R.string.expired)
else -> ""
}
}
}
PixResponse¶
data class PixResponse(
@SerializedName("cob_value")
val cobValue: String,
@SerializedName("status")
var status: String,
@SerializedName("tx_id")
val txID: String,
)
PixErrorResponse¶
class PixErrorResponse (
@SerializedName("error_message")
val errorMessage: String
)
consultByPixClientId()¶
Para consultar utilizando o pix_client_id:
Request¶
// request de consulta
{
"pix_client_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42"
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
consultByPixClientId |
Sim | Objeto de transferência de dados que conterá as informações da requisição do pix. Note que nem todos os parâmetros são obrigatórios. |
callback |
ConsultByPixClientIdCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo do pix. |
Detalhe dos Parâmetros
request (consultByPixClientId)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
pix_client_id |
String |
Sim | O pix_client_id é um identificador único utilizado pelo app de integração para identificar as cobranças criadas. |
Detalhe dos Parâmetros
callback (ConsultByPixClientIdCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método para notificação em caso de sucesso. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixResponse |
onError |
String |
Sim | Método para notificação em caso de erro. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixErrorResponse |
fun consultPixClientIdRequestService(
pixClient: PixClient,
pixClientId: String,
context: Context
) {
val gson: Gson = Gson()
if (pixClient.isBound() && pixClientId.isNotBlank()) {
val consultPixByCorrelationIdRequest = ConsultPixByCorrelationIdRequest(pixClientId)
val callback = object : PixClient.ConsultByPixClientIdCallback {
override fun onError(response: String?) {
val responseError = gson.fromJson(response, PixErrorResponse::class.java)
println("Erro $response")
Toast.makeText(context, responseError.errorMessage, Toast.LENGTH_LONG).show()
}
override fun onSuccess(response: String?) {
println("Consultado $response")
if (response != null) {
val responseObject =
gson.fromJson(response, PixResponse::class.java)
val responseUtils = ResponseUtils()
Toast.makeText(
context,
responseUtils.messageConsultPix(context, responseObject),
Toast.LENGTH_LONG
).show()
}
}
}
pixClient.consultByPixClientId(
gson.toJson(consultPixByCorrelationIdRequest),
callback
)
}
}
Exemplo da classe ConsultPixByCorrelationIdRequest:¶
data class ConsultPixByCorrelationIdRequest(
@SerializedName("pix_client_id")
val pixClientId: String
)
PixResponse¶
data class PixResponse(
@SerializedName("cob_value")
val cobValue: String,
@SerializedName("status")
var status: String,
@SerializedName("tx_id")
val txID: String,
)
PixErrorResponse¶
class PixErrorResponse (
@SerializedName("error_message")
val errorMessage: String
)
consult()¶
O método PixClient.ConsultCallback faz uma consulta utilizando a API do cliente Pix e lida com os resultados dessa consulta através de um callback.
Request¶
// request de consulta
{
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
PixClientConsult |
Sim | Objeto de transferência de dados que conterá as informações da requisição do pix. Note que nem todos os parâmetros são obrigatórios. |
callback |
PixClientConsultCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo do pix. |
Detalhe dos Parâmetros
request (pixClientconsult)
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser exibido. | true |
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido. | true |
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
Detalhe dos Parâmetros
callback (ConsultPixPaymentCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método para notificação em caso de sucesso. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixResponse |
onError |
String |
Sim | Método para notificação em caso de erro. A resposta retornada será uma string no formato json que possui os campos demostrados na classe PixErrorResponse |
val callback = object : PixClient.ConsultCallback {
override fun onError(response: String?) {
Toast.makeText(context, "Erro na consulta: $response", Toast.LENGTH_LONG).show()
onError(response)
}
override fun onSuccess(response: String?) {
Toast.makeText(context, "Consulta realizada com sucesso.", Toast.LENGTH_LONG).show()
onSuccess(response)
}
}
pixClient.consult(request, callback)