2012-01-06 64 views
0

我正在構建一個涉及重複計費的應用程序。在開始之前我有幾個問題,請幫助..遞延計費系統

當任何會員註冊並接受支付未來11個月?我應該如何處理這個與PHP?我應該存儲這是另一個我的SQL表或單行?如果我想將這些函數存儲在我的sql表中,我應該使用哪些PHP函數來獲取未來11個月?

我該如何運行cronjob?查看monthly_due表並獲取當前月份的所有成員正在等待的成員?

+3

你的代碼在哪裏?你有什麼問題?你到目前爲止嘗試過什麼? – 2012-01-06 09:47:59

+0

@Aron Rotteveel我有些困惑,需要幫助才能開始。 – seoppc 2012-01-06 09:50:54

回答

1

我建議您將會員的訂購到期日存儲在您的表中,計算方法爲(付款日期+ 11個月)。

要列出成員這是由於續約,只是名單的成員,其中RENEWAL_DATE在於(今天的日期)和(今天的日期+ 30天)

+0

偉大的建議,謝謝。是我的SQL足以添加(付款日期+ 11個月)即。 'NOW()+ 11' – seoppc 2012-01-06 09:55:03

+0

您可以在MySQL查詢中或在您的PHP代碼中執行日期操作。一般來說,我的偏好是用代碼來完成。 – 2012-01-06 10:53:50

2

個人而言,我會做這個

訂閱數據庫表 在表包含當訂閱到期(日期字段),用於一個日期

在PHP計算這樣的時間:

$expire = date('Y-m-d',time() + (86400 * 365)); 
// 86400 = 24 hrs * 365 = 1 year 

我會然後運行選擇訂閱,其中日期字段爲30天傑出cron腳本,發送更新電子郵件

然後,框是像10逾期天

這是一個在短期我怎麼會接近它的訂閱

3

我肯定會將您的訂閱與您的會員信息分開存儲。這不僅可以讓您完整記錄所有訂閱,而且在您需要訂閱可變長度時也會有所幫助。你的表結構可能是這樣的:

subscriptions 
------------- 
subscription_id integer 
member_id  integer 
start_date  date 
end_date   date 
date_paid  datetime 

然後你可以使用SQL直接找到有關訂閱到期等,所以找由於內未來七天期滿任何訂閱你可以有類似

SELECT 
    member_id, 
    MAX(end_date) as expires_date 
FROM 
    subscriptions 
GROUP BY 
    member_id 
HAVING 
    expires_date < DATE_ADD(CURDATE() INTERVAL 7 DAY) 
+0

謝謝,你有一個想法,實際上客戶會支付我們未來11個月從註冊日期。所以我甚至應該存儲他們的付款,以及如何獲得本月付款額下降的用戶。 – seoppc 2012-01-06 10:16:26