protected string GetProcessingStatus(V2.TransactionData tranData) { string tranStatusCode = CCTranStatusCode.GetCode(V2Converter.ConvertTranStatus(tranData.TranStatus)); string tranTypeCode = CCTranTypeCode.GetTypeCode(V2Converter.ConvertTranType(tranData.TranType.Value)); string procStatus = ExtTransactionProcStatusCode.GetStatusByTranStatusTranType(tranStatusCode, tranTypeCode); return(procStatus); }
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); }
public virtual void SyncPaymentTransactionById(TPrimary doc, IEnumerable <string> tranIds) { if (!IsFeatureSupported(SelectedProcessingCenter, CCProcessingFeature.PaymentHostedForm)) { return; } ICCPayment pDoc = GetPaymentDoc(doc); using (PXTransactionScope scope = new PXTransactionScope()) { foreach (string tranId in tranIds) { IEnumerable <PaymentTransactionDetail> existsTran = base.PaymentTransaction.Select().RowCast <PaymentTransactionDetail>(); PaymentTransactionDetail storedTran = existsTran.FirstOrDefault(i => i.PCTranNumber == tranId); if (storedTran != null && storedTran.TranStatus == CCTranStatusCode.Approved) { continue; } var tranData = GetTranData(tranId); if (storedTran != null && CCTranStatusCode.GetCode(V2Converter.ConvertTranStatus(tranData.TranStatus)) == storedTran.TranStatus) { continue; } if (tranData?.CustomerId != null && !SuitableCustomerProfileId(tranData?.CustomerId)) { continue; } try { PXTrace.WriteInformation($"Synchronize tran. TranId = {tranData.TranID}, TranType = {tranData.TranType}, DocNum = {tranData.DocNum}, " + $"SubmitTime = {tranData.SubmitTime}, Amount = {tranData.Amount}, PCCustomerID = {tranData.CustomerId}, PCCustomerPaymentID = {tranData.PaymentId}"); } catch (Exception ex) { var v = ex; } V2.CCTranType tranType = tranData.TranType.Value; if (tranType == V2.CCTranType.Void) { RemoveSyncLock(doc); RecordVoid(pDoc, tranData); } if (tranType == V2.CCTranType.AuthorizeOnly) { if (tranData.TranStatus == V2.CCTranStatus.Approved) { GetOrCreatePaymentProfilrByTran(tranData, pDoc); } RemoveSyncLock(doc); RecordAuth(pDoc, tranData); } if (tranType == V2.CCTranType.AuthorizeAndCapture) { if (tranData.TranStatus == V2.CCTranStatus.Approved) { GetOrCreatePaymentProfilrByTran(tranData, pDoc); } RemoveSyncLock(doc); RecordCapture(pDoc, tranData); } if (tranType == V2.CCTranType.CaptureOnly) { if (tranData.TranStatus == V2.CCTranStatus.Approved) { GetOrCreatePaymentProfilrByTran(tranData, pDoc); } RemoveSyncLock(doc); RecordCapture(pDoc, tranData); } scope.Complete(); } } }