
本教程旨在指导用户如何在基于html表单的旧版paypal payments standard集成中,为每个商品添加独立的运费。文章将详细阐述如何利用paypal提供的特定html变量来传递运费信息,并提供相应的代码示例。同时,鉴于该集成方式的局限性,文章也将简要提及现代paypal checkout解决方案的优势,并建议用户考虑升级。
您当前使用的PayPal集成方式,即通过硬编码HTML表单直接与PayPal交互,属于PayPal Payments Standard(也称为Website Payments Standard)的范畴。这是一种相对较早的集成模式,其功能和灵活性与现代的PayPal Checkout API存在显著差异。在这种模式下,若要实现按商品计费的运费,您需要通过特定的HTML input 字段来向PayPal传递运费数值。
PayPal Payments Standard支持一系列HTML变量来控制交易的各个方面,包括商品信息、金额、以及运费等。对于添加到购物车中的单个商品,可以通过相应的运费变量来指定其运费。
要为您的PayPal按钮添加按商品计费的运费,您需要在现有的HTML表单中增加一个或多个隐藏的input字段。
根据PayPal Payments Standard的文档,当您使用cmd=_cart和add=1命令将单个商品添加到购物车时,最直接的运费变量是shipping。如果还需要处理费用,可以使用shipping2变量。
在您现有的PayPal表单中,添加一个name="shipping"的隐藏输入字段,并为其value属性赋上该商品的具体运费金额。
原始代码示例:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal">
<input alt="Add this item to your order" name="submit" src="/add-to-order.gif" type="image" />
<input name="add" type="hidden" value="1" />
<input name="cmd" type="hidden" value="_cart" />
<input name="business" type="hidden" value="your_email@example.com" />
<input name="item_name" type="hidden" value="Item name" />
<input name="amount" type="hidden" value="500.00" />
<input name="no_shipping" type="hidden" value="2" />
<input name="currency_code" type="hidden" value="GBP" />
<input name="bn" type="hidden" value="PP-ShopCartBF" />
</form>添加运费后的代码示例:
假设您希望为这个商品添加10.50 GBP的运费。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal">
<input alt="Add this item to your order" name="submit" src="/add-to-order.gif" type="image" />
<input name="add" type="hidden" value="1" />
<input name="cmd" type="hidden" value="_cart" />
<input name="business" type="hidden" value="your_email@example.com" />
<input name="item_name" type="hidden" value="Item name" />
<input name="amount" type="hidden" value="500.00" />
<!-- 添加按商品计费的运费 -->
<input name="shipping" type="hidden" value="10.50" />
<!-- 可选:添加处理费 -->
<!-- <input name="shipping2" type="hidden" value="2.00" /> -->
<input name="no_shipping" type="hidden" value="2" />
<input name="currency_code" type="hidden" value="GBP" />
<input name="bn" type="hidden" value="PP-ShopCartBF" />
</form>在上述示例中,value="10.50"即为该商品的运费。当用户点击“添加到订单”按钮时,这个运费值将随商品金额一同传递给PayPal。
您提到运费会根据配送地区和商品类型而异。由于PayPal Payments Standard按钮是静态HTML,您无法直接在前端HTML中实现这种动态逻辑。要实现这一功能,您需要在您的网站后端进行处理:
例如,如果您的网站使用某种后端语言,您可能会这样生成表单:
<?php
// 假设这是根据商品ID和用户选择的地区计算出的运费
$itemShippingCost = calculateShippingCost($itemId, $userRegion);
?>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal">
<!-- ... 其他输入字段 ... -->
<input name="amount" type="hidden" value="<?php echo htmlspecialchars($itemPrice); ?>" />
<input name="shipping" type="hidden" value="<?php echo htmlspecialchars($itemShippingCost); ?>" />
<!-- ... 其他输入字段 ... -->
</form>这样,每次商品添加到购物车时,都会传递正确的、动态计算的运费。
考虑到PayPal Payments Standard的局限性及其相对过时的技术栈,强烈建议您考虑升级到现代的PayPal Checkout集成。
PayPal Checkout提供了:
虽然迁移到PayPal Checkout需要对您的网站代码进行较大改动,但从长远来看,它能提供更稳定、功能更强大且用户体验更好的支付解决方案。
对于您现有的旧版PayPal Payments Standard集成,要实现按商品计费的运费,核心是在HTML表单中通过input name="shipping"字段传递运费值。针对不同地区和商品的动态运费,则需要您的网站后端进行计算并在渲染表单时动态填充。然而,为了获得更好的功能、灵活性和用户体验,强烈建议您考虑升级到现代的PayPal Checkout解决方案。
以上就是为旧版PayPal集成添加按商品计费的运费教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号