tepuilabs / payment-processors
支付处理器
v4.0.0
2022-03-31 01:26 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.2
- illuminate/contracts: ^9.0
Requires (Dev)
- nunomaduro/collision: ^6.1
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
README
支付处理器
laravel 的支付网关管理包
- Merchadopago de Mercadolibre
- PayPal
这是由 @JuanDMeGon 的原始想法,来源于其在Udemy的《使用 Laravel 和 PayPal/Stripe 处理在线支付》课程的改编。
非常感谢 Juan 的辛勤工作和贡献!!
安装
使用 composer
composer require tepuilabs/payment-processors
可选:发布配置文件
php artisan vendor:publish --tag="payment-processors-config"
配置文件的内容如下
<?php return [ 'mercadopago' => [ 'class' => \Tepuilabs\PaymentProcessors\Services\MercadoPagoService::class, ], 'paypal' => [ 'class' => \Tepuilabs\PaymentProcessors\Services\PayPalService::class, ], 'stripe' => [ 'class' => \Tepuilabs\PaymentProcessors\Services\StripeService::class, ], ];
使用方法
市场支付
首先,您需要遵循 Mercadolibre 的指示进行客户端集成,之后按照以下步骤操作
// 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');
响应
{ "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": [], ... }
为 Checkout Pro 创建支付偏好
<?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
仅使用两个方法即可使用 PayPal// 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
仅使用两个方法即可使用 Stripe// 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']);
测试
composer test
变更日志
请参阅 变更日志 了解最近的变化。
贡献
请参阅 贡献指南 获取详细信息。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。
