Ir para o conteúdo

[**DEPRECATED] Realiza o processo de resolução de pendências QR Code - Pagamento Específico**


Esse método deve ser chamado para executar a resolução de pendências QR Code - Pagamento específico.

Métodos

Assinatura Descrição
void resolveQRCodePendencies(QRCodePendencyRequest settlementRequest, PaymentCallback paymentCallback) Realiza o processo de resolução de pendência QR Code para pagamento específico.

Parâmetros

Nome Tipo Obrigatório Descrição
request QRCodePendencyRequest Sim Objeto de transferência de dados que conterá as informações da requisição da resolução de pendências para pagamento específico QR Code.
callback PaymentCallback Sim Interface que será executada para notificações de sucesso ou erro do processo de resolução de pendências para pagamento específico QR Code.

Detalhe dos parâmetros request (QRCodePendencyRequest)

Nome Tipo Obrigatório Descrição
applicationId Credentials Sim Identificação do aplicativo que está solicitando a consulta.
secretToken Credentials Sim Token de acesso do aplicativo que está solicitando a consulta.
softwareVersion String Sim Versão da aplicação que está solicitando a consulta.
date Date Sim Data / hora do pagamento.
qrId String Sim Identificador QrCode gerado pelo terminal de captura.

response (QRCodePendencyResponse)

Nome Tipo Descrição
status QRCodeIntentStatus Indica a situação da transação com QR.
type QRCodeIntentType Tipo de QR (venda, anulação, devolução).
payment PaymentV2 Objeto que representa os dados do pagamento.
reversePayment ReversePayment Objeto que representa os dados do estorno.
QRCodeIntentStatus
Nome Id Descrição
CREATED 1 Transação criada.
PENDING 2 Transação pendente.
WAITING 3 Transação em espera.
PROCESSING 4 Transação em processamento.
PROCESSED 5 Transação processada.
CONFIRMED 6 Solicitação confirmada.
CANCELED 7 Transação cancelada.
REVERSED 8 Transação estornada.
DENIED 9 Transação Negada.
EXPIRED 10 Transação expirada.
UNREACHABLE 11 Transação inacessível.
QRCodeIntentType
Nome Id Descrição
PAYMENT 0 Indica que o tipo de QR é um pagamento.
REVERSAL 1 Indica que o tipo de QR é um estorno.
DEVOLUTION 2 Indica que o tipo de QR é uma devolução.
Exemplo
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.jakewharton.threetenabp.AndroidThreeTen;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;
import java.util.Arrays;

import java.util.Date;
import java.util.List;
import java.util.TimeZone;

import br.com.phoebus.android.payments.api.ApplicationInfo;
import br.com.phoebus.android.payments.api.Credentials;

import br.com.phoebus.android.payments.api.Payment;
import br.com.phoebus.android.payments.api.PaymentClient;
import br.com.phoebus.android.payments.api.PaymentStatus;
import br.com.phoebus.android.payments.api.provider.PaymentContract;
import br.com.phoebus.android.payments.api.provider.PaymentProviderApi;
import br.com.phoebus.android.payments.api.provider.PaymentProviderRequest;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    Button bt_start;
    private PaymentClient paymentClient;
    public static final String TEST_APPLICATION_ID = "0";
    public static final String TEST_SECRET_TOKEN = "000000000000000000000000";
    public static final String TAG = "TAG_DEMO";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_start = (Button) this.findViewById(R.id.button);
        bt_start.setOnClickListener(this);
        paymentClient = new PaymentClient();
        AndroidThreeTen.init(getApplication());

    }


    @Override
    public void onClick(View view) {
        doExecute();
    }


    public void doExecute() {
        //definindo as credenciais
        Credentials credentials = new Credentials();
        credentials.setApplicationId(TEST_APPLICATION_ID);
        credentials.setSecretToken(TEST_SECRET_TOKEN);

        ApplicationInfo applicationInfo = new ApplicationInfo();
        applicationInfo.setCredentials(credentials);
        applicationInfo.setSoftwareVersion("1.0");

        //criando objeto de request para o payment
        QRCodePendencyRequest request = createRequest(applicationInfo);

    }

    private QRCodePendencyRequest createRequest(ApplicationInfo appInfo) {

        QRCodePendencyRequest request = new QRCodePendencyRequest();
        request.setApplicationInfo(appInfo);

        request.setSecretToken(appInfo.getCredentials());
        request.setApplicationId(appInfo.getCredentials());
        request.setSoftwareVersion(appInfo.getSoftwareVersion());
        request.setQrId("123");

        SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
        isoFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

        try {
            Date date = isoFormat.parse("2021-07-27T00:00:00.000");
            request.setDate(date);

        } catch (Exception e) {
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
            Log.e(TAG, e.getMessage(), e);

        }

        return request;
    }
}