Realiza o processo de devolução não referenciada.¶
Esse método deve ser chamado para executar a devolução não referenciada.
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 refundPaymentV2(RefundRequestV2 settlementRequest, PaymentCallback paymentCallback) |
Realiza o processo de devolução não referenciada. |
void confirmReversePayment(String paymentId, PaymentCallback paymentCallback) |
Confirma uma autorização de devolução não autorizada realizada anteriormente. |
void cancelReversePayment(String paymentId, PaymentCallback paymentCallback) |
Desfaz uma solicitação devolução não referenciada. |
refundPaymentV2()¶
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
RefundRequestV2 |
Sim | Objeto de transferência de dados que conterá as informações da requisição da devolução não referenciada. 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 devolução. |
Detalhe dos parâmetros request (RefundRequestV2)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
value |
BigDecimal |
Não | Valor da devolução não referenciada. Caso não seja preenchido (null), ou seja preenchido com 0 (zero), o App de Pagamento deve solicitar o valor ao operador. O valor deverá ser formatado com duas casas decimais. |
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 |
Não | 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. |
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 |
appTransactionId |
String |
Não | Identificador da transação integrada para o software. O Identificador referido é aquele utilizado na aplicação que originou a solicitação de devolução. Não deve se repetir. |
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. |
originalReceiptNumber |
String |
Não | Número do cupom da transação original a ser reembolsada. |
originalReceiptDate |
Date |
Não | Data do comprovante da transação original a ser reembolsada. |
callback (RefundCallback)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
Método para notificação em caso de sucesso. | ||
Refund.acquirerId |
String |
Sim | ID da adquirente. |
Refund.refundId |
String |
Sim | ID da devolução. |
Refund.productShortName |
String |
Sim | Corresponde ao productShortName correspondente ao produto de bandeira do contexto da transação. |
Refund.batchNumber |
String |
Sim | ID do lote ao qual a transação pertence. |
Refund.nsuTerminal |
String |
Sim | NSU gerado pelo terminal para a transação. Os 4 dígitos mais à direita correspondem ao Ticket Number. Esse NSU é informado pelo terminal para o PhAST no parâmetro “merchantTransactionId”. |
Refund.acquirerResponseCode |
String |
Sim | Código de resposta da adquirente. |
Refund.acquirerResponseDate |
Date |
Sim | Data/hora retornada pela adquirente. |
Refund.acquirerAuthorizationNumber |
String |
Sim | Número da autorização fornecido pela adquirente (consta no comprovante do cliente Portador do Cartão). |
Refund.Receipt.merchantVia |
String |
Não | Conteúdo do comprovante - via do estabelecimento. Cópia lojista |
Refund.Receipt.clientVia |
String |
Não | Conteúdo do comprovante - via do cliente. Cópia cliente |
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. |
confirmReversePayment()¶
Este método deve ser chamado para confirmar uma devolução não referenciada que o terminal conseguiu processar completamente a perna de autorização enviada pelo Autorizador.
Este método não deve ser chamado para uma devolução não referenciada já confirmado, ou seja, em que já se executou o método confirmReversePayment() anteriormente.
Este método não deve ser chamado para uma devolução não referenciada já desfeito, ou seja, em que já se executou o método cancelReversePayment() anteriormente.
Este método não deve ser chamado para uma devolução não referenciada 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 devolução não referenciada 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 uma devolução não referenciada 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");
RefundRequestV2 refundRequestV2 = new RefundRequestV2();
refundRequestV2.setApplicationInfo(appInfo);
refundRequestV2.setPrintMerchantReceipt(true);
try {
paymentClient.refundPaymentV2(refundRequestV2, 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!");
}
}