Beispiel #1
0
        protected virtual void RecordCapture(ICCPayment doc, V2.TransactionData tranData)
        {
            var            procGraph      = PXGraph.CreateInstance <CCPaymentProcessingGraph>();
            TranRecordData tranRecordData = FormatTranRecord(tranData);
            CCTranType     tranType       = CCTranType.CaptureOnly;

            if (tranData.TranType == V2.CCTranType.AuthorizeAndCapture)
            {
                tranType = CCTranType.AuthorizeAndCapture;
                procGraph.RecordCapture(doc, tranRecordData);
            }
            else if (tranData.TranType == V2.CCTranType.PriorAuthorizedCapture)
            {
                tranType = CCTranType.PriorAuthorizedCapture;
                procGraph.RecordPriorAuthorizedCapture(doc, tranRecordData);
            }
            else
            {
                procGraph.RecordCaptureOnly(doc, tranRecordData);
            }

            foreach (AfterTranProcDelegate callback in GetAfterCaptureActions())
            {
                callback((IBqlTable)doc, tranType, true);
            }
            if (ReleaseAfterCapture)
            {
                ReleaseARDocument((IBqlTable)doc, tranType, true);
            }
        }
Beispiel #2
0
        public void RecordCCCredit(ICCPayment doc, ICCManualInputPaymentInfo info, IExternalTransactionAdapter paymentTransaction)
        {
            if (doc == null || doc.CuryDocBal == null)
            {
                return;
            }
            ExternalTransactionState state = ExternalTranHelper.GetActiveTransactionState(graph, paymentTransaction.Select());

            if (ExternalTranHelper.HasOpenCCProcTran(graph, state.ExternalTransaction))
            {
                throw new PXException(Messages.ERR_CCTransactionCurrentlyInProgress);
            }
            if (string.IsNullOrEmpty(info.PCTranNumber))
            {
                throw new PXException(Messages.ERR_PCTransactionNumberOfTheOriginalPaymentIsRequired);
            }
            if (state.IsRefunded)
            {
                throw new PXException(Messages.ERR_CCPaymentIsAlreadyRefunded);
            }

            if (doc.Released == false)
            {
                graph.Actions.PressSave();
            }
            ICCPayment toProc    = graph.Caches[doc.GetType()].CreateCopy(doc) as ICCPayment;
            CCTranType operation = CCTranType.Credit;

            PXLongOperation.StartOperation(graph, delegate()
            {
                bool success = true;
                try
                {
                    var procGraph                = PXGraph.CreateInstance <CCPaymentProcessingGraph>();
                    TranRecordData recordData    = new TranRecordData();
                    recordData.RefExternalTranId = toProc.RefTranExtNbr;
                    recordData.ExternalTranId    = info.PCTranNumber;
                    recordData.AuthCode          = info.AuthNumber;
                    procGraph.RecordCredit(doc, recordData);
                }
                catch
                {
                    success = false;
                    throw;
                }
                finally
                {
                    RunCallbacks((IBqlTable)doc, operation, success);
                }
            });
        }
Beispiel #3
0
        protected TranRecordData FormatTranRecord(V2.TransactionData tranData)
        {
            TranRecordData tranRecordData = new TranRecordData();

            tranRecordData.ExternalTranId     = tranData.TranID;
            tranRecordData.Amount             = tranData.Amount;
            tranRecordData.AuthCode           = tranData.AuthCode;
            tranRecordData.ResponseText       = tranData.ResponseReasonText;
            tranRecordData.ProcessingCenterId = SelectedProcessingCenter;
            tranRecordData.ValidateDoc        = false;
            tranRecordData.TranStatus         = CCTranStatusCode.GetCode(V2Converter.ConvertTranStatus(tranData.TranStatus));
            string cvvCode = CVVVerificationStatusCode.GetCCVCode(V2Converter.ConvertCardVerificationStatus(tranData.CcvVerificationStatus));

            tranRecordData.CvvVerificationCode = cvvCode;
            return(tranRecordData);
        }
Beispiel #4
0
        protected virtual void RecordVoid(ICCPayment doc, V2.TransactionData tranData)
        {
            var            procGraph      = PXGraph.CreateInstance <CCPaymentProcessingGraph>();
            TranRecordData tranRecordData = FormatTranRecord(tranData);

            tranRecordData.AuthCode = tranData.AuthCode;
            bool res = procGraph.RecordVoid(doc, tranRecordData);

            foreach (AfterTranProcDelegate callback in GetAfterVoidActions())
            {
                callback((IBqlTable)doc, CCTranType.Void, true);
            }
            if (ReleaseAfterVoid)
            {
                ReleaseARDocument((IBqlTable)doc, CCTranType.Void, true);
            }
        }
Beispiel #5
0
        protected virtual void RecordAuth(ICCPayment doc, V2.TransactionData tranData)
        {
            var            procGraph      = PXGraph.CreateInstance <CCPaymentProcessingGraph>();
            TranRecordData tranRecordData = FormatTranRecord(tranData);

            if (tranData.ExpireAfterDays != null)
            {
                DateTime expirationDate = PXTimeZoneInfo.Now.AddDays(tranData.ExpireAfterDays.Value);
                tranRecordData.ExpirationDate = expirationDate;
            }
            bool res = procGraph.RecordAuthorization(doc, tranRecordData);

            foreach (AfterTranProcDelegate callback in GetAfterAuthorizeActions())
            {
                callback((IBqlTable)doc, CCTranType.AuthorizeOnly, true);
            }
            if (ReleaseAfterAuthorize)
            {
                ReleaseARDocument((IBqlTable)doc, CCTranType.AuthorizeOnly, true);
            }
        }
 public virtual bool RecordCredit(ICCPayment aPmtInfo, TranRecordData data)
 {
     return(GetPaymentProcessing().RecordCredit(aPmtInfo, data));
 }
 public virtual bool RecordVoid(ICCPayment payment, TranRecordData data)
 {
     return(GetPaymentProcessing().RecordVoid(payment, data));
 }
 public virtual bool RecordPriorAuthorizedCapture(ICCPayment payment, TranRecordData data)
 {
     return(GetPaymentProcessing().RecordPriorAuthorizedCapture(payment, data));
 }
 public virtual bool RecordAuthorization(ICCPayment payment, TranRecordData data)
 {
     return(GetPaymentProcessing().RecordAuthorization(payment, data));
 }