Как пройти встраивание HTML-формы для кнопок PayPal asp.net - PullRequest
0 голосов
/ 23 июля 2010

У меня есть некоторый опыт использования PayPal с веб-сайтом asp.net, однако этот вопрос меня очень озадачил.

Корень проблемы: вы не можете вставить html-форму для кнопки PayPal в форму страницы.

Оригинальное решение: Первоначально мой веб-сайт использовал несколько страниц aspx, поэтому я мог просто расположить теги форм так, чтобы они не были встроены друг в друга.

Мой сайт теперь использует главную страницу aspx, которая рисует в различных элементах управления ascx. Это означает, что у меня нет возможности размещать теги формы вокруг страницы, поэтому нужно обойтись.

NB. Я искал повсюду простые решения, но там джунгли, PayPal - это кошмар. Я нашел что-то на призрачной форме , все это на c #. Могу помочь ...

Заранее спасибо за любую помощь ....

Ответы [ 3 ]

1 голос
/ 23 июля 2010

Отправляйте информацию PayPal, используя их API-интерфейсы, а не отправляйте форму непосредственно им.

Таким образом, вы можете хранить все как часть единой формы и добавить немного большей надежности во ввод и проверку PayPal.

PayPal: SDK и файлы для загрузки

0 голосов
/ 07 августа 2010

Вот кое-что, что будет работать для вас.В вашем коде:

// Workaround for PayPal form problem
CustomForm mainForm = new CustomForm();
mainForm.RenderFormTag = false;

Создайте пользовательский класс формы, который переопределяет класс HtmlForm:

public class CustomForm : System.Web.UI.HtmlControls.HtmlForm
{
    protected bool _render;

    public bool RenderFormTag
    {
        get { return _render; }
        set { _render = value; }
    }

    public CustomForm()
    {
        //By default, show the form tag
        _render = true;
    }

    protected override void RenderBeginTag(HtmlTextWriter writer)
    {
        //Only render the tag when _render is set to true
        if (_render)
            base.RenderBeginTag(writer);
    }

    protected override void RenderEndTag(HtmlTextWriter writer)
    {
        //Only render the tag when _render is set to true
        if (_render)
            base.RenderEndTag(writer);
    }
}
0 голосов
/ 23 июля 2010

Была эта проблема также с другим поставщиком платежей.Вы можете использовать их API или обойти его следующим образом:

  • Сделать кнопку извлечения стандартной кнопкой изображения
  • Выполнить что-то вроде ClientScript.RegisterStartupScript () для вывода как HTML, так иJavascript.HTML должен быть реальной формой со всеми скрытыми полями и правильным идентификатором.Javascript - это код, который будет выполняться при загрузке страницы и отправке страницы.

т.е. ClientScript.RegisterStartupScript(Me.GetType(), "PaypalSubmit", "<AllMarkUp><GoesHere><script>And.Javascript</script>", False)

Надеюсь, это поможет, в противном случае вы могли бы использовать API веб-службы.Используя этот подход, вы выполняете обратную передачу, выводите HTML-форму (вне формы .NET, потому что она находится внизу страницы), а затем полагаетесь на javascript для ее фактической отправки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...