Skip to content

Commit 1948b1d

Browse files
committed
updated stripe transactions.md
1 parent 02b8733 commit 1948b1d

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

docs/.vitepress/config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export default {
4242
collapsible: true,
4343
items: [
4444
{ text: "Setup", link: "/stripe/setup.html"},
45+
{ text: "Transactions", link: "/stripe/transactions.html"},
4546
],
4647
},
4748

docs/stripe/transactions.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Transaction API
2+
3+
## Handle Transaction
4+
**Stripe Payment** can be handled in similar ways as **Paystack Payment**.
5+
The package allow you to make payment requests using the `facade`, `helper` or `dependency injection`.
6+
1. **Prepare your route to handle the payment request:**
7+
```php
8+
use Illuminate\Support\Facades\Route;
9+
use App\Http\Controllers\StripePaymentController;
10+
11+
Route::post('/payment/stripe', [StripePaymentController::class, 'initiatePayment'])->name('payment.stripe.initiate');
12+
```
13+
14+
2. **Create a controller to handle the payment request:** In the controller, you can use your desired Payment Gateway to handle the payment request using the **facade**, **helper** or **dependency injection**
15+
16+
- Create a controller to handle the payment request using Facade.
17+
```php
18+
use Illuminate\Http\Request;
19+
use MusahMusah\LaravelMultipaymentGateways\Facades\Stripe;
20+
21+
class StripePaymentController extends Controller
22+
{
23+
public function initiatePayment(Request $request)
24+
{
25+
$payment = Stripe::createIntent([
26+
'amount' => 1000,
27+
'currency' => 'usd',
28+
'payment_method_types' => ['card'],
29+
'payment_method' => 'xxxxxxx',
30+
'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
31+
]);
32+
33+
return $payment;
34+
}
35+
}
36+
```
37+
- Create a controller to handle the payment request using Dependency Injection through the `StripeContract` interface.
38+
```php
39+
use Illuminate\Http\Request;
40+
use MusahMusah\LaravelMultipaymentGateways\Contracts\StripeContract;
41+
42+
class StripePaymentController extends Controller
43+
{
44+
public function initiatePayment(Request $request, StripeContract $stripe)
45+
{
46+
$payment = $stripe->createIntent([
47+
'amount' => 1000,
48+
'currency' => 'usd',
49+
'payment_method_types' => ['card'],
50+
'payment_method' => 'xxxxxxx',
51+
'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
52+
]);
53+
54+
return $payment;
55+
}
56+
}
57+
```
58+
59+
- Create a controller to handle the payment request using Helper.
60+
```php
61+
use Illuminate\Http\Request;
62+
63+
class StripePaymentController extends Controller
64+
{
65+
public function initiatePayment(Request $request)
66+
{
67+
$payment = stripe()->createIntent([
68+
'amount' => 1000,
69+
'currency' => 'usd',
70+
'payment_method_types' => ['card'],
71+
'payment_method' => 'xxxxxxx',
72+
'metadata' => ['custom_fields' => ['name' => 'Musah Musah']],
73+
]);
74+
75+
return $payment;
76+
}
77+
}
78+
```
79+
80+
The `createIntent` method will create a payment intent and return the client secret to be used
81+
in the frontend to confirm the payment. In addition, the package also provides a method to confirm the payment intent.
82+
You can confirm the payment intent in the following ways:
83+
1. **Prepare your route to handle the payment confirmation request:**
84+
```php
85+
use Illuminate\Support\Facades\Route;
86+
use App\Http\Controllers\StripePaymentController;
87+
88+
Route::post('/payment/stripe/confirm', [StripePaymentController::class, 'confirmPayment'])->name('payment.stripe.confirm');
89+
```
90+
91+
2. **Create a controller to handle the payment confirmation request using Facade:**
92+
```php
93+
use Illuminate\Http\Request;
94+
use MusahMusah\LaravelMultipaymentGateways\Facades\Stripe;
95+
96+
class StripePaymentController extends Controller
97+
{
98+
public function confirmPayment(Request $request)
99+
{
100+
$payment = Stripe::confirmIntent($request->payment_intent_id);
101+
102+
if ($payment->status === 'succeeded') {
103+
// Payment was successful
104+
}
105+
106+
return $payment;
107+
}
108+
}
109+
```
110+
The `confirmIntent` method will confirm the payment intent and return the payment response. This can also be done using the **helper** or **dependency injection**.

0 commit comments

Comments
 (0)