LaravelとStripeを連携させる際、下記のエラーが出たときの対策です。コードを2行追加するだけで解決できたりします。
【エラーメッセージ】
“This customer has no attached payment source or default payment method.”
“Could not determine which URL to request: Stripe\PaymentMethod instance has invalid ID”
ページ読み込み前に、javaScriptのコードが動作してpayment method作成しようとしている可能性があります。
結果として、payment methodがきちんと作られていない状態になっています。
javaScriptのコードに、次のような感じで、window.onloadを追加してみてください。
1 2 3 4 5 6 |
<script src="https://js.stripe.com/v3/"></script> <script> window.onload = my_init; function my_init() { // 既存のコード }; |
window.onloadによって、javaScript初期化処理をページ読み込み完了後に行うようにしました。
これでエラーが改善されたら嬉しいのですが、残念ながら「だめだった」という場合は、下記の対策も試してみてくださいね。
Could not determine which URL to request : Stripe PaymentMethod instanceエラー対策
LaravelにStripeを連携でこのエラーがでたら、最初にこれだけ行ってみてください。
app.blade.phpファイル内の app.js ファイルへのリンクを上部に移動させる。
これでエラーが修正できます。
Cou...
Laravel8とSTRIPEの連携で $paymentMethod が設定できず悩んでいる方へ
LaravelのCashierがバージョンアップした際、それまでの機能が一部、使えなくなりました。
そのため、少し前の記事で解説されている方法を使うと「$paymentMethodがない」と言われ、エラーになります。
そうとも知...
全体のコード例は、こちらの記事で紹介しています。