前提・実現したいこと
ここに質問の内容を詳しく書いてください。
PHP(Laravel)でStripeのコネクトを使って定額決済できるプラットフォームを作りたいと思っています。
まずアカウントを連結させる必要があるため下記のリンクの通りに行ってみましたが、上手く連結されませんでした。
https://takkublog.net/stripe04/
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
本当にネット上のLaravel情報はひどすぎる…。
その記事は「Laravelユーザーならこんなコードは書かない」というありとあらゆる間違ったことをやっている。
・define()は使わない
・$_GETは使わない
・array()は使わない
・env()は(config以外で)使わない
・curl関連関数は直接使わない
LaravelでStripe使いたいならCashierがLaravel公式で用意されている。
https://readouble.com/laravel/7.x/ja/billing.html
そもそもの一番重要なことは
お金を扱う機能を初心者が作ってはいけないのでやめたほうがいい。
責任の重さが分かってないなら絶対にやめたほうがいい。
投稿2020/07/04 01:02
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
自己解決
一応下記の通りに修正したら出来ました。
回答として頂いた通りLaravelを使っている人が$_GETとかを使ってるのはあまりみたことがなかったのでそこはもう少し修正する必要があるかと思いました。
php
1public function connect(){//子ユーザーコネクト作成 2 define('CLIENT_ID', 'Id');//connectの設置ページにある 3 define('TOKEN_URI', 'https://connect.stripe.com/oauth/token'); 4 define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize'); 5 if (isset($_GET['code'])) { // Redirect/ code 6 $code = $_GET['code']; 7 $token_request_body = array( 8 'client_secret' => env('STRIPE_SECRET'), 9 'grant_type' => 'authorization_code', 10 'client_id' => CLIENT_ID, 11 'code' => $code, 12 ); 13 $req = curl_init(TOKEN_URI); 14 curl_setopt($req, CURLOPT_RETURNTRANSFER, true); 15 curl_setopt($req, CURLOPT_POST, true ); 16 curl_setopt($req, CURLOPT_POSTFIELDS, http_build_query($token_request_body)); 17 // TODO: Additional error handling 18 $respCode = curl_getinfo($req, CURLINFO_HTTP_CODE); 19 $resp = json_decode(curl_exec($req), true); 20 curl_close($req); 21 22 $id = Auth::id();//user_id取得 23 User::where('id', $id)->update(['stripe_user_id' => $resp['stripe_user_id']]); 24 25 return redirect()->back(); 26 } else if (isset($_GET['error'])) { // Error 27 echo $_GET['error_description']; 28 } else { // Show OAuth link 29 $authorize_request_body = array( 30 'response_type' => 'code', 31 'scope' => 'read_write', 32 'client_id' => CLIENT_ID, 33 ); 34 $url = AUTHORIZE_URI . '?' . http_build_query($authorize_request_body); 35 36 return view('connect')->with('url',$url); 37 }
投稿2020/07/05 07:57
編集2020/07/05 08:05総合スコア4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/05 08:25
2020/07/05 08:36
退会済みユーザー
2020/07/05 09:15
2020/07/05 09:28
退会済みユーザー
2020/07/05 09:34
0
一応下記の通りに修正したら出来ました。
回答として頂いた通りLaravelを使っている人が$_GETとかを使ってるのはあまりみたことがなかったのでそこはもう少し修正する必要があるかと思いました。
php
1public function connect(){//子ユーザーコネクト作成 2 define('CLIENT_ID', 'Id');//connectの設置ページにある 3 define('TOKEN_URI', 'https://connect.stripe.com/oauth/token'); 4 define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize'); 5 if (isset($_GET['code'])) { // Redirect/ code 6 $code = $_GET['code']; 7 $token_request_body = array( 8 'client_secret' => env('STRIPE_SECRET'), 9 'grant_type' => 'authorization_code', 10 'client_id' => CLIENT_ID, 11 'code' => $code, 12 ); 13 $req = curl_init(TOKEN_URI); 14 curl_setopt($req, CURLOPT_RETURNTRANSFER, true); 15 curl_setopt($req, CURLOPT_POST, true ); 16 curl_setopt($req, CURLOPT_POSTFIELDS, http_build_query($token_request_body)); 17 // TODO: Additional error handling 18 $respCode = curl_getinfo($req, CURLINFO_HTTP_CODE); 19 $resp = json_decode(curl_exec($req), true); 20 curl_close($req); 21 22 $id = Auth::id();//user_id取得 23 User::where('id', $id)->update(['stripe_user_id' => $resp['stripe_user_id']]); 24 25 return redirect()->back(); 26 } else if (isset($_GET['error'])) { // Error 27 echo $_GET['error_description']; 28 } else { // Show OAuth link 29 $authorize_request_body = array( 30 'response_type' => 'code', 31 'scope' => 'read_write', 32 'client_id' => CLIENT_ID, 33 ); 34 $url = AUTHORIZE_URI . '?' . http_build_query($authorize_request_body); 35 36 return view('connect')->with('url',$url); 37 }
投稿2020/07/05 08:02
総合スコア4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。