Consulta¶
Consultar transacciones¶
La consulta se puede realizar de tres formas, utilizando el tx_id de la transacción,
utilizando el pix_client_id que se pasó al crear el cargo y realizar la consulta completa donde.
Info
La funcionalidad de impresión automática está disponible a partir de la versión 1.3.3.0 de la aplicación Pix.
consultByTxId()¶
Para realizar la consulta usando el tx_id de la transacción:
Request¶
// solicitud 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
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
request |
consultByTxId |
Sí | Objeto de transferencia de datos que contendrá la información de solicitud de foto. Tenga en cuenta que no todos los parámetros son obligatorios. |
callback |
ConsultPixPaymentCallback |
Sí | Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix. |
Detalles de los parámetros
request (consultByTxId)
| Nombre | Tipo | Obligatorio | Descripción | Valor por defecto |
|---|---|---|---|---|
tx_id |
String |
Sí | tx_id representa la identificación de la transacción pix. | |
preview_customer_receipt |
Boolean |
No | Indica si se debe mostrar el comprobante del cliente. | true |
preview_merchant_receipt |
Boolean |
No | Indica si se debe mostrar el comprobante del establecimiento. | true |
print_customer_receipt |
Boolean |
No | Indica si el comprobante del cliente debe imprimirse automáticamente. Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada ( false). |
true |
print_merchant_receipt |
Boolean |
No | Indica si el comprobante del establecimiento debe imprimirse automáticamente. Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada ( false). |
true |
Detalles de los parámetros
callback (ConsultPixPaymentCallback)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
onSuccess |
Cadena |
Sí | Método de notificación en caso de éxito. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase PixResponse |
onError |
Cadena |
Sí | Método de notificación en caso de error. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase 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
)
}
}
Ejemplo de la clase 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
)
Ejemplo de clase 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 usando pix_client_id:
Request¶
// solicitud de consulta
{
"pix_client_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42"
}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
request |
consultByPixClientId |
Sí | Objeto de transferencia de datos que contendrá la información de solicitud de foto. Tenga en cuenta que no todos los parámetros son obligatorios. |
callback |
ConsultByPixClientIdCallback |
Sí | Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix. |
Detalles de los parámetros
request (consultByPixClientId)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
pix_client_id |
String |
Sí | pix_client_id es un identificador único utilizado por la aplicación de integración para identificar los cargos creados. Admite hasta 36 caracteres. |
Detalles de los parámetros
callback (ConsultByPixClientIdCallback)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
onSuccess |
Cadena |
Sí | Método de notificación en caso de éxito. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase PixResponse |
onError |
Cadena |
Sí | Método de notificación en caso de error. La respuesta devuelta será una cadena en formato json que tendrá los campos mostrados en la clase 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
)
}
}
Ejemplo de la clase 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()¶
El método PixClient.ConsultCallback realiza una consulta utilizando la API del cliente Pix y maneja los resultados de esta consulta a través de un callback.
Request¶
// request de consulta
{
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
request |
PixClientConsult |
Sí | Objeto de transferencia de datos que contiene la información de la solicitud PIX. Tenga en cuenta que no todos los parámetros son obligatorios. |
callback |
PixClientConsultCallback |
Sí | nterfaz que se ejecutará para notificaciones de éxito o error del proceso PIX. |
Detalles del Parámetro
request (pixClientconsult)
| Nombre | Tipo | Obligatorio | Descripción | Valor por defecto |
|---|---|---|---|---|
preview_customer_receipt |
Boolean |
No | Indica si se debe mostrar el comprobante del cliente. | true |
preview_merchant_receipt |
Boolean |
No | Indica si se debe mostrar el comprobante del establecimiento. | true |
print_customer_receipt |
Boolean |
No | Indica si el comprobante del cliente debe imprimirse automáticamente. Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada ( false). |
true |
print_merchant_receipt |
Boolean |
No | Indica si el comprobante del establecimiento debe imprimirse automáticamente. Nota: La impresión automática solo ocurrirá si la vista previa del comprobante está desactivada ( false). |
true |
Detalles del Parámetro
callback (ConsultPixPaymentCallback)
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
onSuccess |
String |
Sí | Método para notificación en caso de éxito. La respuesta devuelta será una cadena JSON que contiene los campos mostrados en la clase PixResponse |
onError |
String |
Sí | Método para notificación en caso de error. La respuesta devuelta será una cadena JSON que contiene los campos mostrados en la clase 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)