ashwani bakshi Ответов: 1

Не удается перенаправить пользователя на платежную страницу платежного шлюза?


уважаемый сэр/мадам

c# - интеграция PayUMoney в MVC и вызов с использованием ajax - переполнение стека[^]

я сталкиваюсь с той же проблемой, что и в приведенной выше ссылке.
поэтому уважаемые члены клуба дают вам советы и помогают.
заранее спасибо за вашу помощь

Что я уже пробовал:

шлюз provide have предоставляет код в asp.net и я хотел использовать его в mvc
когда я использую этот код в mvc
Страница.Управления.Add(new LiteralControl(strForm));//эта строка дает мне ошибку.

public string Generatehash512(текст строки)
{

байт[] сообщение = кодировка.Кодировке utf8.GetBytes(текст);

UnicodeEncoding UE = новое UnicodeEncoding();
байт [hashvalue, которое] ;
SHA512Managed hashString = новый SHA512Managed();
строку шестнадцатеричных = "";
hashvalue, которое = hashString.ComputeHash(сообщение);
по каждому элементу (байту х в hashvalue, которое)
{
hex += строка.Формат("{0:x2}", x);
}
возвратный шестигранник;

}

публичная строка Generatetxnid()
{
Random rnd = новый случайный();
строка strHash = Generatehash512(rnd.ToString() + DateTime.Now);
возвращение стрхаша.ToString().Substring(0, 20);
}

[HttpPost]
общественного недействительными демо(строка АМТ, имя строки, строки угодите emaill, phno строку, строку прод)
{
строка имя = имя;
сумма строки = amt;
строка productInfo = prod;
строка email = emaill;
струнный телефон = phno;

строковый ключ = "";
струна соль = "";
строка txnid = Generatetxnid();
строки hashString = ключ + "|" + txnid + "|" + сумма + "|" + productInfo + "|" + имя + "|" + электронной почты + "|||||||||||" + соль;
string hash = Generatehash512(hashString).Нижестоящим();
Система.Коллекции.Данные хэш-таблицы = новая система.Коллекции.Hashtable(); // добавление значений в таблицу gash для записи данных
данных.Добавить("травка", гашиш);
data.Add("txnid", txnid);
data.Add("ключ", ключ);
data.Add("сумма", сумма);
data.Add("firstname", имя);
data.Add("электронная почта", электронная почта);
данных.Добавить("телефон", телефона);
data.Add("productinfo", productInfo);
данных.Добавить("Злюк", "http://localhost:61818/Default/Sucess");
данных.Добавить("пучок", "http://localhost:61818/Default/Failure");
data.Add("service_provider", "payu_paisa");
действие 1 = "https://sandboxsecure.payu.in/_payment";
string strForm = PreparePOSTForm(action1, data);
// Страница.Управления.Add(new LiteralControl(strForm));//выдача ошибки
}
частная строка PreparePOSTForm(string url, System.Коллекции.Данные хэш-таблицы) // форма записи
{
// Задать имя для формы
строки код_формы = "Постформированием";
// Создайте форму, используя указанные данные для публикации.
StrForm то StringBuilder новое окно инструментов();
strForm.Добавить("");

(по каждому элементу системы.Коллекции.Ключ DictionaryEntry в данных)
{

strForm.Добавить("");
}
strForm.Добавить("");
// Создайте JavaScript, который будет выполнять операцию публикации.
StringBuilder strScript = новый StringBuilder();
strScript.Добавлять("");
strScript.Добавить("ВАР в" + код_формы + " = документ." +
код_формы + ";");
strScript.Добавить("в" + код_формы + ".подать();");
strScript.Добавлять("");
// Верните форму и сценарий, объединенные вместе.
// (Порядок важен, форма потом JavaScript)
верните strForm.ToString() + strScript.Метод toString();
}
}

1 Ответов

Рейтинг:
2

Richard Deeming

MVC не использует дерево элементов управления; вам просто нужно вернуть необработанный HTML пользователю:

[HttpPost]
public ActionResult demo(string amt, string name, string emaill, string phno, string prod)
{
    ...
    string strForm = PreparePOSTForm(action1, data);
    return Content(strForm, System.Net.Mime.MediaTypeNames.Text.Html);
}