Ir para o conteúdo

Integración con la aplicación de pago a través de Broadcast


A diferencia de otras integraciones, en la integración de Broadcast, otras aplicaciones pueden recibir notificaciones de que se ha realizado un pago, una anulación, una devolución, o un cierre de lote. Esta información es enviada por la aplicación de pagos a través de Broadcasts la cual puede ser recibida por cualquier aplicación que esté interesada en conocer la ocurrencia de transaciones.

Actions

Action Extra
Intents.action.ACTION_AFTER_PAYMENT (br.com.phoebus.android.payments.AFTER_PAYMENT_FINISHED) Intents.extra.EXTRA_PAYMENT_RETURN: Payment (ver startPaymentV2() o documentación de la clase.)
Intents.action.ACTION_AFTER_REVERSAL (br.com.phoebus.android.payments.AFTER_PAYMENT_REVERSAL_FINISHED) Intents.extra.EXTRA_PAYMENT_RETURN: ReversePayment (ver reversePaymentV2() o documentación de la clase.)
Intents.action.ACTION_AFTER_SETTLEMENT (br.com.phoebus.android.payments.ACTION_AFTER_SETTLEMENT) Intents.extra.EXTRA_SETTLEMENT_RETURN: SettlementBroadcastResponse, EXTRA_SETTLEMENT_RETURN_V2 : SettlementBroadcastResponse (ou vide documentación de la clase.)
Intents.action.ACTION_SDK_IDLE_NOTIFICATION (br.com.phoebus.android.payments.SDK_IDLE_NOTIFICATION) Cuando se realiza un pago (consulte startPaymentV2() con todos los parámetros de impresión como falsos, el terminal espera una transmisión desde la aplicación integrada para realizar la inicialización después del pago, si es necesario. Este proceso también se utiliza para señalar la aplicación actualizaciones.

Ejemplo

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if (intent.getAction().equals(Intents.action.ACTION_AFTER_PAYMENT)) {
            Payment payment = DataUtils.fromBundle(Payment.class, intent.getExtras(), Intents.extra.EXTRA_PAYMENT_RETURN);

            // Do something!

        } else if (intent.getAction().equals(Intents.action.ACTION_AFTER_REVERSAL)) {
            ReversePayment reversePayment = DataUtils.fromBundle(ReversePayment.class, intent.getExtras(), Intents.extra.EXTRA_PAYMENT_RETURN);

            // Do something!

        } else if (intent.getAction().equals(Intents.action.ACTION_AFTER_SETTLEMENT)) {
            SettlementBroadcastResponse settlementBroadcastResponse = DataUtils.fromBundle(SettlementBroadcastResponse.class, intent.getExtras(), Intents.extra.EXTRA_SETTLEMENT_RETURN);
            SettlementBroadcastResponseV2 settlementBroadcastResponseV2 = SettlementBroadcastResponseV2.fromBundle(intent.getBundleExtra(Intents.extra.EXTRA_SETTLEMENT_RETURN_V2));

            // Do something!

        } else if(intent.getAction().equals(Intents.action.ACTION_SDK_IDLE_NOTIFICATION)){
                     // Do something!
        }

    }

}