Jun 16, 2019
0
Level 15
New Stripe: after paying, how to route for /success or /cancel views?
Hello ~
Have been working through the Accept Payments video series. On April 16, 2019 Stripe introduced a newer version of checkout.
The store() method below is straight from stripe's upgrade docs. https://stripe.com/docs/payments/checkout/migration#client-products
EDIT: Is the success page, and cancel page supposed to be routed from the Vue component?
I think the process is: 1. create a session. 2. Vue component goes to stripe server 3. returns to success or cancel?
class ReservesController extends Controller
{
public function success()
{
return view('payments.success');
}
public function cancel()
{
return view('payments.cancel');
}
public function store()
{
$session = \Stripe\Checkout\Session::create([
'payment_method_types' => ['card'],
'line_items' => [[
'name' => 'Bid Reserve Fee',
'description' => ' Bid Reserve Fee',
'amount' => 500,
'currency' => 'usd',
'quantity' => 1,
]],
'success_url' => 'https://bidbird.co/success',
'cancel_url' => 'https://bidbird.co/cancel',
]);
return view('jobs.jobfull', compact('session'));
//return back(); ???
}
}
//ReserveBid.vue
<template>
<form action="/reserve" method="POST">
<label for="card-element">
Place a reserve to bid this job.
</label>
<button id="checkout-button">Pay Bid Reserve</button>
</form>
</template>
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe('pk_test_............');
stripe.redirectToCheckout({
items: [
// Replace with the ID of your SKU
{sku: 'sku_.......', quantity: 1}
],
successUrl: 'https://bidbird.co/success',
cancelUrl: 'https://bidbird.co/cancel',
billingAddressCollection: 'required',
}).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`.
});
</script>
//web.php
//reserve payments
Route::get('/success', 'ReservesController@success');
Route::get('/cancel', 'ReservesController@cancel');
Route::post('/jobs/{job}/reserve', 'ReservesController@store');
Please or to participate in this conversation.