带有更新计费周期的 Paypal 定期付款
Posted
技术标签:
【中文标题】带有更新计费周期的 Paypal 定期付款【英文标题】:Paypal recurring payment with update billing cycle 【发布时间】:2015-08-11 20:45:55 【问题描述】:我正在使用laravel 4.2
。我正在做一个提供视频服务的项目。要求是将PayPal
支付网关与recurring profile
集成。
虽然我曾多次使用PayPal classical API
创建recurring profile
,但我几乎实现了我的目标。但我很遗憾地不知道您无法在已创建的定期配置文件中更新结算周期的日期。
现在我感到很无助。
我有一个为用户提供视频服务的项目。基本思想是,在注册时,用户选择订阅计划并插入credit card
详细信息。由于它是按月订阅,因此每月的付款应为auto-renewed
。
在这两者之间,如果用户upgrades
是更高的计划,那么他将是charged
的difference
当月的新订阅金额和当前有效订阅金额,并且他的计费周期必须从今天到下个月。
例如,有以下三种订阅计划:
Basic for $10/month,
Economy for $20/month and
Premium for $30/month
如果用户在1st May
上为$10
订阅了basic plan
,则他的billing cycle
将从1st May to 1st June
设置,依此类推。每个月他将自动被收取 10 美元的费用,直到他取消订阅或停止重复他的个人资料。
现在,在5th May
之间,他将他的计划升级到具有actual amount of $20
的经济(提供更多视频),他将是charged for difference = $20-$10 = $10 for current month
(即May
),他的billing cycle
将被设置现在来自5th May to 5th June
,他将是charged $20 each month from 5th June automatically
。
还应要求用户在第一次订阅时插入credit card
详细信息only once
,之后对于任何升级或重复,他应要求not
插入信用卡。
所有这些过程都应该只在我的网站上完成,用户不应该被重定向到 PayPal 网站。
有人知道如何实现吗?
【问题讨论】:
必须是 PayPal 吗? Laravel Cashier 使用 Stripe 完成所有这些工作。 laravel.com/docs/4.2/billing @MichaelN 它自己存储信用卡信息吗?根据要求,我不能存储任何客户的信用卡信息。以及它是否支持重复功能和更新计费周期而无需再次询问信用卡信息进行任何操作? 根据strip api链接stripe.com/docs/api#update_plan有一个声明“更新计划的名称。其他计划详细信息(价格,间隔等)在设计上是不可编辑的。”,这是什么意思?是不是一经设计就无法更新循环? PayPal 网关有专家吗? 【参考方案1】:两个部分:Paypal 和计费逻辑。
Paypal 允许用户预先授权公司从 PayPal 中扣除任意金额。暴雪和 MyUS.com 就是其中的两个例子。用户一次性授权 0.00 美元,然后网站可以使用相同的授权来收取任何金额 - 考虑使用它。我不确定这个功能在我脑海中被称为什么。
编辑:它被称为计费协议(/参考交易)。
就计费逻辑而言,当您在周期中期升级用户时,请勿更改周期日期。如果他们在 1 月 1 日注册,请继续在每个月的第一天向他们收费。相反,如果用户升级,请执行以下操作:
-
更新您网站上的结算资料,以便在下一个付款周期收取更高的金额
立即按比例向用户收取费用以弥补差额。
在您的示例中:我在 2015 年 5 月 1 日注册了每月 10 美元的服务。 5 月 5 日,订阅 4 天后,我决定升级到每月 20 美元。所以现在你做这两件事。将我的个人资料设置为在 2015 年 6 月 1 日扣除 20 美元,然后按比例计算升级金额:
此结算周期还剩 26 天,占该周期的 83.8%。立即向我收取 8.38 美元(10 美元差异 * 0.838),以获得下一个定价层的全部好处。如果我在本月晚些时候升级,比如说在 15 日,我将进入周期的 50%。如果我在 30 日升级,计费周期还剩 1 天 (3.2%),按比例计算的费用为 0.32 美元。
如果我在 2 月 5 日再次降级,情况正好相反。更改我的帐单资料,在 3 月 1 日向我收取 10 美元,然后计算出按比例计算的折扣。我进入了一个 28 天周期的 4 天,所以我需要在周期的剩余时间(24 天)中退款,即 85.7%,所以我的账户立即获得了 8.57 美元的信用额度,并且只收取 1.43 美元3 月 1 日。
如果我等到 2 月 27 日降级到每月 10 美元,那么周期将只剩下 3.5%,我的帐户只会获得 0.35 美元的信用额度。
【讨论】:
谢谢。但是我已经开始使用 Stripe 而不是 PayPal,因为 PayPal 有很多限制要遵循。 Stipe 效果更好。 感谢您的解释,但 PayPal 不允许在没有用户界面的情况下直接收费,如您在步骤 2 中所说。因此,当用户打开所选订阅计划时,您不能将该金额与订阅金额相加。你知道如何在没有 UI 的情况下在 PayPal 上收费吗?【参考方案2】:如果我在 2 月 5 日再次降级,情况正好相反。更改我的帐单资料,在 3 月 1 日向我收取 10 美元,然后计算出按比例计算的折扣。我进入了一个 28 天周期的 4 天,所以我需要在周期的剩余时间(24 天)中退款,即 85.7%,所以我的账户立即获得了 8.57 美元的信用额度,并且只收取 1.43 美元3 月 1 日。
如果我等到 2 月 27 日降级到每月 10 美元,那么周期将只剩下 3.5%,我的帐户只会获得 0.35 美元的信用额度。
【讨论】:
请举例说明以上是关于带有更新计费周期的 Paypal 定期付款的主要内容,如果未能解决你的问题,请参考以下文章
PayPal .net REST API - 带有额外一次性付款的重复计费协议
如何使用 SDK 对 PayPal 定期付款配置文件进行计费