Integración de Stripe en Laravel
La integración de Stripe en Laravel es muy fácil, puede integrarlo en Laravel siguiendo algunos de los pasos que se mencionan a continuación.
Se supone que ya ha configurado el proyecto de Laravel para Stripe y funciona correctamente, y tiene un buen conocimiento de los términos de laravel.
Stripe — Establecer el paquete stripe-php
Este es un paso obligatorio de este tutorial y debe tener el compositor instalado en su máquina de desarrollo.
Primero, necesitamos instalar y configurar el complemento stripe-php para crear pagos sin estrés en laravel.
Tenemos que usar este comando en nuestra terminal de línea de comandos para instalar stripe-php.
>> el compositor requiere stripe/stripe-php
Configurar las claves de API secretas y públicas
Las claves de API públicas y secretas de Stripe nos ayudan a crear la conexión entre laravel y la pasarela de pago. Tenemos que mantener la clave secreta y publicable de Stripe dentro de nuestro archivo .env y protegerla. A medida que registramos las claves de la API de Stripe en el archivo env, se llegará a un acuerdo entre ellas.
Ahora es el momento de crear su cuenta en stripe, si aún no existe, vaya al sitio web de Stripe y cree su cuenta de desarrollo.
A continuación, obtenga la clave API pública y secreta de su cuenta de desarrollo.
Para restringir la realización de la transacción real, opere con una cuenta de prueba.
Coloque su clave de prueba de banda y secrete la clave en el archivo .env y borre el caché de laravel usando el comando
>> php artisan config:cache
STRIPE_KEY=pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STRIPE_SECRET=sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxx
Ahora hay básicamente dos formas de cobrar el pago por franjas en Laravel:
- Realice un pago desde la aplicación móvil usando REST API
- Realizar un pago desde una aplicación web
Realice un pago desde la aplicación móvil usando REST API
Si está utilizando Laravel como una API REST de servicio backend y realiza un pago a través de la pasarela de pago de stripe, el desarrollador de la aplicación móvil integra el SDK de Stripe en la aplicación móvil y quién generará el “nonce”. Solo necesita dos parámetros del desarrollador de aplicaciones móviles en el servicio de API de pago:
- amount
- nonce
El desarrollador de la aplicación móvil enviará estos dos parámetros en su API desarrollada para el pago.
Creemos un controlador StripController.php y hagamos una función makePayment (Request $ request) {} en StiperController.php y hagamos una ruta en api.php
<?php
use App\Http\Controllers\StripeController;
use Illuminate\Support\Facades\Route;
Route::post('make-payment',[StripeController::class,'makePayment']);
Este es un archivo api.php en el que creamos una ruta posterior a realizar un pago que será utilizado por los desarrolladores de aplicaciones móviles y enviamos dos parámetros en esta cantidad de servicio y nonce y luego StripeController maneja esta solicitud y envía la respuesta adecuada en formato JSON .
StripeController.php
<?php
namespace App\Http\Controllers;
use Exception;
use Illuminate\Http\Request;
class StripeController extends Controller
{
/**handling payment with POST API*/
public function makePayment(Request $request)
{
try{
/* Instantiate a Stripe Gateway either like this */
$stripe = new \Stripe\StripeClient(env('STRIPE_SECRET'));
$charge = $stripe->charges->create([
'card' => $request->nonce,
'currency' => 'USD',
'amount' => ($request->amount * 100),
'description' => "New Payment Received from mobile app",
'metadata' => [
"order_id" => 1111,
"others" => "You can add anything metadata"
]
]);
if($charge->status == 'succeeded') {
$data = ['transaction_id' => $charge->id];
return ['success'=>1,'message'=>'Transaction Success','data'=>$data];
}else{
return ['success'=>0,'message'=>'Card not charge, Please try again later','data'=>[]];
}
}catch(Exception $e){
return ['success'=>0,'message'=>"Error Processing Transaction",'data'=>[]];
}
}
}