Неполадки при получении кнопок PayPal Buy Now для работы на одной странице в ASP.NET - PullRequest
0 голосов
/ 20 июля 2009

Признаюсь, я новичок в asp.net и веб-формах. У меня проблема с несколькими кнопками PayPal Buy Now на одной странице. По сути, проблема не в том, какая кнопка «Купить сейчас» нажата, пользователь попадает в PayPal, чтобы купить продукт, представленный последней кнопкой на странице.

Код моей первой кнопки примерно такой ...

<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABC123">
<asp:ImageButton runat="server" id="PPImageButton1" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif"/>

Моя вторая кнопка похожа на ...

<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABC456">
<asp:ImageButton runat="server" id="PPImageButton2" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif"/>

Как сделать так, чтобы первая кнопка отправляла значение ABC123 в службу PayPal вместо ABC456?

Заранее спасибо.

Ответы [ 6 ]

1 голос
/ 18 августа 2009

Моим решением noob для этого было вырезать каждую из кнопок «купить сейчас» и связанные с ней поля из страницы aspx и поместить каждый набор на отдельную html-страницу.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>first button</title>
</head>

<body>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal">
<input type="hidden" value="_s-xclick" name="cmd" /> <input type="hidden" value="???????" name="hosted_button_id" /> 
<table>
<tbody>
<tr>
<td><input type="hidden" value="Member name" name="on0" />Member name</td>

<td><input maxlength="60" size="30" name="os0" /></td></tr>
<tr>
<td><input type="hidden" value="Membership No. (if known)" name="on1" />Membership No. (if known)</td>
<td><input maxlength="60" size="6" name="os1" /></td></tr></tbody></table>
<input type="image" alt="PayPal - The safer, easier way to pay online." src="https://www.paypal.com/en_GB/i/btn/btn_cart_LG.gif"  name="submit" /> <img height="1" alt="" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1" border="0"/> </form>

</body>
</html>

В том месте на странице aspx, где вы удалили кнопку и другие поля, вставьте iframe, который указывает на html-страницу следующим образом:

<iframe width="600" height="" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="mybuttonpage1.htm"></iframe>
1 голос
/ 20 июля 2009

Содержимое кнопки POST - это каждый вход в теге FORM, окружающий кнопку отправки. Таким образом, чтобы каждая кнопка отправляла отдельный набор скрытых полей, вам нужно обернуть кнопку и нужные скрытые поля в отдельную форму:

<form ... >
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABC123">
<asp:ImageButton runat="server" id="PPImageButton1" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif"/>
</form>

<form ... >
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="ABC456">
<asp:ImageButton runat="server" id="PPImageButton1" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif"/>
</form>
0 голосов
/ 05 сентября 2015

Мне удалось заставить его работать, удалив все остальные контейнеры кнопок из DOM в jQuery. Добавьте класс в свой контейнер и добавьте CssClass к ImageButton, "PayPalImageButtons"

<div>
    Buy This First Product Below
</div>
<div class="ManualPurchase PayPalButtons">
    <input type="hidden" name="cmd" value="_s-xclick" />
    <input type="hidden" name="hosted_button_id" value="ABC123" />
    <asp:ImageButton CssClass="PayPalImageButtons" runat="server" id="PPImageButton1" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif" />
</div>

<div>
    Buy This Second Product Below
</div>
<div class="ManualPurchase PayPalButtons">
    <input type="hidden" name="cmd" value="_s-xclick" />
    <input type="hidden" name="hosted_button_id" value="ABC456" />
    <asp:ImageButton CssClass="PayPalImageButtons" runat="server" id="PPImageButton1" PostBackUrl="https://www.paypal.com/cgi-bin/webscr" ImageUrl="https://www.paypal.com/en_US/i/btn/btn_buynow_SM.gif" />
</div>

и JQuery

<script type="text/javascript">
    function pageLoad() {
        $(".PayPalImageButtons").click(function (e) {
            $(this).parent().addClass("keep");
            $(".PayPalButtons").not(".keep").remove();
        });
    }
</script>

Мой следующий шаг связан с высотой удаленных элементов и, возможно, с диалоговым окном «Пожалуйста, подождите», пока загружена страница PayPal

0 голосов
/ 19 декабря 2010

Я обсуждаю несколько способов решения проблемы вставки кода PayPal на страницу ASP.NET и представляю другой подход в моей статье на http://blackbeltcoder.com/Articles/ecommerce/quick-and-dirty-buy-now-buttons-in-asp-net.

В конце концов вам не нужно использовать форму, потому что PayPal позволяет вам использовать обычную ссылку привязки.

0 голосов
/ 25 декабря 2009

Вот решение проблемы с несколькими формами при использовании PayPal с ASP.NET:

.

http://www.codersbarn.com/post/2008/03/08/Solution-to-ASPNET-Form-PayPal-Problem.aspx

0 голосов
/ 20 июля 2009

Это не ваша кнопка, которая отправляет значение - это форма, в которой она находится, и / или код за ней. Не могли бы вы:

  1. Опубликовать код формы?
  2. Разместите код для этой страницы?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...