Ir para o conteúdo

[OBSOLETO] Realiza el proceso de devolución no referenciada.


Se debe llamar a este método para realizar una devolución no referenciada con tarjeta física, es dicer, sin QR Code.

Métodos

Assinatura Descripción
void refundPayment(RefundRequest settlementRequest, PaymentCallback paymentCallback) Realiza el proceso de devolución no referenciada. (OBSOLETO: Use refundPaymentV2)

Parámetros

Nombre Tipo Obligatorio Descripción
request RefundRequest Objeto de transferencia de datos que contendrá la información de la solicitud de devolución no referenciada. Tenga en cuenta que no se requieren todos los parámetros.
callback PaymentCallback Interfaz que se ejecutará para notificaciones de éxito o error del proceso de devolución.

Detalle de los Parámetros request (RefundRequest)

Nombre Tipo Obligatorio Descripción
value BigDecimal No Monto de devolución no referenciada. Si no se completa (null), o se completa con 0 (cero), la Aplicación de Pago debe solicitar el monto al operador.
ApplicationInfo.credentials Credentials Credenciales de la aplicación que solicita la operación, según lo registrado en PayStore. Básicamente, se trata de la identificación de la aplicación y el token de acceso.
ApplicationInfo.softwareVersion String No Versión de la aplicación que solicita el pago.
printMerchantReceipt Boolean No Indica si se debe imprimir el recibo del establecimiento o no. El valor predeterminado es false, es decir, el recibo no se imprime.
printCustomerReceipt Boolean No Indica si el recibo del cliente debe imprimirse o no. El valor predeterminado es false, es decir, el recibo no se imprime.
productShortName String No Una vez completada, luego de leer la tarjeta e identificar el producto de marca, si no coincide con el productShortName del producto en cuestión, el terminal debe mostrar un error en la pantalla y cerrar la transacción. Ejemplos: VI=VISA, MC=MASTERCARD, AX=AMEX
appTransactionId String No Identificador de transacción integrado para el software. El identificador referido es el utilizado en la aplicación que originó la solicitud de devolución. No debe repetirse.

callback (RefundCallback)

Nombre Tipo Obligatorio Descripción
onSuccess Método de notificación de éxito
Refund.acquirerId String ID del adquirente.
Refund.refundId String ID de la devolución.
Refund.productShortName String Coincide con el productShortName correspondiente al producto de marca del contexto de la transacción.
Refund.batchNumber String ID del lote al que pertenece la transacción.
Refund.nsuTerminal String NSU generado por el terminal para la transacción. Los 4 dígitos de la derecha corresponden al número de ticket. Esta NSU es informada por el terminal para el PhAST en el parámetro "merchantTransactionId".
Refund.acquirerResponseCode String Código de respuesta del adquirente.
Refund.acquirerResponseDate Date Fecha/hora devuelta por el adquirente.
Refund.acquirerAuthorizationNumber String Número de autorización proporcionado por el adquirente (aparece en el recibo del cliente del Titular de la tarjeta).
Refund.Receipt.merchantVia String No Contenido del recibo - copia del comercio.
Refund.Receipt.clientVia String No Contenido del recibo - copia del cliente.
onError Método de notificación en caso de error.
ErrorData.paymentsResponseCode String Código de respuesta para el error que ocurrió. Ver Códigos de Respuesta
ErrorData.acquirerResponseCode String No Código de respuesta para el error que ocurrió devuelto por el adquirente. Tenga en cuenta que este error solo se devolverá si la transacción no está autorizada por el adquirente.
ErrorData.responseMessage String Mensaje que describe la causa del error.

Ejemplo

public class MyActivity extends Activity implements PaymentClient.PaymentCallback {

    private PaymentClient paymentClient;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_payment);

        paymentClient = new PaymentClientImpl();
    }

    @Override
    protected void onResume() {
        super.onResume();
        paymentClient.bind(this);
    }

    @Override
    protected void onDestroy() {
         try {
            paymentClient.unbind(this);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }
        super.onDestroy();
    }

    public void doExecute(){
        ApplicationInfo appInfo = new ApplicationInfo();
        appInfo.setCredentials(new Credentials("demo-app", "TOKEN-KEY-DEMO"));
        appInfo.setSoftwareVersion("1.0.0.0");

        RefundRequest refundRequest = new RefundRequest();
        refundRequest.setApplicationInfo(appInfo);
        refundRequest.setPrintMerchantReceipt(true);

        try {
            paymentClient.refundPayment(refundRequest, this);
        } catch (ClientException e) {
            Log.e(TAG, "Error starting devolution", e);
        }
    }

    @Override
    public void onError(ErrorData errorData) {
        Log.e(TAG, "Error: " + errorData.getResponseMessage());
    }

    @Override
    public void onSuccess(Refund refund) {
        Log.i(TAG, "Success!");
    }
}