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を追加してみてください。
<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 ファイルへのリンクを上部に移動させる。これでエラーが修正できます。Could not deter...

Laravel8とSTRIPEの連携で $paymentMethod が設定できず悩んでいる方へ
LaravelのCashierがバージョンアップした際、それまでの機能が一部、使えなくなりました。そのため、少し前の記事で解説されている方法を使うと「$paymentMethodがない」と言われ、エラーになります。そうとも知らず、わたしは無...
全体のコード例は、こちらの記事で紹介しています。



コメント