[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 |
Sí | 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 |
Sí | 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 |
Sí | 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 |
Sí | ID del adquirente. |
Refund.refundId |
String |
Sí | ID de la devolución. |
Refund.productShortName |
String |
Sí | Coincide con el productShortName correspondiente al producto de marca del contexto de la transacción. |
Refund.batchNumber |
String |
Sí | ID del lote al que pertenece la transacción. |
Refund.nsuTerminal |
String |
Sí | 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 |
Sí | Código de respuesta del adquirente. |
Refund.acquirerResponseDate |
Date |
Sí | Fecha/hora devuelta por el adquirente. |
Refund.acquirerAuthorizationNumber |
String |
Sí | 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 |
Sí | 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 |
Sí | 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!");
}
}