我正在开发类似于Etsy的市场应用程序。具体来说,我目前正在执行结帐流程,并且在Paypal付款实施方面苦苦挣扎。
我想要一个类似于etsy的工作流程:
客户在我的网站上登录/注册
客户被重定向到贝宝,输入送货地址并授权付款
客户被重定向回我的网站,最终更改了送货地址并完成了结帐
我不理解如何在步骤3)中考虑更改订单总数的任何更改。例如,顾客可以选择不同的运输国家,因此可以支付更高或更低的运输成本。我不想取消之前的付款,然后将客户发回Paypal重新验证付款,因为这很可能导致客户放弃订单。
Etsy如何考虑这些变化?
他们使用哪种类型的贝宝付款方式(标准,自适应等)?
如果您能为我指出一些真实的单词示例,将不胜感激(我在rails上使用ruby,但欢迎使用任何框架)。
最佳答案
您的问题是您的第3步实际上没有任何意义。让我解释。
您可能已经知道,在上面的第2步中,只有给出交货地址后,您才能真正为客户提供良好的运输估算。在此之前,您的估算不会那么严格。
在第3步中,付款处理器(例如Paypal或Google Checkout)将根据运输费用调整订单总额。 (详细信息各不相同,请参见下面的Google Checkout示例。)
完成第3步后,这将完成订单。处理者将报告给您的网站,说订单已完成并附有详细信息。您的网站进行任何最终处理。 (您上面的问题说:“客户可能选择其他运输国家,因此可能要支付更高或更低的运输费用”,但这对我来说是没有意义的。至此,订单已完成-您的网站不允许用户更改送货地址-除非用户想完全取消订单。)
Google Checkout
至于详细信息,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
不要忘记税收
奖励材料!税金也可能根据运输地点而有所不同。付款服务的文档向您显示了如何执行此操作。