Paypal:付款后如何更新运费,如 Etsy 所做的那样?
Posted
技术标签:
【中文标题】Paypal:付款后如何更新运费,如 Etsy 所做的那样?【英文标题】:Paypal: how to update shipping costs after the payment, as done by Etsy? 【发布时间】:2012-05-27 15:20:46 【问题描述】:我正在开发一个类似于 Etsy 的市场应用程序。具体来说,我目前正在实施结帐流程,而我正在努力实施贝宝付款。
我想要一个类似于 etsy 的工作流程:
-
客户在我的网站上登录/注册
客户重定向到贝宝,输入收货地址并授权付款
客户重定向回我的网站,最终更改送货地址并完成结帐
我不明白如何在步骤 3) 中考虑更改订单总额的任何更改。例如,客户可能会选择不同的运输国家,因此可能会支付更高或更低的运输成本。我不想取消之前的付款并将客户发回贝宝以重新验证付款,因为这很可能会导致客户放弃订单。
Etsy 如何考虑这些变化? 他们使用哪种贝宝支付类型(标准、自适应等)?如果你能指出一些真实的例子,我将不胜感激(我在 Rails 上使用 ruby,但欢迎任何框架)。
【问题讨论】:
【参考方案1】:您的问题是您的第 3 步实际上没有意义。让我解释一下。
在上面的第 2 步中,您可能知道,只有在提供送货地址时,您才能真正为客户提供良好的运费估算。在那之前,您的估计不会那么严格。
在您的第 3 步中,支付处理器(例如 Paypal 或 Google Checkout)将根据运费调整订单总额。 (详情有所不同,请参阅下面的 Google Checkout 示例。)
在您完成第 3 步后,这将完成订单。处理器将向您的网站报告说订单已完成详细信息。您的网站进行任何最终处理。 (您上面的问题是“客户可能会选择不同的送货国家,因此可能会支付更高或更低的运费”,但这对我来说没有意义。此时,订单完成 -- 您的网站应该不允许允许用户更改送货地址 -- 除非用户想要完全取消订单。)
谷歌结帐
至于详细信息,Google Checkout API 文档提供了许多您会感兴趣的选项。请阅读Google Checkout XML API Developer's Guide 的“运输和数字交付”部分。以下是我认为最相关的两个:
商家计算的运费 - 对于商家计算的运费,您必须运行计算并返回运费的 Web 服务。 Google Checkout 将向您的服务发送请求,其中包含买家的送货地址、订单中的商品以及您提供的送货方式。 (您之前会在 Checkout API 请求中将商品和运输方式发送给 Google。)然后您的网络服务会计算每种运输方式的运输成本并将该信息返回给 Google。
承运人计算的运输方式 - 对于承运人计算的运输方式,您确定您提供的一种或多种 FedEx、UPS 或 USPS 运输方式。然后,Google 将根据您购物车中商品的总重量动态计算每个选项的运费。承运人计算的运输文件定义了 Google 支持的每个承运人的具体运输方式。对于承运人计算的运费选项,仅当 Google 未能尝试获取承运人的运费时才使用默认运费。
有关完整详细信息,请参阅文档。我希望选项 2 有效——它似乎涉及的定制开发工作要少得多。
贝宝
与 Google Checkout 相比,浏览 Paypal 的文档是相当迟钝的。因此,我将为您指出正确的方向,但我不会仅为您详细介绍所有内容。签出:Calculate shipping and taxes
别忘了税
奖励材料!税费也可能因运输地点而异。支付服务有向您展示如何执行此操作的文档。
【讨论】:
嗨詹姆斯,你上面所说的不正确。根据 paypal express 文档,在支付授权后,用户被重定向回商家网站。然后商家网站负责发出付款捕获请求。捕获的金额可能与授权金额不同。请参阅此处并尝试测试 Etsy 以了解其工作原理:cms.paypal.com/us/cgi-bin/… 我同意 Google Checkout 优于 PayPal。不幸的是,建立一个像 Etsy 这样的市场并不是最好的,因为基本要求是商家位于美国或英国,通常情况并非如此 好的,我明白了——是的,我上面的回答被简化了,没有考虑PayPal Express Checkout execution flow 中的步骤(6)和(7)。 您阅读过 PayPal 的 Using Authorization & Capture 文档吗?例如,由于运费变化,它为调整付款提供了很大的灵活性。以上是关于Paypal:付款后如何更新运费,如 Etsy 所做的那样?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 PayPal rest API 执行付款之前更改运费