2011-05-31 125 views
1

我正在为访客可以通过PayPal检出的客户创建一个简单结帐。目前,我的HTML形式如下:通过PayPal传递选项

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 
    <fieldset> 
    <input type="hidden" name="cmd" value="_xclick" /> 
    <input type="hidden" name="business" value="[email protected]" /> 
    <input type="hidden" name="item_number" value="29" /> 
    <input type="hidden" name="amount" value="17.99" /> 
    <input type="hidden" name="currency_code" value="GBP" /> 
    <input type="hidden" name="lc" value="GB" /> 
    <input type="hidden" name="item_name" value="Cohda Design Limited: Design Filter Tee" /> 
    <dl id="product_options"> 
     <dt><label for="option_selection1">T-shirt size:</label></dt> 
     <dd> 
     <input type="hidden" name="option_name1" value="T-shirt size" /> 
     <select name="option_selection1" id="option_selection1"> 
      <option value="Small">Small</option> 
      <option value="Medium">Medium</option> 
      <option value="Large">Large</option> 
      <option value="Extra Large">Extra Large</option> 
     </select> 
     </dd> 
     <dt><label for="option_selection2">T-shirt colour:</label></dt> 
     <dd> 
     <input type="hidden" name="option_name2" value="T-shirt colour" /> 
     <select name="option_selection2" id="option_selection2"> 
      <option value="Machine Gun Grey">Machine Gun Grey</option> 
      <option value="Blood Red">Blood Red</option> 
     </select> 
     </dd> 
    </dl> 
    <label for="quantity">Quantity:</label> 
    <input type="text" name="quantity" value="1" id="quantity" class="numeric" size="2" maxlength="2" /> 
    <input type="submit" value="Buy now with PayPal or credit/debit card" class="button" /> 
    </fieldset> 
</form> 

正如你所看到的,只是形成通过产品的细节贝宝结账。但是,我有自定义选项的问题,即option_name1option_selection1

我如何可以通过自定义信息,如选择大小和颜色等,以贝宝,对客户端和管理员可以查看?就目前而言,使用PayPal沙箱功能测试上述内容我看不到任何与自定义选项有关的任何内容。

+0

哪Paypal,Express结帐? – 2011-05-31 19:48:17

回答

0

如果我没有记错,那么您所指的自定义选项只是通过PayPal传回给回调。前提是您将特定付款与特定订单绑定,然后您可以指定所有选项。

我不确定您是否可以让PayPal做任何与他们结束的事情。

此外,我不知道它有多少变化,但根据我的经验,PayPal沙箱可能与真实PayPal有很大不同,值得注意。

1

option_selectX是IPN消息中参数的名称。什么你要添加到该按钮是这样的:

<input type="hidden" name="on0" value="Size">Size 
<select name="os0"> 
<option value="Option 1">Option 1 $10.00</option> 
<option value="Option 2">Option 2 $12.00</option> 
<option value="Option 3">Option 3 $13.00</option> 
</select> 
<input type="hidden" name="option_select0" value="Option 1"> 
<input type="hidden" name="option_amount0" value="10.00"> 
<input type="hidden" name="option_select1" value="Option 2"> 
<input type="hidden" name="option_amount1" value="12.00"> 
<input type="hidden" name="option_select2" value="Option 3"> 
<input type="hidden" name="option_amount2" value="13.00"> 

只需添加“ON1”和颜色等 您可以创建一个静态的按钮,必须通过看看生成的代码“OS1” https://www.paypal.com/buttonfactory

+0

如果他在PayPal的买家选择了12.00美元的选项,IPN会在HttpContext.Current.Request.Form(“option_select1”)中看到该选项 - 其他选项的表单集合中没有任何内容?同样,对于option_amountX项目?这是我的解释,但在我的IPN代码的断点处,我无法看到用户做出的选择。 – 2013-10-04 13:38:13

1

我也无法传递自定义变量,并发现它是命名约定,我得到错误(可能是由于过时的文档)。

我一直在尝试使用option_name1option_selection,而这是行不通的。我是这篇文章后,我尝试了option_select0option_amount0

但是直到我终于找到这个页面https://www.paypal.com/us/cgi-bin/webscr?cmd=_pdn_xclick_options_help_outside,我意识到它应该确实是on0os0作为选项名称和选项值变量名称。

我希望这可以节省一些人一些时间!