使用hosted_button_id以单一形式向Paypal添加多个项目

时间:2011-07-19 07:50:11

标签: paypal

我想在网站上设置一个表单,通过PayPal购买多个产品。产品在PayPal帐户中设置,每个帐户都有一个hosted_button_id。

表单将包含一系列描述和数量字段,所有这些字段最初都设置为零。然后,客户可以针对每种产品添加所需的数量,并使用单一'立即购买'按钮提交表单。

这可以用PayPal吗?我并不特别想要'购物车'体验,我不想传递产品价格(而是使用PayPal存储的数据)。

感谢

2 个答案:

答案 0 :(得分:4)

最后我得出结论,你不能这样做。

我尝试了所有内容,包括AJAXing提交,并通过隐藏的iFrame发送提交,以保持用户在我的网站上。没有任何效果。 PayPal似乎非常热衷于在使用购物车时强制执行批准的购物流程。

答案 1 :(得分:1)

你可以这样做,但你需要做一些服务器端编程。您以编程方式构建“加密按钮”,并将其提交给PayPal。

我在https://secure.entrian.com/store/store.html的商店页面执行此操作 - 它会提示输入一些信息,然后将其发送到服务器以转换为加密按钮,然后将其提交给PayPal。

JavaScript看起来像这样,其中$license_name$quantity是我提示的字段,formgen.py是服务器端Python脚本,用于构建和签署请求根据PayPal的文档使用OpenSSL:

$paypal_form.submit(function () {
   var response = $.ajax({
       type: "GET",
       url: 'formgen.py?' + serialize({
           licenseName: $license_name.val(),
           quantity: $quantity.val()
       }),
       async: false
   }).responseText;

   if (response.indexOf('PKCS7') >= 0) {
       $encrypted.val(response);
   } else {
       $payment_errors.text(response).show(easing_duration);
       return false;
   }

   return true;
}

表单看起来像这样(简化):

<form id="paypal-form" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="upload" value="1">
<input type="hidden" id="encrypted" name="encrypted" value="">
<button id="buynow" class="submit-button btn" type="submit">Buy Now</button>
</form>

在表单提交给PayPal之前,<input name="encrypted" ...>会填充AJAX响应。