Пример #1
0
        public TransactionResponse ProcessRespond(JccResponse jccResponse)
        {
            TransactionResponse transactionResponse = new TransactionResponse();

            try
            {
                string toEncrypt = $"{_jccSettings.Password}{_jccSettings.MerchantId}{_jccSettings.AcquirerId}{jccResponse.OrderId}{jccResponse.ResponseCode}{jccResponse.ReasonCode}";
                string hash      = JccHelper.CalculateSHA1Hash(toEncrypt);
                if (hash.Equals(jccResponse.Signature))
                {
                    if (jccResponse.ResponseCode.Trim().Equals("1"))
                    {
                        transactionResponse.Status = StatusCodedFiled.Success;
                    }
                    else
                    {
                        transactionResponse.Status  = StatusCodedFiled.Declined;
                        transactionResponse.Message = jccResponse.ReasonCodeDesc;
                    }
                }
                else
                {
                    transactionResponse.Status  = StatusCodedFiled.NotVerified;
                    transactionResponse.Message = "Transaction was not verified";
                }
            }
            catch (Exception ex)
            {
                transactionResponse.Status  = StatusCodedFiled.Error;
                transactionResponse.Message = ex.Message;
            }

            return(transactionResponse);
        }
Пример #2
0
        protected string CalculateRequestSignature(decimal purchaseAmount, CurrencyFields currencyCode, string orderId)
        {
            var roundedOrderTotal = Math.Round(purchaseAmount, CurrencyExp);

            string value =
                _jccSettings.Password +
                _jccSettings.MerchantId +
                _jccSettings.AcquirerId +
                orderId +
                JccHelper.GetPaddedAmount(roundedOrderTotal) +
                (int)currencyCode;

            return(JccHelper.CalculateSHA1Hash(value));
        }