ASP.NET表单中的Paypal表单

6 asp.net paypal

干杯,

我将Paypal购物车集成到我的ASP.NET C#项目时遇到问题.问题是Paypal购物车在FORM标签内,所以如果我把它放在我的服务器表单标签内,它将无法正常工作.

它看起来像这样:

<body>
<form id="form1" runat="server">
<form target="_self" action="https://www.paypal.com/cgi-bin/webscr" method="post">
      <input type="hidden" name="cmd" value="_cart">
      <input type="hidden" name="business" value="MySecretEmail@hidden.com">
      <input type="hidden" name="display" value="1">
      <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_viewcart_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
      <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
      </form>
</form>
</body>
Run Code Online (Sandbox Code Playgroud)

有什么办法可以防止这种情况发生吗?我在google上搜索,在Stackoverflow上我找到了这个链接:PayPal Name-Value Pair API Basics,但老实说,它对我没有任何意义,因为我不是程序员.

谢谢!

小智 11

解决此问题的最简单方法是使用asp:按钮的PostBackUrl属性.使用此方法,ASP生成您的JavaScript以处理外部帖子.

这允许正确地呈现表单,并且不需要任何解决方法.请记住,由于您的代码已经在表单标记中,因此您的paypal项目不需要包含在额外的标记中.

例如

<input type='hidden' name='cmd' value='_cart'/>
<input type='hidden' name='upload' value='1'/>
<input type='hidden' name='business' value='business@business.com'/>
<input type='hidden' name='currency_code' value='aud'/>
<input type='hidden' name='item_number_1' value='item number_1'>
<input type='hidden' name='item_name_1' value='16x16 inch square canvas'>
<input type='hidden' name='amount_1' value='70'>
<input type='hidden' name='item_number_2' value='item number_2'>
<input type='hidden' name='item_name_2' value=' 48x20 rectangular canvas'>
<input type='hidden' name='amount_2' value='104'>
<asp:Button ID="Button1" PostBackUrl='https://www.paypal.com/cgi-bin/webscr' runat="server" />
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Nic*_*ick 1

从技术上讲,您的示例不是有效的 HTML。从长远来看,您最好重构此代码以消除您的“技术债务”。(请参阅W3C 网站上XHTML 1.0 的元素禁令下的“不得包含其他表单元素” )

同时,您可以尝试使用 提交嵌套表单jQuery

1.替换提交按钮

<button class="submit-button" id="submit-button">Submit Payment</button>
Run Code Online (Sandbox Code Playgroud)

2. 修改表单标签

<form id="nested-form" target="_self" action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
Run Code Online (Sandbox Code Playgroud)

3.使用jQuery提交表单

<script type="text/javascript">
$('#submit-button').live('click',function() {
    $('#nested-form').submit();
});
</script>
Run Code Online (Sandbox Code Playgroud)

我还没有机会对此进行测试,因此请测试并告诉我它是否适合您。