Customizar a aplicação principal¶
Através dessa opção o Facilitador pode definir seu apk como principal. Assim que o terminal for ligado a aplicação configurada será chamada ao invés da aplicação padrão de pagamento PayStore.
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| packageName | String | SIM | Nome do pacote da aplicação. |
| 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.responseMessage | String | Sim | Mensagem descritiva da causa do erro. |
Exemplo¶
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import br.com.phoebus.android.payments.api.ErrorData;
import br.com.phoebus.android.payments.api.PaymentClient;
import br.com.phoebus.android.payments.api.exception.ClientException;
public class SetMainAppActivity extends AppCompatActivity {
private PaymentClient paymentClient;
private EditText packageNameEdt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle(R.string.setMainApp);
setContentView(R.layout.activity_set_main_app);
this.packageNameEdt = ((EditText) this.findViewById(R.id.packageNameEdt));
this.packageNameEdt.setText("br.com.phoebus.payments.demo");
this.paymentClient = new PaymentClient();
this.paymentClient.bind(this.getApplicationContext());
}
public void doSetMainApp(View view) {
if (!isDataValid()) return;
try {
this.paymentClient.setMainApp(packageNameEdt.getText().toString(), new PaymentClient.PaymentCallback() {
@Override
public void onSuccess(Object data) {
Toast.makeText(SetMainAppActivity.this, "App principal definido!", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(ErrorData errorData) {
Toast.makeText(SetMainAppActivity.this, "Erro ao definir app principal: " + errorData.getPaymentsResponseCode() +
" = " + errorData.getResponseMessage(), Toast.LENGTH_LONG).show();
}
});
} catch (ClientException e) {
e.printStackTrace();
Toast.makeText(SetMainAppActivity.this, "Falha na chamada do serviço: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
private boolean isDataValid() {
boolean ret = true;
if ("".equals(this.packageNameEdt.getText().toString())) {
this.packageNameEdt.setError(getString(R.string.requieredFieldError));
ret = false;
}
return ret;
}
}