Realiza o processo de anulação/devolução referenciada sem paymentId.¶
Esse método deve ser chamado para executar a anulação/devolução referenciada sem paymentId.
A partir da versão 3.1.5.0
Quando uma transação é feita, anteriormente, poderia ser confirmado realizando sua impressão (ou via printReceipt), ou ao realizar uma nova transação. Agora, o estorno também pode ser confirmado ao usar o novo parâmetro autoConfirm - indicando se deve ou não confirmar independente da impressão - ou utilizando o novo método confirmReversePayment().
Métodos¶
| Assinatura | Descrição |
|---|---|
void reversePaymentWithFilter(ReversePaymentFilterRequest settlementRequest, PaymentCallback paymentCallback) |
Realiza o processo de anulação/devolução referenciada sem paymentId. |
void confirmReversePayment(String paymentId, PaymentCallback paymentCallback) |
Confirma uma autorização de estorno de pagamento realizada anteriormente. |
void cancelReversePayment(String paymentId, PaymentCallback paymentCallback) |
Desfaz uma solicitação de estorno de pagamento. |
reversePaymentWithFilter()¶
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
ReversePaymentFilterRequest |
Sim | Objeto de transferência de dados que conterá as informações da requisição da anulação/devolução referenciada sem paymentId. Note que nem todos os parâmetros são obrigatórios. |
callback |
PaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro do processo de anulação/devolução. |
Detalhe dos parâmetros request (ReversePaymentFilterRequest)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
value |
BigDecimal |
Não | Valor da transação a ser devolvida. Caso não seja preenchido (null), ou seja, preenchido com 0 (zero), o App de Pagamento deve solicitar o valor ao operador. |
ApplicationInfo.credentials |
Credentials |
Sim | Credenciais da aplicação que está solicitando a operação, conforme cadastro na PayStore. Basicamente, trata-se da identificação da aplicação e o token de acesso. |
ApplicationInfo.softwareVersion |
String |
Sim | Versão da aplicação que está solicitando o pagamento. |
printMerchantReceipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso ou não. O valor padrão é false, isto é, o comprovante não é impresso. |
printCustomerReceipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso ou não. O valor padrão é false, isto é, o comprovante não é impresso. |
operationMethod |
Integer |
Não | Indica o método de operação (QR ou Card) usado para o pagamento original. Admita o seguintes valores: 0 - Apenas com cartão físico (ler ou datilografado); 1 - Somente com QRCode; Se não for relatado, modos de disponível no terminal capturar. |
productShortName |
String |
Não | Quando preenchido, após a leitura do cartão e identificação do produto de bandeira, caso não corresponda a productShortName do produto em questão, o terminal deve exibir um erro em tela e encerrar a transação. Exemplos: VI=VISA, MC=MASTERCARD, AX=AMEX |
ticketNumber |
String |
Não | Indica o número do cupom, após a transação de pagamento realizada com um cartão físico. |
cv |
String |
Não | Indica o número do CV(acquirerNsu), após a transação de pagamento realizada com um cartão físico. |
originalQRId |
String |
Não | Identificador QrCode gerado pelo terminal de captura. Quando a transação de pagamento é realizada através de Código QR |
Payment.paymentDate |
Date |
Não | Indica a data/hora de pagamento para o App de Pagamentos. Quando a transação de pagamento não é conhecido pelo terminal de captura, ou seja, foi feito em outro terminal. |
previewMerchantReceipt |
Boolean |
Não | Indica se a tela de pré-visualização do comprovante do estabelecimento deve ser exibida após a confirmação da transação. O valor padrão é true, o que significa que o comprovante será exibido. |
previewCustomerReceipt |
Boolean |
Não | Indica se a tela de pré-visualização do comprovante do cliente deve ser exibida após a confirmação da transação. O valor padrão é true, o que significa que o comprovante será exibido. |
autoConfirm (v3.1.5.0) |
Boolean |
Não | Indica se a transação deve ser confirmada automaticamente. Valores possíveis: 1. null (padrão) : confirma automaticamente caso ocorra a impressão do comprovante.2. true : confirma automaticamente independente da regra de impressão.3. false : não confirma automaticamente, ficando pendente aguardando confirmação. |
merchantGroupCode |
String |
Se allowMultimerchant= true, groupCode é obrigatório |
Código do grupo de comerciantes. |
callback
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
Método para notificação em caso de sucesso. | ||
ReversePayment.paymentId |
String |
Sim | ID da transação de reversão. |
ReversePayment.acquirerId |
String |
Sim | ID da Adquirente. |
ReversePayment.cancelable |
Boolean |
Sim | Retorna se a transação pode ser desfeita(true) ou não(false). |
ReversePayment.acquirerResponseCode |
String |
Sim | Código de resposta da Adquirente. |
ReversePayment.acquirerResponseDate |
String |
Sim | Data/hora retornada pela adquirente. |
ReversePayment.acquirerAuthorizationNumber |
String |
Sim | Número de autorização fornecido pela adquirente (consta no comprovante do cliente portador do cartão). |
acquirerAdditionalMessage |
String |
Não | Mensagem adicional enviada pela adquirente na resposta da transação. |
ReversePayment.Receipt.clientVia |
String |
Não | Conteúdo do comprovante - via do cliente. |
ReversePayment.Receipt.merchantVia |
String |
Não | Conteúdo do comprovante - via do estabelecimento. |
batchNumber |
String |
Sim | Número do lote. |
nsuTerminal |
String |
Sim | NSU gerado pelo terminal para a transação. Os 4 dígitos mais à direita correspondem ao Ticket Number. |
cardholderName |
String |
Sim | Nome do cliente no cartão. |
cardBin |
String |
Sim | Primeros 6 dígitos do cartão. |
panLast4Digits |
String |
Sim | Últimos 4 dígitos do cartão. |
terminalId |
String |
Sim | Identificador do terminal. |
qrId |
String |
Não | Identificador QrCode gerado pelo terminal de captura. |
onError |
Método para notificação em caso de erro. | ||
ErrorData.paymentsResponseCode |
String |
Sim | Código de resposta para o erro ocorrido. Vide Códigos de Resposta |
ErrorData.acquirerResponseCode |
String |
Não | Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente. |
ErrorData.responseMessage |
String |
Sim | Mensagem descritiva da causa do erro. |
acquirerAdditionalMessage |
String |
Não | Mensagem adicional enviada pela adquirente na resposta da transação. |
confirmReversePayment()¶
Este método deve ser chamado para confirmar um estorno que o terminal conseguiu processar completamente a perna de autorização enviada pelo Autorizador.
Este método não deve ser chamado para um estorno já confirmado, ou seja, em que já se executou o método confirmReversePayment() anteriormente.
Este método não deve ser chamado para um estorno já desfeito, ou seja, em que já se executou o método cancelReversePayment() anteriormente.
Este método não deve ser chamado para um estorno que foi negada pelo Autorizador, ou seja, a transação precisa ter sido autorizada pelo Autorizador.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentId |
String |
Sim | Identificador da transação que será confirmada. O Identificador referido é aquele utilizado na aplicação de pagamentos. |
callback |
PaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro. |
Detalhe dos parâmetros
callback
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
Método para notificação em caso de sucesso. | ||
onError |
Método para notificação em caso de erro. | ||
ErrorData.paymentsResponseCode |
String |
Sim | Código de resposta para o erro ocorrido. Vide Códigos de Resposta |
ErrorData.acquirerResponseCode |
String |
Não | Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente. |
ErrorData.responseMessage |
String |
Sim | Mensagem descritiva da causa da não autorização. Caso a transação tenha sido negada pela adquirente, conterá a mensagem retornada pela adquirente. |
cancelReversePayment()¶
Este método deve ser chamado para desfazer uma transação de estorno anteriormente autorizada. Esta transação deve não ter sido desfeita ainda e deve ter sido autorizada (não negada) previamente.
Como dito na descrição de reversePayment(), é possível que não haja desfazimento para a transação de estorno para uma determinada adquirente. Assim, o método cancelReversePayment() pode retornar um erro específico informando que não é possível executar tal operação (vide Códigos de Resposta).
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
paymentId |
String |
Sim | Identificador da transação que será desfeita. O Identificador referido é aquele utilizado na aplicação de pagamentos. |
callback |
PaymentCallback |
Sim | Interface que será executada para notificações de sucesso ou erro. |
Detalhe dos parâmetros
callback
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
Método para notificação em caso de sucesso. | ||
onError |
Método para notificação em caso de erro. | ||
ErrorData.paymentsResponseCode |
String |
Sim | Código de resposta para o erro ocorrido. Vide Códigos de Resposta |
ErrorData.acquirerResponseCode |
String |
Não | Código de resposta para o erro ocorrido retornado pela adquirente. Note que este erro só será retornado se a transação não for autorizada pela adquirente. |
ErrorData.responseMessage |
String |
Sim | Mensagem descritiva da causa da não autorização. Caso a transação tenha sido negada pela adquirente, conterá a mensagem retornada pela adquirente. |
Exemplo¶
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");
ReversePaymentFilterRequest request = new ReversePaymentFilterRequest();
request.setApplicationInfo(appInfo);
request.setPrintMerchantReceipt(true);
try {
paymentClient.reversePaymentWithFilter(request, 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!");
}
}