在我的网站上,我使用payU资金作为支付网关 . 在信用卡和借记卡的情况下工作正常,但在网上银行的情况下,它不会在返回网址付款后返回 . 所以我无法将付款细节管理到我的数据库中 . 我不知道如何通过测试帐户测试网上银行 . 由于周六我无法联系payU Money客户支持 .
这里是返回Url和Code .
这是控制器
public ActionResult Return(FormCollection form)
{
try
{
Session["TXNStatus"] = null;
string[] merc_hash_vars_seq;
string merc_hash_string = string.Empty;
string merc_hash = string.Empty;
string order_id = string.Empty;
string hash_seq = "key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5|udf6|udf7|udf8|udf9|udf10";
string amount = Convert.ToString(form["amount"]);
string productinfo = Convert.ToString(form["productinfo"]);
if (form["status"].ToString() == "success")
{
merc_hash_vars_seq = hash_seq.Split('|');
Array.Reverse(merc_hash_vars_seq);
merc_hash_string = System.Configuration.ConfigurationManager.AppSettings["SALT"] + "|" + form["status"].ToString();
foreach (string merc_hash_var in merc_hash_vars_seq)
{
merc_hash_string += "|";
merc_hash_string = merc_hash_string + (form[merc_hash_var] != null ? form[merc_hash_var] : "");
}
//Response.Write(merc_hash_string);
merc_hash = Generatehash512(merc_hash_string).ToLower();
if (merc_hash != form["hash"])
{
order_id = Request.Form["txnid"];
PaymentModel model = new PaymentModel();
int userID = Convert.ToInt32(Session["UserInfoID"]);
var payStatus = _paymentRepo.GetMemberPaymentsByUserIDCreditCard(userID);
model.ID = payStatus.ID;
model.TXNID = order_id;
model.UpdatedBy = userID;
model.TXNStatus = TXNStatus.Failed;
model.UpdatedOn = DateTime.Now;
Session["DateTime"] = model.UpdatedOn;
bool pay = _paymentRepo.UpdatePaymentsByCreditCardFailed(model);
model.Amount = payStatus.Amount;
model.TXNID = order_id;
model.UpdatedOn = Convert.ToDateTime(Session["DateTime"]);
Session["TXNStatus"] = model.TXNStatus;
TempData["MessageFailure"] = "Transaction Failed.";
MailService objMail = new MailService();
string SubjectText = "";
string SubjectText1 = "";
string TransactionStatus = "";
var userInfo = _userRepo.GetUserInfos(userID);
model.firstName = userInfo.GroomBrideName;
model.email = userInfo.EmailID;
string DefaultURL = ConfigurationManager.AppSettings["DefaultURL"].ToString();
//payModel.TXNStatus =Convert.ToString(Session["TXNStatus"]);
string TempBody = System.IO.File.ReadAllText(Server.MapPath("/EmailTemplate/PyamentFail.html"));
SubjectText = "Transaction Details";
SubjectText1 = "Indianmuslimwedding.com : Transaction Status";
TransactionStatus = "Failed";
model.UpdatedOn = model.UpdatedOn.Value.AddHours(5).AddMinutes(30);
string Body = String.Format(TempBody, DefaultURL, SubjectText, model.firstName, model.TXNID, TransactionStatus, model.Amount, model.UpdatedOn, DefaultURL);
objMail.SendEmail(model.email, "", "", SubjectText1, Body);
return View(model);
}
else
{
order_id = Request.Form["txnid"];
PaymentModel model = new PaymentModel();
int userID = Convert.ToInt32(Session["UserInfoID"]);
var payStatus = _paymentRepo.GetMemberPaymentsByUserIDCreditCard(userID);
var userInfos = _userRepo.GetUserInfos(Convert.ToInt32(Session["UserInfoID"]));
if (userInfos.ReferredID != null)
{
if (userInfos.Amount != null)
{
var Amount = userInfos.Amount;
var totalAmount = Convert.ToDecimal(amount) * Convert.ToDecimal(0.2) + Amount;
model.Amount = totalAmount;
}
else
{
var totalAmount = Convert.ToDecimal(amount) * Convert.ToDecimal(0.2);
model.Amount = totalAmount;
}
}
else
{
model.Amount = Convert.ToDecimal(amount);
}
model.ID = payStatus.ID;
model.UserInfoID = userID;
model.TXNID = order_id;
model.UpdatedBy = userID;
model.UpdatedOn = DateTime.Now;
model.TXNStatus = TXNStatus.Success;
model.PlanName = productinfo;
if (Convert.ToString(Session["SubscriptionSilverPlan"]) == productinfo)
{
model.PlanDuration = Convert.ToString(Session["SixthplanDuration"]);
model.ViewContactCount = UserRestriction.ViewContactCountForSilver;
model.SendMailCount = UserRestriction.SendMailCountForSilver;
}
else if (Convert.ToString(Session["SubscriptionGoldPlan"]) == productinfo)
{
model.PlanDuration = Convert.ToString(Session["FirstplanDuration"]);
model.ViewContactCount = UserRestriction.ViewContactCountForGold;
model.SendMailCount = UserRestriction.SendMailCountForGold;
}
else if (Convert.ToString(Session["SubscriptionDaimondPlan"]) == productinfo)
{
model.PlanDuration = Convert.ToString(Session["SecondplanDuration"]);
model.ViewContactCount = UserRestriction.ViewContactCountForDiamond;
model.SendMailCount = UserRestriction.SendMailCountForDiamond;
}
else if (Convert.ToString(Session["SubscriptionAssistedServicesPlan"]) == productinfo)
{
model.PlanDuration = Convert.ToString(Session["ThirdplanDuration"]);
}
else
{
model.PlanDuration = null;
}
model.PlanIsValid = true;
var subscriptionDetail = _userRepo.getSubscriptionDetailByUserID(userID);
if (subscriptionDetail != null)
{
SubscriptionPlan objUpdate = _context.SubscriptionPlans.Find(subscriptionDetail.ID);
objUpdate.PlanIsValid = false;
_context.SaveChanges();
}
bool pay = _paymentRepo.UpdatePaymentsByCreditCard(model);
if (pay)
{
var payStatus1 = _paymentRepo.GetMemberPaymentsByUserIDCreditCard(userID);
var userInfo = _userRepo.GetUserInfos(Convert.ToInt32(Session["UserInfoID"]));
Session["MemberType"] = userInfo.MemberType;
model.Amount = payStatus.Amount;
model.UpdatedOn = payStatus1.UpdatedOn;
model.TXNID = order_id;
Session["TXNStatus"] = model.TXNStatus;
Session["TXNID"] = order_id;
Session["DateTime"] = model.UpdatedOn;
TempData["MessageSuccess"] = "Transaction successful.";
MailService objMail = new MailService();
string SubjectText = "";
string SubjectText1 = "";
string TransactionStatus = "";
model.firstName = userInfo.GroomBrideName;
model.email = userInfo.EmailID;
string DefaultURL = ConfigurationManager.AppSettings["DefaultURL"].ToString();
//payModel.TXNStatus =Convert.ToString(Session["TXNStatus"]);
string TempBody = System.IO.File.ReadAllText(Server.MapPath("/EmailTemplate/Payment.html"));
SubjectText = "Transaction Details";
SubjectText1 = "Indianmuslimwedding.com : Transaction";
TransactionStatus = form["status"].ToString();
model.UpdatedOn = model.UpdatedOn.Value.AddHours(5).AddMinutes(30);
string Body = String.Format(TempBody, DefaultURL, SubjectText, model.firstName, model.TXNID, TransactionStatus, model.Amount, model.UpdatedOn, DefaultURL);
objMail.SendEmail(model.email, "", "", SubjectText1, Body);
}
return View(model);
}
}
else
{
order_id = Request.Form["txnid"];
PaymentModel model = new PaymentModel();
int userID = Convert.ToInt32(Session["UserInfoID"]);
var payStatus = _paymentRepo.GetMemberPaymentsByUserIDCreditCard(userID);
model.ID = payStatus.ID;
model.TXNID = order_id;
model.UpdatedBy = userID;
model.TXNStatus = TXNStatus.Failed;
model.UpdatedOn = DateTime.Now;
Session["DateTime"] = model.UpdatedOn;
bool pay = _paymentRepo.UpdatePaymentsByCreditCardFailed(model);
model.Amount = payStatus.Amount;
model.TXNID = order_id;
model.UpdatedOn = Convert.ToDateTime(Session["DateTime"]);
Session["TXNStatus"] = model.TXNStatus;
Session["TXNID"] = model.TXNID;
TempData["MessageFailure"] = "Transaction Failed.";
MailService objMail = new MailService();
string SubjectText = "";
string SubjectText1 = "";
string TransactionStatus = "";
var userInfo = _userRepo.GetUserInfos(userID);
model.firstName = userInfo.GroomBrideName;
model.email = userInfo.EmailID;
string DefaultURL = ConfigurationManager.AppSettings["DefaultURL"].ToString();
//payModel.TXNStatus =Convert.ToString(Session["TXNStatus"]);
string TempBody = System.IO.File.ReadAllText(Server.MapPath("/EmailTemplate/PyamentFail.html"));
if (form["status"].ToString() == "failure")
{
TransactionStatus = "Failed";
}
SubjectText = "Transaction Details";
SubjectText1 = "Indianmuslimwedding.com : Transaction Status";
model.UpdatedOn = model.UpdatedOn.Value.AddHours(5).AddMinutes(30);
string Body = String.Format(TempBody, DefaultURL, SubjectText, model.firstName, model.TXNID, TransactionStatus, model.Amount, model.UpdatedOn, DefaultURL);
objMail.SendEmail(model.email, "", "", SubjectText1, Body);
return View(model);
}
}
catch (Exception ex)
{
Response.Write("<span style='color:red'>" + ex.Message + "</span>");
}
return View();
}