Ir para o conteúdo

[DESACTIVADO] Sincroniza transacciones y cierra el lote actual.


Se debe llamar a este método para realizar el cierre y el envío de lotes.

Métodos

Suscripción Descripción
void closeBatch(SettlementRequest settlementRequest, PaymentCallback paymentCallback) Sincroniza transacciones y cierra el lote actual.

Parámetros

Nombre Tipo Obligatorio Descripción
request SettlementRequest Objeto de transferencia de datos que contendrá la información de la solicitud de cierre del lote. 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 cierre del lote.

Detalhe dos parámetros request (SettlementRequest)

Nombre Tipo Obligatorio Descripción
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 Versión de la aplicación que solicita el pago.
printMerchantReceipt Boolean No Indica si se debe imprimir el recibo del establecimiento o no.

(DEPRECATED: Usar SettlementCallbackV2)

callback (SettlementCallback)

Nombre Tipo Obligatorio Descripción
onSuccess Método de notificación de éxito.
Settlement.Receipt.merchantVia String Devuelve un recibo del adquirente con la información de cierre del lote.
Settlement.BatchNumber String Numero de lote.
acquirerResponseCode String Código de respuesta del host.
terminalId String Identificación de terminal
acquirerAdditionalMessage String No Mensaje enviado en el campo de respuesta de EPS 63, para ser impreso o mostrado al final del flujo de transacciones. La aplicación de pagos sigue siendo responsable de mostrar en pantalla o verificar el contenido presente en este campo, pero también debe enviar el valor recibido a la aplicación integrada para que pueda aplicar sus reglas de negocio basadas en el contenido de este campo.
onError Método de notificación en caso de falla.
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 solo se devolverá este error si la transacción no está autorizada por el adquirente.
ErrorData.responseMessage String Mensaje descriptivo de la causa de no autorización. Si la transacción fue denegada por el adquirente, contendrá el mensaje devuelto por el adquirente.
ErrorData.acquirerAdditionalMessage String No Mensaje enviado en el campo de respuesta de EPS 63, para ser impreso o mostrado al final del flujo de transacciones. La aplicación de pagos sigue siendo responsable de mostrar en pantalla o verificar el contenido presente en este campo, pero también debe enviar el valor recibido a la aplicación integrada para que pueda aplicar sus reglas de negocio basadas en el contenido de este campo.

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");

        SettlementRequest settlementRequest = new SettlementRequest();
        settlementRequest.setApplicationInfo(appInfo);
        settlementRequest.setPrintMerchantReceipt(true);

        try {
            paymentClient.closeBatch(settlementRequest, this);
        } catch (ClientException e) {
            Log.e(TAG, "Error while closing batch.", e);
        }
    }

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

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