Ir para o conteúdo

[DEPRECATED] Realiza o processo de devolução não referenciada.


Esse método deve ser chamado para executar a devolução não referenciada.

Métodos

Assinatura Descrição
void refundPayment(RefundRequest settlementRequest, PaymentCallback paymentCallback) Realiza o processo de devolução não referenciada. (DEPRECATED: Utilizar refundPaymentV2)

Parâmetros

Nome Tipo Obrigatório Descrição
request RefundRequest 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 (RefundRequest) (DEPRECATED: Utilizar 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.
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.

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.

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

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