2016-12-30 14 views
0

私はLaravel Cashierと認証登録を1つの形式で使用し、try catchブロックを使用してすべてのimを処理します。Laravel - try 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

あなたは、各プロセスのために/キャッチを試みるdefferent使用する必要があります。

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

'pre-registration'、' unpayed'、 'payed'、' registered'などのステータスを追加し、ステップを終了するたびに変更することができます。 – 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 
} 
関連する問題