質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

2230閲覧

Laravel,Stripe決済で領収書が送れない

tenlife

総合スコア70

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/03/01 22:38

LaravelでStripe決済を実装しています。

この記事のInvoicesという所を参考にしています。
領収書(請求書)発行し、ダウンロード出来る様にしたいと思っています。
https://quickadminpanel.com/blog/stripe-payments-in-laravel-the-ultimate-guide/

エラーが表示されます User is not a Stripe customer. See the createAsStripeCustomer method.

Stripe Customerとして認識されてない?
createAsStripeCustomerこのメソッドをみにいきましたが、うまく理解できず。。

Controller

1public function invoices() 2 { 3 try { 4 Stripe::setApiKey(env('STRIPE_SECRET')); 5 6 $user = Auth::user(); 7 8 $invoices = $user->invoices(); 9 10 return view('charge.invoices', compact('invoices')); 11 12 } catch (\Exception $ex) { 13 return $ex->getMessage(); 14 } 15 16 } 17 18 public function invoice($invoice_id) 19 { 20 try { 21 Stripe::setApiKey(env('STRIPE_SECRET_KEY')); 22 23 $user = Auth::user(); 24 25 return $user->downloadInvoice($invoice_id, [ 26 'vendor' => 'Your Company', 27 'product' => 'Your Product', 28 ]); 29 30 } catch (\Exception $ex) { 31 return $ex->getMessage(); 32 } 33 34 } 35

View

1@extends('layouts.app') 2 3@section('content') 4 @foreach ($invoices as $invoice) 5 <tr> 6 <td>{{ $invoice->date()->toFormattedDateString() }}</td> 7 <td>{{ $invoice->total() }}</td> 8 <td><a href="/invoice/{{ $invoice->id }}">Download</a></td> 9 </tr> 10 @endforeach 11@endsection

Web

1Route::get('/invoices', 'ChargeController@invoices'); 2Route::get('/invoice/{invoice_id}', 'ChargeController@invoice');

どこに原因があるのか見つけることができませんでした。

どなたか知恵を貸していただきたいです。

よろしくお願いします。

php 7.4
laravel 6.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

User is not a Stripe customer

ユーザーは契約者ではありません
なので契約してください

顧客ではないという意味であれば顧客登録が必須なのかと

投稿2020/03/01 23:49

編集2020/03/01 23:52
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

レベルが高そうなので、領収書はstripeから手動で送るようにしました。

投稿2020/03/05 23:49

tenlife

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

・Laravelでは2017年の情報とか役に立たない。
・env()はconfig内でしか使ってはいけない。
その記事は参考にしないほうがいい。

invoices()等はLaravel Cashierの機能。
Cashier10ならサブスクリプションも1回だけの課金もできるしCashierだけ使えば十分なはず。

質問に限れば足りないのはUserモデルへのBillableだけどこれだけやっても意味ない。基本的な使い方から全部見直しが必要。

php

1use Laravel\Cashier\Billable; 2 3class User extends Authenticatable 4{ 5 use Billable; 6}

読むべきは公式ドキュメントしかない。
https://laravel.com/docs/6.x/billing
非公式日本語訳は参考程度に。よく見ると微妙に間違いがある。トレイトではなくトライアル。
https://readouble.com/laravel/6.x/ja/billing.html

そもそもお金が関わることを初心者が作るのはやめたほうがいいけど。
Cashier使ったとしても大変。

投稿2020/03/02 00:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問