LaraStripe has payment checkout (session) alias LaraStripeCheckout
.
STRIPE_PUBLIC_KEY="public key"
STRIPE_SECRET_KEY="secret key"
STRIPE_SUCCESS_URL="http://127.0.0.1:8000/checkout/success"
STRIPE_CANCEL_URL="http://127.0.0.1:8000/checkout/cancel"
$checkout = LaraStripeCheckout::tnx('tnx-1212134')
->amount('236')
->additionalData(['transaction_id' => 'tnx-1212'])
->get();
return response()->json($checkout);
// output
{
"session_id":"cs_test_bhbhbbh",
"public_key": "pk_test_uiuiui",
"checkout_url": ""
}
- include
<script src="https://js.stripe.com/v3/"></script>
~ javascript
var stripe = Stripe('your_stripe_public_key');
stripe.redirectToCheckout({
sessionId: '{{CHECKOUT_SESSION_ID}}'
}).then(function (result) {
// If `redirectToCheckout` fails due to a browser or network
// error, display the localized error message to your customer
// using `result.error.message`.
});
~ javascript
- include
<script src="https://js.stripe.com/v3/"></script>
var publicKey = '{{ $session->public_key }}'
var SessionId = '{{ $session->session_id }}'
var stripe = Stripe(publicKey);
stripe.redirectToCheckout({
sessionId: SessionId
}).then(function (result) {
});
After success payment stripe redirect to success_url . retrive session data in success_url.
Route::get('checkout/success',function(Request $request){
$data = LaraStripeCheckout::status(request('session_id'));
return response()->json($data);
// status (succeeded, .....)
$data->status;
// tnx id
$data->ref_id;
// additional data (metada)
$data->sessions->metadata;
// payment status
$data->sessions->payment_status;
});
- Store payment_intent in db when checkout success. ('retrieve method')
Route::get('checkout/refund',function(){
$charge = LaraStripeCheckout::refund('payment_intent');
return response()->json($charge);
});