通过PayPal传递选项

时间:2011-05-31 19:44:51

标签: html paypal paypal-ipn paypal-sandbox

我正在为客户创建简单的结帐,访问者可以通过 PayPal 结帐。目前,我的HTML表单如下所示:

<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="sandbox@mcbwebdesign.co.uk" /> 
    <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> 

如您所见,这是一种简单的表单,可将​​产品的详细信息传递给 PayPal 以便结帐。但是,我遇到了自定义选项的问题,即option_name1option_selection1等。

如何将客户端和管理员查看的自定义信息(如选定的大小和颜色等)传递给 PayPal ?目前,使用 PayPal 沙箱功能对上述内容进行测试时,我无法看到任何与自定义选项相关的内容。

3 个答案:

答案 0 :(得分: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

查看生成的代码

答案 1 :(得分:1)

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

我一直在尝试使用option_name1option_selection,但这不起作用。在我发布此帖后,我尝试了option_select0option_amount0

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

我希望能节省一些时间!

答案 2 :(得分:0)

如果我没记错的话,您所指的自定义选项只需通过PayPal传回回调即可。前提是您将特定的付款与特定订单挂钩,然后该订单将包含您指定的所有选项。

我不确定你是否可以让PayPal与他们一起做任何事情。

此外,我不知道它有多少变化,但根据我的经验,PayPal沙盒可能与真正的PayPal显着不同,值得注意。