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); } }
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); } }); }
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); }
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); } }
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)); }