Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #7
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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));
        }
Exemple #15
0
        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);
                }
            }
        }
Exemple #16
0
 public void Create(MscMcomPool mscMcomPool)
 {
     ProcessQueues("CHARGEBACK", mscMcomPool);
 }
 public void UpdatePoolItem(MscMcomPool mscMcomPool)
 {
     mscMcomPool.Update();
 }
 public void CreatePoolItem(MscMcomPool mscMcomPool)
 {
     throw new NotImplementedException();
 }
Exemple #19
0
        public void Create(MscMcomPool mscMcomPool)
        {
            CaseDetailRequest caseDetailRequest = new CaseDetailRequest();

            _iClaims.CreateCase(mscMcomPool.ClearingRefKey, caseDetailRequest);
        }