protected void ProcessResponse() { var trxRef = Request.QueryString["trxRef"]; var trxToken = Request.QueryString["trxToken"]; var SecretKey = ConfigurationManager.AppSettings["SecretKey"]; TransactionalInformation trans; try { dynamic obj = new JObject(); obj.trxRef = trxRef.Trim(); obj.trxToken = trxToken.Trim(); var json = obj.ToString(); // string url = "http://www.paytrx.org/api/web/GetTransactionRecord"; // string url = "http://paytrx.net/api/web/GetTransactionRecord"; string url = ConfigurationManager.AppSettings["FlutterWave_Requery"]; //re-query payment gateway for the transaction. var reqData = "{\"TrxRef\":\"" + trxRef + "\"" + ",\"TrxToken\":\"" + trxToken + "\"}"; // var url = ConfigurationManager.AppSettings["FlutterWave_Requery"]; //var url = FlutteWaveEngine.FlutterWaveRequery; string serverResponse = string.Empty; var plainText = (trxRef + trxToken + SecretKey); var hash = new CryptographyManager().ComputeHash(plainText, HashName.SHA256); var isPaid = PaymentRequery(reqData, url, hash, out serverResponse, out trans); var jvalue = JObject.Parse(serverResponse); dynamic jvalues = JObject.Parse(serverResponse); if (jvalue != null && $"{jvalues?.data?.resp_code}".ToLower() == "00" && isPaid == true) { WebLog.Log("1"); TempData["ErrMsg"] = "Transaction successful ! Thank You"; string refNum = jvalues?.data?.trxref; // var id = UpdateTransaction(jvalues); bool checkTrxtoken = _dr.CheckTranToken(refNum); // if (id != null && checkTrxtoken == false) if (checkTrxtoken == false) { WebLog.Log("2"); // string refNum = jvalues?.data?.trxref; var PayRes = paySubscribtion(refNum); dynamic Pay = JObject.Parse(PayRes); // if (Pay?.returnCode == 1) if (Pay?.respCode == "00") { _tL.ReferenceNumber = refNum; _tL.PatnerRefNumber = Pay?.tranNum; var val = _dr.GetRecord(refNum); int userid = Convert.ToInt16(val.Customer_FK); MyUtility.insertWallet(userid, val); CalculateDiscount(userid, val); _ct.Merchant_FK = val.Merchant_FK; _ct.ReferenceNumber = val.ReferenceNumber; _ct.ServiceCharge = val.ServiceCharge; _ct.ServiceDetails = val.ServiceDetails; _ct.TransactionType = val.TransactionType; _ct.TrnDate = val.TrnDate; _ct.ValueDate = val.ValueDate; _ct.ValueTime = val.ValueTime; _ct.Amount = val.Amount; _ct.CustomerID = val.CustomerID; _ct.Customer_FK = val.Customer_FK; _ct.CusPay2response = Convert.ToString(PayRes); _dc.InitiateCustomerTransaction(_ct); _dc.UpdateTransac(_tL); var id = UpdateTransaction(jvalues); TempData["ErrMsg"] = "Transaction successful ! Thank You"; Receipt(Pay, refNum); } else if (Pay?.returnCode != "00") { TempData["ErrMsg"] = "Payment Successful! Please Contact our Customer Care"; Receipt(Pay, refNum); } } } else if (jvalue != null && $"{jvalues?.data?.resp_code}".ToLower() != "00" || isPaid == false) { TempData["ErrMsg"] = "Transaction Failed ! Please Try Again"; var id = UpdateTransaction(jvalues); if (id != null) { string refNum = jvalues?.data?.trxref; dynamic payObjx = new JObject(); payObjx.returnCode = jvalues?.data?.resp_code; payObjx.returnMsg = jvalues?.data?.resp_desc; payObjx.tranNum = jvalues?.data?.trxref; dynamic Pay = JObject.Parse(payObjx); TempData["ErrMsg"] = "Transaction Failed ! Please Try Again"; Receipt(Pay, refNum); } } } catch (Exception ex) { WebLog.Log(ex.Message.ToString()); //lblStatusMsg.Text = ex.Message.ToString(); } }