2016-12-30 55 views
0

我使用Laravel Cashier進行身份驗證註冊,並使用try catch塊來處理它。Laravel - 用戶註冊加試試catch塊中的條紋支付

try { 
    // Process the credit card through Stripe 
    // Register the user in the system 
} catch (\Exception $e) { 
    // Throw exception with error message 
} 

這工作得很好,但我想知道是否該卡的處理工作會發生什麼,但登記失敗。

他們會收取費用,並沒有帳戶。

如果發生某些事情失敗,您將如何採取逆轉措施?

+0

你就不能註冊帳戶處於禁用狀態,使後來在付款的時候是我們可以還原這個成功?如果沒有再次註冊,那麼它們是否會讓他們更容易重試付款?對我而言,註冊似乎是您控制的事情,因此驗證等應在開始付款流程之前完成。 – Robert

+0

首先,如果付款成功將其更新爲活動狀態,那麼首先必須註冊處於非活動狀態的用戶 – DsRaj

回答

1

您應該使用不同模式的try/catch爲每個進程:

try { 
    // Process the credit card through Stripe 
} catch (\Exception $e) { 
    // Throw exception with error message 
} 

,第二個寄存器:

try { 
    // Register the user in the system 
} catch (\Exception $e) { 
    // Throw exception with error message 
} 

你確切地知道失敗這種方式。

+0

嘿,感謝您的回答,但即使在這種情況下,如果分條過程成功,然後註冊失敗,它仍然會處理卡並不簽署用戶,不會嗎? – BigJobbies

+0

您可以添加狀態,例如:'預註冊','未付款','付款','註冊'等,並在每次完成一個步驟時更改它們。 – Peon

0

你應該嘗試先註冊過程,因爲它在我們的手,如果任何事情出錯

try { 
    // Register the user in the system 
    // Process the credit card through Stripe 
    // If process fails throw custom exception 
}catch(CustomException $e) { 
    //revert the Register process 
    //Throw exception 
} catch (\Exception $e) { 
    // Throw exception with error message 
}