2016-07-26 57 views
0

在測試模式下運行條紋。 (直接施加到條帶的儀表板)條紋測試訂閱流明5.1

我已經創建用於100GBP量每年計費計劃,用7天的試用

然而,以測試網絡掛接我已經硬編碼的trial_end:

$trialEnd = new DateTime(); 
    $trialEnd->setTimestamp(time()+120); 

    $user = Users::find($this->user()['user_id']); 
    $user->subscription($stripe_plan['stripe_plan'])->trialFor($trialEnd)->create($data['stripeToken'], [ 
     'email' => $this->user()['email'] 
    ]); 
    $user->save(); 

基本上一切順利,但條形儀表板顯示0英鎊的第一張發票,一分鐘後我收到訂閱將在一分鐘內結束。畢竟,訂閱變成活動(來自測試)狀態。

所有的webhooks,甚至第一次訂閱添加響應我得到試用結束期而不是訂閱結束。

如何獲取subscription_ends_at時間戳?

所有網絡掛接請求都具有以下時間戳:

{ 
    "id": "evt_18baRrIzJLF7fe6PMDPYD0NM", 
    "object": "event", 
    "api_version": "2016-07-06", 
    "created": 1469558315, 
    "data": { 
    "object": { 
     "id": "sub_8tNBbqy0AmSk8p", 
     "object": "subscription", 
     "application_fee_percent": null, 
     "cancel_at_period_end": false, 
     "canceled_at": null, 
     "created": 1469558268, 
     "current_period_end": 1469558384, 
     "current_period_start": 1469558268, 
     "customer": "cus_8tNB1tWYw3Jw7L", 
     "discount": null, 
     "ended_at": null, 
     "livemode": false, 
     "metadata": { 
     }, 
     "plan": { 
     "id": "yearly_200", 
     "object": "plan", 
     "amount": 20000, 
     "created": 1469545724, 
     "currency": "gbp", 
     "interval": "year", 
     "interval_count": 1, 
     "livemode": false, 
     "metadata": { 
     }, 
     "name": "Full Club Membership - Pay Anually", 
     "statement_descriptor": "FULL MEMBERSHIP", 
     "trial_period_days": 7 
     }, 
     "quantity": 1, 
     "start": 1469558268, 
     "status": "trialing", 
     "tax_percent": null, 
     "trial_end": 1469558384, 
     "trial_start": 1469558268 
    } 
    }, 
    "livemode": false, 
    "pending_webhooks": 1, 
    "request": null, 
    "type": "customer.subscription.trial_will_end" 
}

所以,如果你看一下trial_start和trial_end一樣的是current_period_start和current_period_end。

我雖然最初認爲,如果這是當前時期..罰款,但試用期滿後,本期不應該試一試。

有什麼方法可以從Stripe api獲取subscription_ends_at字段?而且,在試用期結束後,不應該用實際金額發送發票?

此外,我創建了一個沒有試用期的訂閱計劃。客戶訂閱後的這個計劃,我得到了正確的時間戳。

提前致謝!

回答

0

哦,現在我明白了..我會解釋也許會幫助某人:D。

基本上,如果訂閱在訂閱時獲得試用期,您將獲得0的發票。然後,即使您將試用設置爲在2分鐘內與請求一起過期,第一筆付款將在大約10分鐘內發生: (如果你設置了webhook url),你會得到一個「type」:「customer.subscription.updated」event,它將包含所有你想要的信息。沒有等待10分鐘,看看新的發票是否會觸發..並創建 - >刪除 - >重新創建 - >刪除等4小時不同的測試

1

它看起來像你搞清楚了。基本上,延遲來自這樣一個事實,即當時間戳過期以便您的試用期滿時,您在該結算週期創建新發票的請求將被添加到隊列中。通常情況下,隊列會立即創建新發票,但在觸發前有時可能會持續幾分鐘。

第一張發票將總是有current_period_*的時間戳,它們映射到trial_period_*。而第二個發票(與invoice.created -event一起顯示)將具有計費期間的準確時間戳。