前提・実現したいこと
Stripe Checkoutで単発決済用のボタンを設置したいです。
以下の記事を参考にボタンを作成しました。
https://takkublog.net/stripe02/
画像のように公開可能キーが設定されていないというエラーメッセージが出ます。
該当のソースコードには載せていませんが.envファイルにstripeで取得した公開可能キーとシークレットキーはコピペしています。
https://gyazo.com/bb2ec260e7df08deaaa05557b06ff976
該当のソースコード
mycart.blade.php
mycart.blade.php
1<div class="content"> 2 <form action="{{ asset('charge') }}" method="POST" class="text-center"> 3 {{ csrf_field() }} 4 <script 5 src="https://checkout.stripe.com/checkout.js" class="stripe-button" 6 data-key="{{ env('STRIPE_KEY') }}" 7 data-amount="{{($sum)}}" 8 data-name="クレジットカードで支払う" 9 data-label="購入する(クレジット決済)" 10 data-description="カートの中の商品を購入します" 11 data-image="https://stripe.com/img/documentation/checkout/marketplace.png" 12 data-locale="auto" 13 data-currency="JPY"> 14 </script> 15 </form> 16</div>
ChargeController.php
ChargeController.php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Stripe\Stripe; 7use Stripe\Customer; 8use Stripe\Charge; 9 10class ChargeController extends Controller 11{ 12 /*単発決済用のコード*/ 13 14 public function charge(Request $request) 15 { 16 try { 17 Stripe::setApiKey(env('STRIPE_SECRET')); 18 19 $customer = Customer::create(array( 20 'email' => $request->stripeEmail, 21 'source' => $request->stripeToken 22 )); 23 24 $charge = Charge::create(array( 25 'customer' => $customer->id, 26 'amount' => $sum, 27 'currency' => 'jpy' 28 )); 29 30 return back(); 31 } catch (\Exception $ex) { 32 return $ex->getMessage(); 33 } 34 } 35}
web.php
web.php
1Route::post('/charge', 'ChargeController@charge');
試したこと
data-key="{{ env('STRIPE_KEY') }}"
に直接公開可能キーを入力
結果
stripeのモーダルでは完了になりましたがその後のリダイレクト先で以下のエラーメッセージが表示されました。
No API key provided. (HINT: set your API key using "Stripe::setApiKey()". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.
補足情報
Laravel 6.18.41
php 7.3.11
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/11/02 05:53
2020/11/03 15:32