[DEPRECATED] Sincroniza as transações e fecha o lote atual
Esse método deve ser chamado para executar o fechamento de lote e envio do mesmo.
O lote é um conjunto de transações utilizado para agrupar vários pagamentos e estornos. O lote é aberto quando a primeira transação é feita, essa transação vai receber o número do lote a que está associada. No fechamento de lote, o terminal busca todas as transações associadas ao lote a ser fechado e gera o relatório para enviar ao host e para impressão. Apenas um lote é aberto por vez no terminal. Quando for fechado, a transação seguinte irá abrir um novo lote, incrementando o número do lote anterior. Quando ocorrem erros e transações ficam pendentes, não é possível realizar o fechamento de lote.
Métodos
| Assinatura |
Descrição |
void closeBatchV2(SettlementRequest settlementRequest, PaymentCallbackV2 paymentCallbackV2) |
Sincroniza as transações e fecha o lote atual. |
Parâmetros
| Nome |
Tipo |
Obrigatório |
Descrição |
request |
SettlementRequest |
Sim |
Objeto de transferência de dados que conterá as informações da requisição do fechamento de lote. Note que nem todos os parâmetros são obrigatórios. |
callback |
PaymentCallbackV2 |
Sim |
Interface que será executada para notificações de sucesso ou erro do processo de fechamento de lote. |
Detalhe dos parâmetros
request (SettlementRequest)
| Nome |
Tipo |
Obrigatório |
Descrição |
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. |
(Disponível a partir da versão(.aar) v3.1.4.0)
callback (SettlementCallbackV2)
| Nome |
Tipo |
Obrigatório |
Descrição |
onSuccess |
|
|
Método para notificação em caso de sucesso. |
Settlement.Receipt.merchantVia |
String |
Sim |
Retorna um comprovante da adquirente com as informações do fechamento de lote. |
Settlement.BatchNumber |
String |
Sim |
Número de lote. |
acquirerResponseCode |
String |
Sim |
Código de resposta do host. |
terminalId |
String |
Sim |
Identificação do terminal |
acquirerAdditionalMessage |
String |
Não |
Mensagem enviada no campo 63 de resposta EPS, para ser impressa ou exibida no final do fluxo transacional. O aplicativo de pagamentos permanece responsável por exibir na tela ou verificar o conteúdo presente neste campo, mas também deve enviar o valor recebido para a aplicação integrada para que ela possa aplicar suas regras de negócios baseadas no conteúdo deste campo. |
batchClosureDate |
Date |
Não |
Data e hora do fechamento de lote. |
hasMultiMerchant |
boolean |
Não |
Indica se o multimerchant está habilitado (true) ou desabilitado (false). |
batchReports |
List<BatchReport> |
Não |
Lista de transações por adquirentes. |
totalReportInfos |
List<BatchReportInfo> |
Não |
Lista com os dados de pagamentos totais. |
onError |
|
|
Método para notificação em caso de falha. |
ErrorData.paymentsResponseCode |
String |
Sim |
Código de resposta para o erro que ocorreu. Vide Códigos de Resposta |
ErrorData.acquirerResponseCode |
String |
Não |
Código de resposta para o erro ocorrido retornado pela adquirente. Observe que apenas este erro 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. Se a transação foi negada pela adquirente, conterá a mensagem retornada pela adquirente. |
ErrorData.acquirerAdditionalMessage |
String |
Não |
Mensagem enviada no campo 63 de resposta EPS, para ser impressa ou exibida no final do fluxo transacional. O aplicativo de pagamentos permanece responsável por exibir na tela ou verificar o conteúdo presente neste campo, mas também deve enviar o valor recebido para a aplicação integrada para que ela possa aplicar suas regras de negócios baseadas no conteúdo deste campo. |
ErrorDataV2.errorMessage |
String |
Não |
Mensagem descritiva da causa da não autorização. Este campo é exclusivo para a mensagem de erro |
BatchReport
BatchReportTransaction
BatchReportInfo
| Nome |
Tipo |
Descrição (Transaction) |
Descrição (Parcel) |
item |
String |
Tipo de transação (0 - Compra; 1 - Devolução; 2 - Anulação de compra; 3 - Extração; 4 - Anulação de Extração). |
Quantidade de parcelas. |
quantity |
Integer |
Quantidade de transações pelo tipo de transação. |
Quantidade de transações da mesma parcela. |
value |
BigDecimal |
Soma dos valores do tipo de transação. |
Soma dos valores da mesma parcela. |
BatchReportMultiMerchant
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");
SettlementRequest settlementRequest = new SettlementRequest();
settlementRequest.setApplicationInfo(appInfo);
settlementRequest.setPrintMerchantReceipt(true);
try {
paymentClient.closeBatchV2(settlementRequest, this);
} catch (ClientException e) {
Log.e(TAG, "Error while closing batch.", e);
}
}
@Override
public void onError(ErrorDataV2 errorDataV2) {
Log.e(TAG, "Error: " + errorDataV2.getResponseMessage());
}
@Override
public void onSuccess(Settlement settlement) {
Log.i(TAG, "Success!");
}
}