/// <summary> /// Transaction id bulunur /// </summary> /// <param name="mscMcomPool"></param> /// <returns></returns> private MscMcomTransaction GetMscMcomTransactionId(MscMcomPool mscMcomPool) { MscMcomTransaction mscMcomTransactionId = _iTransactionData.GetTransactionId(mscMcomPool.ProvisionRefKey); if (mscMcomTransactionId == null) { //presenment kaydı alınır var presentmentData = _iTransactionData.GetIssuerData(mscMcomPool); //transaction search yapılarak transaction id bulunur. TransactionSearchRequest transactionSearchRequest = new TransactionSearchRequest(); transactionSearchRequest.primaryAccountNum = presentmentData.F002; transactionSearchRequest.acquirerRefNumber = presentmentData.Arn; transactionSearchRequest.tranStartDate = presentmentData.TxnDate.AddDays(-2).ToString("yyyy-MM-dd"); transactionSearchRequest.tranEndDate = presentmentData.TxnDate.ToString("yyyy-MM-dd"); var transactionSearchResponse = _iTransactions.Search(mscMcomPool.ClearingRefKey, transactionSearchRequest); if (Convert.ToInt16(transactionSearchResponse.authorizationSummaryCount) > 0) { mscMcomTransactionId = new MscMcomTransaction(); mscMcomTransactionId.ClearingTransactionId = transactionSearchResponse.authorizationSummary[0].clearingSummary[0].transactionId; mscMcomTransactionId.AuthenticationTransactionId = transactionSearchResponse.authorizationSummary[0].transactionId; mscMcomTransactionId.ClrRefKey = mscMcomPool.ClearingRefKey; mscMcomTransactionId.AuthRefKey = mscMcomPool.ProvisionRefKey; _iTransactionData.CreateTransactionId(mscMcomTransactionId); } } return(mscMcomTransactionId); }
public void Create(MscMcomPool mscMcomPool) { var mscTransactionData = _iTransactionData.GetIssuerData(mscMcomPool); //reversalı yapılan chargeback işleminin chargeback id si pool dan bulunur MscMcomPool cbMscMcomPool = _iTransactionData.GetMscMcomPoolClearingNo(mscTransactionData.ClrNo, ApiConstants.PoolActionType.Chargeback); //claim transaction bilgisi ile bulunur MscMcomClaim mscMcomClaim = _iTransactionData.GetClaim(mscTransactionData.ProvGuid); //reversal request oluşturulur ChargebackRequest chargebackRequest = new ChargebackRequest(); chargebackRequest.claimId = mscMcomClaim.ClaimId; chargebackRequest.chargebackId = cbMscMcomPool.McomRefNo; //update datası hazırlanır. ClrDocumentInfo clrDocumentInfo = _iTransactionData.GetDocumentInfo(mscTransactionData.Guid, ApiConstants.PoolActionType.ChargebackDocument); if (clrDocumentInfo == null) { throw new Exception("Document not found for update"); } ChargebackFillRequest chargebackFillRequest = new ChargebackFillRequest(); chargebackFillRequest.fileAttachment = _iTransactionData.GetAttachment(clrDocumentInfo); //memo bilgisi elde edilir. chargebackFillRequest.memo = clrDocumentInfo.Description; //Chargeback reversal servisi cagrılır. mscMcomPool.ResponseStatus = ""; mscMcomPool.ClaimId = mscMcomClaim.ClaimId; mscMcomPool.McomRefNo = _iChargebacks.Update(mscMcomPool.ClearingRefKey, chargebackRequest, chargebackFillRequest); }
/// <summary> /// claim bulunur database de varsa o alınır yoksa yeni bir claim yaratılır. /// transaction tanımında claim varsa alır yoksa mastercard sistemden claim numarası alır. /// alınan claim transaction uzerine kaydeder. /// </summary> /// <param name="mscMcomPool"></param> /// <param name="chargebackFillRequest"></param> /// <param name="mscMcomTransactionId"></param> /// <returns></returns> private MscMcomClaim GetMscMcomClaim(MscMcomPool mscMcomPool, ChargebackFillRequest chargebackFillRequest, MscMcomTransaction mscMcomTransactionId) { MscMcomClaim mscMcomClaim = null; if (!String.IsNullOrWhiteSpace(mscMcomTransactionId.ClaimId)) { mscMcomClaim = _iTransactionData.GetClaim(mscMcomTransactionId.ClaimId); } if (mscMcomClaim == null) { mscMcomClaim = new MscMcomClaim(); var claimRequest = new ClaimRequest(); claimRequest.clearingTransactionId = mscMcomTransactionId.ClearingTransactionId; claimRequest.disputedAmount = chargebackFillRequest.amount; claimRequest.disputedCurrency = chargebackFillRequest.currency; claimRequest.claimType = "Standard"; mscMcomClaim.ClaimId = _iClaims.CreateClaim(mscMcomPool.ClearingRefKey, claimRequest); mscMcomClaim.ClearingTransactionId = mscMcomTransactionId.ClearingTransactionId; mscMcomClaim.ClrKey = mscMcomPool.ClearingRefKey; mscMcomClaim.AuthKey = mscMcomPool.ProvisionRefKey; mscMcomClaim.ClaimStatu = "OPEN"; _iTransactionData.CreateClaim(mscMcomClaim); mscMcomTransactionId.ClaimId = mscMcomClaim.ClaimId; _iTransactionData.UpdateClaimId(mscMcomTransactionId); } return(mscMcomClaim); }
public void Create(MscMcomPool mscMcomPool) { MscMcomConfig mscMcomConfig = _iMComConfigRepository.GetMComConfig(); mscMcomPool.IsAsynchronous = true; mscMcomPool.ProcessStatus = "S"; mscMcomPool.ResponseStatus = "INITIAL"; if (mscMcomConfig.IsSynchronized) { mscMcomPool.IsAsynchronous = !mscMcomConfig.IsSynchronized; } if (_isBatch) { mscMcomPool.IsAsynchronous = !mscMcomConfig.IsBatchSynchronized; } if (!mscMcomPool.IsAsynchronous) { IOperation operation = _iOperationFactory.GetOperation(mscMcomPool.ActionType); operation.Create(mscMcomPool); mscMcomPool.ProcessStatus = "C"; } _iTransactionRepository.CreatePoolItem(mscMcomPool); }
public void SetUp() { createChargebackReversal = new CreateIssuerChargebackReversal(transactionData.Object, chargebacks.Object); mscMcomPool = new MscMcomPool(); mscMcomPool.ClearingRefKey = 1; mscMcomPool.ProvisionRefKey = 2; mscMcomPool.McomRefNo = null; }
public MscTransaction GetAcquirerData(MscMcomPool mscMcomPool) { MscAcquirer mscAcquirer = new MscAcquirer(); if (mscAcquirer.findByKey(mscMcomPool.ClearingRefKey)) { return(mscAcquirer); } return(null); }
public void Create_CreateCase_CaseFilling() { //arrange MscMcomPool mscMcomPool = new MscMcomPool(); //act CreateCaseFilling createCaseFilling = new CreateCaseFilling(iTransactionRepositoryMock.Object, iCaseFilingMock.Object); createCaseFilling.Create(mscMcomPool); //assert }
public void Start() { MscMcomPool mscMcomPool = new MscMcomPool(); mscMcomPool.ClearingRefKey = 0; mscMcomPool.ActionType = ApiConstants.PoolActionType.ResponseStatusUpdate; IOperation operation = _iOperationFactory.GetOperation(mscMcomPool.ActionType); operation.Create(mscMcomPool); }
public void Create(MscMcomPool mscMcomPool) { //yapılan chargeback datası alınmakta. ChargebackFillRequest chargebackFillRequest = GetChargebackData(mscMcomPool); //Chargeback yapılacak transaction mastrercom tarafından bulunur. Clearingtransaction id alınır. MscMcomTransaction mscMcomTransactionId = GetMscMcomTransactionId(mscMcomPool); //claim bulunur. MscMcomClaim mscMcomClaim = GetMscMcomClaim(mscMcomPool, chargebackFillRequest, mscMcomTransactionId); //chargeback üretilir. mscMcomPool.ResponseStatus = "INITIAL"; mscMcomPool.ClaimId = mscMcomClaim.ClaimId; mscMcomPool.McomRefNo = _iChargebacks.Create(mscMcomPool.ClearingRefKey, mscMcomClaim.ClaimId, chargebackFillRequest); }
private void ProcessQueues(string queueName, MscMcomPool mscMcomPool) { List <MscMcomQueue> mscMcomQueueList = new List <MscMcomQueue>(); foreach (var responseQueue in _iQueues.GetQueues(mscMcomPool.ClearingRefKey, queueName)) { var mscMcomQueueResponse = GetQueueData(queueName, responseQueue); MscMcomQueue mscMcomQueue = _transactionRepository.GetQueueData(mscMcomQueueResponse); if (mscMcomQueue == null) { mscMcomQueueList.Add(mscMcomQueueResponse); } } _transactionRepository.CreateQueueData(mscMcomQueueList); }
public void Create(MscMcomPool mscMcomPool) { //cb reversal datası alınır var cbReversalData = _iTransactionData.GetIssuerData(mscMcomPool); //reversalı yapılan chargeback işleminin chargeback id si pool dan bulunur MscMcomPool cbMscMcomPool = _iTransactionData.GetMscMcomPoolClearingNo(cbReversalData.PrevClearingNo, ApiConstants.PoolActionType.Chargeback); //claim transaction bilgisi ile bulunur MscMcomClaim mscMcomClaim = _iTransactionData.GetClaim(cbReversalData.ProvGuid); //reversal request oluşturulur ChargebackRequest chargebackRequest = new ChargebackRequest(); chargebackRequest.claimId = mscMcomClaim.ClaimId; chargebackRequest.chargebackId = cbMscMcomPool.McomRefNo; //Chargeback reversal servisi cagrılır. mscMcomPool.ResponseStatus = "INITIAL"; mscMcomPool.ClaimId = mscMcomClaim.ClaimId; mscMcomPool.McomRefNo = _iChargebacks.CreateReversal(mscMcomPool.ClearingRefKey, chargebackRequest); }
public void SetUp() { createChargeback = new CreateIssuerChargeback(transactionData.Object, transactions.Object, claims.Object, chargebacks.Object); mscMcomPool = new MscMcomPool(); mscMcomPool.ClearingRefKey = 1; mscMcomPool.ProvisionRefKey = 2; mscMcomPool.McomRefNo = null; var mscTransactionData = new MscTransaction { F002 = "1234567890123456" }; transactionData.Setup(f => f.GetIssuerData(mscMcomPool)).Returns(mscTransactionData); }
private ChargebackFillRequest GetChargebackData(MscMcomPool mscMcomPool) { var mscTransactionData = _iTransactionData.GetIssuerData(mscMcomPool); ChargebackFillRequest chargebackFillRequest = new ChargebackFillRequest(); chargebackFillRequest.documentIndicator = mscTransactionData.F072; chargebackFillRequest.messageText = mscTransactionData.F072; chargebackFillRequest.amount = mscTransactionData.F004.ToString(CultureInfo.GetCultureInfo("en-US")); chargebackFillRequest.currency = mscTransactionData.F049; chargebackFillRequest.reasonCode = mscTransactionData.F025; chargebackFillRequest.chargebackType = ApiConstants.ChargebackStatus.Chargeback; chargebackFillRequest.memo = mscTransactionData.F072; ClrDocumentInfo clrDocumentInfo = _iTransactionData.GetDocumentInfo(mscTransactionData.Guid, ApiConstants.PoolActionType.ChargebackDocument); if (clrDocumentInfo != null) { chargebackFillRequest.fileAttachment = _iTransactionData.GetAttachment(clrDocumentInfo); } return(chargebackFillRequest); }
public void Create_ReversalCreate_TakeReversalId() { //arrange var mscTransactionData = new MscTransaction() { PrevClearingNo = 11 }; var mscMcomClaim = new MscMcomClaim() { ClaimId = claimId }; var cbRevMscMcomPool = new MscMcomPool(); transactionData.Setup(f => f.GetIssuerData(mscMcomPool)).Returns(mscTransactionData); transactionData.Setup(f => f.GetMscMcomPoolClearingNo(mscTransactionData.PrevClearingNo, ApiConstants.PoolActionType.Chargeback)).Returns(cbRevMscMcomPool); transactionData.Setup(f => f.GetClaim(mscTransactionData.ProvGuid)).Returns(mscMcomClaim); chargebacks.Setup(f => f.CreateReversal(It.IsAny <long>(), It.IsAny <ChargebackRequest>())).Returns(chargebackId); //act createChargebackReversal.Create(mscMcomPool); //assert Assert.That(mscMcomPool.McomRefNo, Is.Not.Null); Assert.That(mscMcomPool.McomRefNo, Is.EqualTo(chargebackId)); }
public void Create(MscMcomPool mscMcomPool) { var pendingStatuList = _iTransactionData.GetPoolPendingStatu().GroupBy(f => f.ActionType).Select(item => item.ToArray()).ToList(); foreach (var pendingStatuRecords in pendingStatuList) { updateStatuQuery.Clear(); String actionType = pendingStatuRecords.Max(l => l.ActionType); if (actionType == ApiConstants.PoolActionType.Chargeback) { StatusUpdateChargeback(pendingStatuRecords); } else if (actionType == ApiConstants.PoolActionType.CaseFilling) { StatusUpdateCaseFilling(pendingStatuRecords); } else if (actionType == ApiConstants.PoolActionType.Retrieval) { StatusUpdateRetrieval(pendingStatuRecords); } } }
public void Create(MscMcomPool mscMcomPool) { ProcessQueues("CHARGEBACK", mscMcomPool); }
public void UpdatePoolItem(MscMcomPool mscMcomPool) { mscMcomPool.Update(); }
public void CreatePoolItem(MscMcomPool mscMcomPool) { throw new NotImplementedException(); }
public void Create(MscMcomPool mscMcomPool) { CaseDetailRequest caseDetailRequest = new CaseDetailRequest(); _iClaims.CreateCase(mscMcomPool.ClearingRefKey, caseDetailRequest); }