示例#1
0
        private void EmvTxCtl_TxCompleted(object sender, EventArgs e)
        {
            if ((e as TxCompletedEventArgs).TxResult == TxResult.Cancelled)
            {
                UpdateView(ViewState.StepTxCtl);
            }

            if ((e as TxCompletedEventArgs).EMV_Data.IsPresent())
            {
                //the contact app would have already gone online, and the TxResult would be approved or declined
                //the reason going online for contactless is handled differently to going online for
                //contact is that with contact we have to go online and then back to the card before we can
                //process the transaction on the backend, for contacless we can choose to go online and process
                //the transaction in one call
                if ((e as TxCompletedEventArgs).TxResult == TxResult.ContactlessOnline)
                {
                    EMVApproverRequest auth = new EMVApproverRequest()
                    {
                        EMV_Data = (e as TxCompletedEventArgs).EMV_Data.Get()
                    };
                    try
                    {
                        EMVApproverResponse response = (EMVApproverResponse)onlineApprover.DoAuth(auth);
                        emvTxCtl.SetTxFinalResultLabel("CTLS Online:" + response.ResponseMessage);
                    }
                    catch (Exception ex)
                    {
                        emvTxCtl.SetTxFinalResultLabel("CTLS Online:" + ex.Message);
                    }
                }
            }
            if ((e as TxCompletedEventArgs).QR_Data.IsPresent())
            {
                if ((e as TxCompletedEventArgs).TxResult == TxResult.QRCodeScanned)
                {
                    //send qr code auth request
                    QRCodeApproverRequest auth = new QRCodeApproverRequest()
                    {
                        QRData = (e as TxCompletedEventArgs).QR_Data.Get()
                    };
                    try
                    {
                        QRCodeApproverResponse response = (QRCodeApproverResponse)onlineApprover.DoAuth(auth);
                        emvTxCtl.SetTxFinalResultLabel("QRCode Online:" + response.ResponseMessage);
                    }
                    catch (Exception ex)
                    {
                        emvTxCtl.SetTxFinalResultLabel("QRCode Online:" + ex.Message);
                    }
                }
            }
        }
 private void EmvTxCtl_TxCompleted(object sender, EventArgs e)
 {
     if ((e as TxCompletedEventArgs).QR_Data.IsPresent())
     {
         if ((e as TxCompletedEventArgs).TxResult == TxResult.QRCodeToPoll)
         {
             //query if tx was approved
             QRCodeApproverRequest auth = new QRCodeApproverRequest()
             {
                 QRData = (e as TxCompletedEventArgs).QR_Data.Get()
             };
             try
             {
                 QRCodeApproverResponse response = (QRCodeApproverResponse)onlineApprover.DoCheckAuthStatus(auth);
                 emvTxCtl.SetTxFinalResultLabel("QRCode Online Check:" + response.ResponseMessage);
             }
             catch (Exception ex)
             {
                 emvTxCtl.SetTxFinalResultLabel("QRCode Online Check:" + ex.Message);
             }
         }
     }
 }