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); }
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)); }