项目作者: TepuiLABS

项目描述 :
Payment processors
高级语言: PHP
项目地址: git://github.com/TepuiLABS/payment-processors.git
创建时间: 2020-12-22T04:24:13Z
项目社区:https://github.com/TepuiLABS/payment-processors

开源协议:MIT License

下载




Payment processors

Latest Version on Packagist
GitHub Tests Action Status
Total Downloads

Paquete para laravel que se encarga de gestionar diferentes pasarelas de pago:

  • Mercadopago de Mercadolibre
  • PayPal

Esto es idea original de @JuanDMeGon, tomada de su curso en Udemy de Procesa pagos con Laravel y las mejores plataformas de pagos.

Muchas gracias Juan por tu trabajo y esfuerzo!!

instalación

usando composer

  1. composer require tepuilabs/payment-processors

de forma opcional puedes publicar el archivo de configuración:

  1. php artisan vendor:publish --tag="payment-processors-config"

el contenido del archivo de configuración es el siguiente:

  1. <?php
  2. return [
  3. 'mercadopago' => [
  4. 'class' => \Tepuilabs\PaymentProcessors\Services\MercadoPagoService::class,
  5. ],
  6. 'paypal' => [
  7. 'class' => \Tepuilabs\PaymentProcessors\Services\PayPalService::class,
  8. ],
  9. 'stripe' => [
  10. 'class' => \Tepuilabs\PaymentProcessors\Services\StripeService::class,
  11. ],
  12. ];

como usar



Mercado pago

Primero debes seguir las indicaciones de mercado libre para hacer la integración de cliente luego de eso, sigue los pasos abajo descritos:


php // usa el facade use Tepuilabs\PaymentProcessors\Facades\PaymentProcessors; // luego crea la instancia de la clase a usar $params = [ 'base_uri' => 'https://api.mercadopago.com', 'key' => '', 'secret' => '', 'base_currency' => '', 'integrator_id' => '', // optional ]; $mercadopago = PaymentProcessors::resolveService('mercadopago', $params); // necesitamos: // $cardNetwork: visa / mastercard // $cardToken: token de la tarjeta // $amount: monto a cobrar // $userEmail: correo del usuario // $installments: default 1 $mercadopago->handlePayment('visa', 'ff8080814c11e237014c1ff593b57b4d', 177, 'test@test.com');

### respuesta

yml { "status": "approved", "status_detail": "accredited", "id": 3055677, "date_approved": "2019-02-23T00:01:10.000-04:00", "payer": { ... }, "payment_method_id": "visa", "payment_type_id": "credit_card", "refunds": [], ... }


#### crear preferencia de pago para Checkout Pro

php <?php $preference = [ 'items' => [ [ "title" => "Dummy Title", "description" => "Dummy description", "picture_url" => "http://project.dev/product-image.jpg", "category_id" => "cat123", "quantity" => 1, "currency_id" => "UYU", "unit_price" => 10 ] ], 'payer' => [ 'name' => 'John', 'surname' => 'Doe', 'email' => 'john.doe@domain.tld', 'identification' => [ 'type' => '', 'number' => '' ], 'date_created' => '' ], 'payment_methods' => [ 'excluded_payment_methods' => [ [ 'id' => 'amex' ] ], 'excluded_payment_types' => [ [ 'id' => 'atm' ] ], 'installments' => 6, ], 'statement_descriptor' => 'MERCADOPAGO', 'auto_return' => 'approved', 'back_urls' => [ 'success' => 'http://project.dev/success_route', 'failure' => 'http://project.dev/error_route', 'pending' => 'http://project.dev/waiting_route' ] ]; $preference = $mercadopago->createPreference($preference); // luego se puede usar `sandbox_init_point` para crear el enlace para que el cliente se dirija a Mercadopago a pagar $preference->sandbox_init_point;


PayPal
Para usar paypal solamente debemos usar dos metodos:

php // usa el facade use Tepuilabs\PaymentProcessors\Facades\PaymentProcessors; // luego crea la instancia de la clase a usar $params = [ 'base_uri' => 'https://api.sandbox.paypal.com', 'client_id' => '', 'client_secret' => '', 'return_url' => '', 'cancel_url' => '' ]; $paypal = PaymentProcessors::resolveService('paypal', $params); // necesitamos: // $amoun: el monto a cobrar // $currency: el id de la moneda a cobrar, por defecto es USD // este método hace una redirección a paypal $paypal->handlePayment(200); // el otro método que debemos usar es $paypal->handleApproval(); // este método retorna toda la infromación del pago de ser aceptado por el usuario // o retorna un array vacio


Stripe
Para usar Stripe solamente debemos usar dos metodos:

php // usa el facade use Tepuilabs\PaymentProcessors\Facades\PaymentProcessors; // luego crea la instancia de la clase a usar $params = [ 'key' => 'pk_test_51IMzM0...', 'secret' => 'sk_test_51IM...', ]; $stripe = PaymentProcessors::resolveService('stripe', $params); // Para generar el payment method id te recomiendo leer esto: https://github.com/TepuiLABS/payment-processors/discussions/6 // Para saber que es el payment method te invito a leer la documentación: https://stripe.com/docs/api/payment_methods // Despues de obtener el payment method id pasamos a generar el pago de la siguiente forma: $paymentData = [ 'amount' => 500, // integer 'paymentMethod' => $paymentMethodId, // pm_1IOYCAJcoyM5FfOy0cVbjyuH ]; $intent = $stripe->handlePayment($paymentData); // Y ya por ultimo, confirmamos el pago: $confirm = $stripe->confirmPayment($intent['id']);

Testing

  1. composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.