Пример #1
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);
        }
Пример #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);
        }
Пример #3
0
        public MscMcomClaim GetClaim(string claimId)
        {
            MscMcomClaim mscMcomClaim = new MscMcomClaim();

            if (mscMcomClaim.findByKey(claimId))
            {
                return(mscMcomClaim);
            }
            return(null);
        }
Пример #4
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);
        }
        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);
        }
Пример #6
0
        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));
        }
Пример #7
0
 public void CreateClaim(MscMcomClaim mscMcomClaim)
 {
     mscMcomClaim.Create();
 }