[英]Paypal recurring payment with update billing cycle
我正在使用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和計費邏輯。
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 diff * 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美元的信用額度。
如果我在2月5日再次降級,反之亦然。 將我的結算資料更改為3月1日收取10美元,然后計算出按比例折扣。 我在28天的周期中進行了4天,所以我需要在周期的剩余時間(24天)內退款,這是85.7%,所以我立即獲得了8.57美元的信用額度,只收取1.43美元3月1日。
如果我等到2月27日降級到每月10美元,那么只剩下3.5%的周期,我只能獲得0.35美元的信用額度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.