我正在开发类似于Etsy的市场应用程序。具体来说,我目前正在实施结账流程,而我正在努力实施PayPal付款。
我希望有一个类似于etsy的工作流程:
我不明白如何在步骤3)中考虑更改订单总数的任何更改。例如,客户可以选择不同的运输国家,因此可以支付更高或更低的运输成本。我不想取消之前的付款并将客户发回Paypal以重新验证付款,因为这很可能会导致客户放弃订单。
如果您能指出一些真实的单词示例(我在轨道上使用ruby,但欢迎使用任何框架),我将非常感激。
答案 0 :(得分:1)
你的问题是你的第3步没有意义。让我解释一下。
在上面的第2步中,您可能知道,只有在给出送货地址时,您才能真正给予客户良好的运费估算。在那之前,你的估计不会那么紧张。
在您的第3步中,付款处理商(例如Paypal或Google Checkout)将根据运费调整订单总额。 (详细信息有所不同,请参阅下面的Google Checkout示例。)
完成第3步后,即可完成订单。处理器将向您的网站报告,说明订单已完成,并附有详细信息。您的网站进行任何最终处理。 (您的上述问题表示“客户可能会选择不同的运输国家/地区,因此可能会支付更高或更低的运费”但这对我来说没有意义。此时,订单已完成 - 您的网站不允许用户更改送货地址 - 除非用户想完全取消订单。)
有关详细信息,Google Checkout API文档提供了许多您感兴趣的选项。请阅读Google Checkout XML API Developer's Guide的“送货和数字投放”部分。这些是我认为最相关的两个:
商家计算的运费 - 对于商家计算的运费,您必须运营计算并返回运费的网络服务。 Google Checkout会向您的服务发送一个请求,其中包含买方的送货地址,订单中的商品以及您提供的送货方式。 (您之前会在Checkout API请求中将商品和送货方式发送给Google。)然后,您的网络服务会计算每种送货方式的运费,并将该信息返回给Google。
- 醇>
承运人计算的运费 - 对于承运人计算的运输方式,您可以识别您提供的一种或多种FedEx,UPS或USPS运输方式。然后,Google会根据购物车中商品的总重量动态计算每个选项的运费。运营商计算的运输文档定义了Google为每个运营商支持的具体运输方式。对于运营商计算的运输选项,仅当Google未能尝试获取运营商的运费时,才会使用默认运费。
有关完整详细信息,请参阅文档。我希望选项2有效 - 它似乎涉及相当少的自定义开发工作。
与Google Checkout相比,通过Paypal的文档相当迟钝。所以我要指出你正确的方向,但我不打算为你详细挖掘所有细节。查看:Calculate shipping and taxes
奖金材料!税费也可能因运送地点而异。付款服务有文档,告诉您如何执行此操作。