public override ValidatePostProcessRequestResult ValidatePostProcessRequest(NameValueCollection queryString) { var retVal = new ValidatePostProcessRequestResult(); var cancel = queryString["cancel"]; var paykey = queryString["paykey"]; if (!string.IsNullOrEmpty(cancel) && !string.IsNullOrEmpty(paykey)) { bool cancelValue; if (bool.TryParse(cancel, out cancelValue)) { retVal.IsSuccess = !cancelValue; retVal.OuterId = paykey; } } return retVal; }
public override ValidatePostProcessRequestResult ValidatePostProcessRequest(NameValueCollection queryString) { var retVal = new ValidatePostProcessRequestResult(); if (queryString.AllKeys.Contains("x_split_tender_id") || queryString.AllKeys.Contains("x_trans_id")) retVal.OuterId = queryString["x_split_tender_id"] ?? queryString["x_trans_id"]; else return retVal; if (queryString.AllKeys.Contains("x_invoice_num") && queryString.AllKeys.Contains("x_auth_code") && queryString.AllKeys.Contains("x_amount") && queryString.AllKeys.Contains("x_response_code") && queryString.AllKeys.Contains("x_response_reason_code") && queryString.AllKeys.Contains("x_response_reason_text") && queryString.AllKeys.Contains("x_method") && queryString.AllKeys.Contains("x_MD5_Hash")) { var hashMD5 = GetMD5Hash(TxnKey + ApiLogin + retVal.OuterId + queryString["x_amount"]); if(!string.IsNullOrEmpty(queryString["x_MD5_Hash"]) && !string.IsNullOrEmpty(hashMD5) && string.Equals(hashMD5, queryString["x_MD5_Hash"], StringComparison.OrdinalIgnoreCase)) { retVal.IsSuccess = true; } } return retVal; }
public override ValidatePostProcessRequestResult ValidatePostProcessRequest(NameValueCollection queryString) { var retVal = new ValidatePostProcessRequestResult(); retVal.OuterId = queryString["transact"]; //calculate hash by transaction id, currency code and amount var md5Hash = CalculateResponseMD5Hash(queryString["transact"], queryString["currency"], queryString["amount"]); //compare calculated hash with the passed in response authkey field retVal.IsSuccess = md5Hash.Equals(queryString["authkey"]); return retVal; }
public override ValidatePostProcessRequestResult ValidatePostProcessRequest(NameValueCollection queryString) { var retVal = new ValidatePostProcessRequestResult(); var klarnaOrder = queryString["klarna_order"]; var sid = queryString["sid"]; if (!string.IsNullOrEmpty(klarnaOrder) && !string.IsNullOrEmpty(sid)) { var outerId = HttpUtility.UrlDecode(klarnaOrder).Split('/').LastOrDefault(); if (!string.IsNullOrEmpty(outerId)) { retVal.IsSuccess = true; retVal.OuterId = outerId; } } return retVal; }