diego-mascarenhas / laravel-mercadopago-sdk
Mercado Pago SDK v0.6.3 for Laravel
0.6.3
2024-03-18 13:31 UTC
Requires
- ext-curl: *
README
安装
composer require diego-mascarenhas/laravel-mercadopago-sdk
在 config/app.php 文件中,添加以下 Provider 和 Alias
Provider
'providers' => [ // Others Providers... DiegoMascarenhas\LaravelMercadoPago\Providers\MercadoPagoServiceProvider::class, /* * Application Service Providers... */ ],
Alias
'aliases' => [ // Others Aliases 'MP' => DiegoMascarenhas\LaravelMercadoPago\Facades\MP::class, ],
配置
在配置 APP ID 和 APP SECRET 之前,运行以下命令
php artisan vendor:publish
执行命令后,转到 .env 文件,并添加 MP_APP_ID 和 MP_APP_SECRET 字段,其值对应于您 MercadoPago 应用程序的 CLIENT_ID 和 CLIENT_SECRET。
要查找您的 CLIENT_ID 和 CLIENT_SECRET 信息,您可以访问这里
如果您不想使用 .env 文件,请转到 config/mercadopago.php 并添加您相应的应用程序详情。
return [ 'app_id' => env('MP_APP_ID', 'YOUR CLIENT ID'), 'app_secret' => env('MP_APP_SECRET', 'YOUR CLIENT SECRET'), 'app_ssl' => env('MP_APP_SSL', true), 'app_sandbox' => env('MP_APP_DEBUG', false) ];
用法
在这个例子中,我们将使用 MP Facade 创建一个支付偏好设置。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use MP; use App\Http\Requests; use App\Http\Controllers\Controller; class MercadoPagoController extends Controller { public function getCreatePreference() { $preferenceData = [ 'items' => [ [ 'id' => 101, 'category_id' => 'electronics', 'title' => 'iPhone 14 Pro Max', 'description' => 'iPhone 14 Pro Max 128GB - Black', 'picture_url' => 'https://example.com/images/products/iphone-14-pro-max-black.png', 'quantity' => 1, 'currency_id' => 'ARS', 'unit_price' => 150000 ] ], 'payer' => [ 'email' => 'customer@example.com' ], 'payment_methods' => [ 'excluded_payment_types' => [ ['id' => 'atm'] ], 'installments' => 12 ], 'back_urls' => [ 'success' => 'https://yourdomain.com/success', 'failure' => 'https://yourdomain.com/failure', 'pending' => 'https://yourdomain.com/pending' ], 'auto_return' => 'approved', 'notification_url' => 'https://yourdomain.com/notifications' ]; $preference = MP::create_preference($preferenceData); return dd($preference); }
在这个例子中,我们将使用 MP Facade 创建一个订阅(自动扣款)。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use MP; use App\Http\Requests; use App\Http\Controllers\Controller; class MercadoPagoController extends Controller { public function getCreatePreapproval() { $preapproval_data = [ 'payer_email' => 'customer@example.com', 'back_url' => 'https://example.com/preapproval', 'reason' => 'Premium Suscription', 'external_reference' => $subscription->id, 'auto_recurring' => [ 'frequency' => 1, 'frequency_type' => 'months', 'transaction_amount' => 99, 'currency_id' => 'ARS', 'start_date' => Carbon::now()->addHour()->format('Y-m-d\TH:i:s.BP'), 'end_date' => Carbon::now()->addMonth()->format('Y-m-d\TH:i:s.BP'), ], ]; MP::create_preapproval_payment($preapproval_data); return dd($preapproval); }
在示例中,可以看到使用 Carbon 库指定订阅的开始和结束日期,频率为每月一次。
通过 Carbon 向当前日期添加一个小时,否则 MercadoPago 可能会认为日期是过去的。
故障排除
SSL 证书问题:无法获取本地颁发者证书
如果您遇到 SSL 证书问题:无法获取本地颁发者证书的错误,这通常发生在您的系统中的根证书已过时或缺失时。
要解决这个问题,请从 CA Extract 下载最新的 CA 证书包。