[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]
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.
[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]
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'=>[]];
}
}
}
[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]
Diego Pacheco
Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]
Recent Post
[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]
