Devolución¶
Devolución de una PIX¶
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.
La devolución se podrá realizar de dos formas:
refund()¶
Para enumerar las opciones de reembolso, se utilizará la función refund y se debe pasar la siguiente solicitud:
Request¶
{
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
Request |
refundPixPayment |
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 |
RefundPixPaymentCallback |
Sí | Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix. |
Detalles de parámetros
request (refundPixPayment)
| 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 de parámetros
callback (RefundPixPaymentCallback)
| 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 RefundPixService(
pixClient: PixClient,
previewCustomerReceipt: Boolean,
previewMerchantReceipt: Boolean,
printCustomerReceipt: Boolean,
printMerchantReceipt: Boolean,
context: Context
) {
val gson: Gson = Gson()
val refundPixRequest = RefundPixRequest(previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
val callback = object : PixClient.RefundCallback {
override fun onError(response: String?) {
println("Erro ao devolver $response")
val alertDialog = AlertDialog.Builder(context)
alertDialog.setTitle(R.string.refund)
.setMessage("Não foi possível realizar a devolução.")
.setNeutralButton("Ok") { _, _ -> }
.show()
}
override fun onSuccess(response: String?) {
val alertDialog = AlertDialog.Builder(context)
alertDialog.setTitle(R.string.refund)
.setMessage("Devolução realizada com sucesso.")
.setNeutralButton("Ok") { _, _ -> }
.show()
}
}
pixClient.refund(
gson.toJson(refundPixRequest),
callback
)
}
Ejemplo de la clase RefundPixRequest:¶
data class RefundPixRequest(
@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
)
refundPixPayment()¶
Para realizar un reembolso utilizando tx-id, se utilizará la función refundPixPayment y se deberá pasar la siguiente solicitud:
Request¶
{
"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 |
refundByTxIdPixPayment |
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 |
RefundByTxIdPixPaymentCallback |
Sí | Interfaz que se ejecutará para notificaciones de éxito o error en el proceso de pix. |
Detalles de los parámetros
request (refundByTxIdPixPayment)
| 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 (RefundByTxIdPixPaymentCallback)
| 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 refundPixService(
pixClient: PixClient,
txId: String,
previewCustomerReceipt: Boolean,
previewMerchantReceipt: Boolean,
printCustomerReceipt: Boolean,
printMerchantReceipt: Boolean,
context: Context
) {
val gson: Gson = Gson()
val refundPixRequest = RefundPixRequest(txId, previewCustomerReceipt, previewMerchantReceipt, printCustomerReceipt, printMerchantReceipt)
val callback = object : PixClient.RefundPixPaymentCallback {
override fun onError(response: String?) {
println("Erro ao devolver $response")
val alertDialog = AlertDialog.Builder(context)
val responseError = gson.fromJson(response, PixErrorResponse::class.java)
alertDialog.setTitle(R.string.pix_refund)
.setMessage(responseError.errorMessage)
.setNeutralButton("Ok") { _, _ -> }
.show()
}
override fun onSuccess(response: String?) {
val pixResponse = gson.fromJson(response, PixResponse::class.java)
println("Devolvido $pixResponse")
Toast.makeText(context, "Pix devolvido!", Toast.LENGTH_SHORT).show()
}
}
pixClient.refundPixPayment(
gson.toJson(refundPixRequest),
callback
)
}
Ejemplo de la clase RefundByTxIdPixRequest:¶
data class RefundByTxIdPixRequest(
@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
)
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
)