我想在网站上设置一个表单,通过PayPal购买多个产品。产品在PayPal帐户中设置,每个帐户都有一个hosted_button_id。
表单将包含一系列描述和数量字段,所有这些字段最初都设置为零。然后,客户可以针对每种产品添加所需的数量,并使用单一'立即购买'按钮提交表单。
这可以用PayPal吗?我并不特别想要'购物车'体验,我不想传递产品价格(而是使用PayPal存储的数据)。
感谢
答案 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响应。