wandesnet/mercadopago-laravel

Mercado Pago集成PHP SDK

v1.4.7 2024-06-07 13:52 UTC

This package is auto-updated.

Last update: 2024-09-23 17:10:52 UTC


README

Build Status Total Downloads Latest Stable Version License

简介

与Mercado Pago的集成包(非官方版本)

官方文档:https://www.mercadopago.com.br/developers

要求

  • PHP 8.1+
  • Laravel 10+

要开始使用,请使用Composer包管理器

composer require wandesnet/mercadopago-laravel

接下来,使用vendor:publish命令发布资源

php artisan vendor:publish --provider="WandesCardoso\MercadoPago\MercadoPagoServiceProvider" 

配置

发布资源后,其配置文件位于.env。此文件允许您配置您的Mercado Pago应用的凭证。

MP_ACCESS_TOKEN=

使用方法

use WandesCardoso\MercadoPago\Facades\MercadoPago;

$mp = MercadoPago::payment()->find('1232324');

var_dump($mp);

创建支付

use WandesCardoso\MercadoPago\Facades\MercadoPago;
use WandesCardoso\MercadoPago\DTO\Item;
use WandesCardoso\MercadoPago\DTO\Payer;
use WandesCardoso\MercadoPago\DTO\Payment;

    $payer = new Payer(
            'test_user@testuser.com'
        );

    
    $item = Item::make()
                ->setTitle('title product')
                ->setQuantity(1)
                ->setUnitPrice(100)
                ->setDescription('description product')
                ->setPictureUrl('https://www.mercadopago.com/org-img/MP3/home/logomp3.gif')
                ->setCategoryId('electronics');

    $payment = Payment::make()
                ->setPayer($payer)
                ->addItem($item)
                ->setPaymentMethodId('pix')
                ->setExternalReference('123434567');

    $response = MercadoPago::payment()->create($payment);

    var_dump($response);

创建偏好设置

use WandesCardoso\MercadoPago\Facades\MercadoPago;
use WandesCardoso\MercadoPago\DTO\Item;
use WandesCardoso\MercadoPago\DTO\BackUrls;
use WandesCardoso\MercadoPago\DTO\Payer;
use WandesCardoso\MercadoPago\DTO\Preference;

        $payer = new Payer(
                    'test_user@testuser.com',
                );


        $item = Item::make()
                    ->setTitle('Title product 2')
                    ->setQuantity(1)
                    ->setUnitPrice(120)
                    ->setDescription('description product 2')
                    ->setPictureUrl('https://www.mercadopago.com/org-img/MP3/home/logomp3.gif')
                    ->setCategoryId('electronics');

        $preference = Preference::make()
                    ->setPayer($payer)
                    ->addItem($item)
                    ->setBackUrls(new BackUrls(
                        'https://www.mysite.com.br?success',
                        'https://www.mysite.com.br?pending',
                        'https://www.mysite.com.br?failure',
                    ))
                    ->setExternalReference('20');


        $response = MercadoPago::preference()->create($preference);

        var_dump($response);
                    
                    

创建计划

    use WandesCardoso\MercadoPago\DTO\Plan;
    use WandesCardoso\MercadoPago\Enums\Currency;
    use WandesCardoso\MercadoPago\Enums\FrequencyType;
    use WandesCardoso\MercadoPago\Enums\PaymentType;
    use WandesCardoso\MercadoPago\Facades\MercadoPago;

    $plan = Plan::make()
            ->setFrequency(1)
            ->setFrequencyType(FrequencyType::MONTHS)
            ->setRepetitions(12)
            ->setBillingDay(15)
            ->setBillingDayProportional(true)
            ->setFreeTrial(30, FrequencyType::DAYS)
            ->setTransactionAmount(100)
            ->setCurrencyId(Currency::BRL)
            ->setReason('Test plan')
            ->setBackUrl('https://mysite.com.br/backurl')
            ->setPaymentMethodsAllowed([PaymentType::CREDIT_CARD, PaymentType::DEBIT_CARD]);
            
    $response = MercadoPago::plan()->create($plan);
    
    var_dump($response);
    

创建订阅

    use WandesCardoso\MercadoPago\DTO\Subscription;
    use WandesCardoso\MercadoPago\Enums\Currency;
    use WandesCardoso\MercadoPago\Enums\FrequencyType;
    use WandesCardoso\MercadoPago\Enums\Status;
    use WandesCardoso\MercadoPago\Facades\MercadoPago;

        $subscription = Subscription::make()
            ->setAutoRecurring(
                frequency: 1, //required
                frequencyType: FrequencyType::MONTHS, //required
                startDate: now()->addMonth()->format('Y-m-d\TH:i:s.BP'),
                endDate: now()->addMonths(12)->format('Y-m-d\TH:i:s.BP'),
                amount: 100,
                currency: Currency::BRL, //required
            )
            ->setPreapprovalPlanId('2c938084726fca480172750000000000') //optional
            ->setCredCardTokenId('2c9380848d22f7cc018d2725402d01f8') //required when using preapprovalPlanId
            ->setPayerEmail('test@gmail.com') //required
            ->setReason('Test de subscription')
            ->setStatus(Status::pending) //required
            ->setBackUrl('https://mysite.com.br/backurl'); //required
            
        $response = MercadoPago::subscription()->create($subscription);
        
        var_dump($response);    

更新订阅

    use WandesCardoso\MercadoPago\DTO\Subscription;
    use WandesCardoso\MercadoPago\Enums\Currency;
    use WandesCardoso\MercadoPago\Enums\FrequencyType;
    use WandesCardoso\MercadoPago\Enums\Status;
    use WandesCardoso\MercadoPago\Facades\MercadoPago;

        $subscription = Subscription::make()
            ->setAutoRecurring(
                amount: 100,
                currency: Currency::BRL, 
            )
            ->setCredCardTokenId('2c9380848d22f7cc018d2725402d01f8') 
            ->setReason('Update subscription')
            ->setStatus(Status::pending) 
            ->setBackUrl('https://mysite.com.br/backurl'); 
            
        $response = MercadoPago::subscription()->update(subscription: $subscription, id: '2c938084726fca480172750000000000');
        
        var_dump($response);    

可用方法

函数mercadoPago()返回类WandesCardoso\MercadoPago\MercadoPago的实例,具有以下方法

  • mercadoPago()->payment()->find()
  • mercadoPago()->payment()->create()
  • mercadoPago()->payment()->update()
  • mercadoPago()->payment()->search()
  • mercadoPago()->preference()->find()
  • mercadoPago()->preference()->create()
  • mercadoPago()->preference()->update()
  • mercadoPago()->preference()->search()
  • mercadoPago()->plan()->find()
  • mercadoPago()->plan()->create()
  • mercadoPago()->plan()->update()
  • mercadoPago()->plan()->search()
  • mercadoPago()->request()->get()
  • mercadoPago()->request()->post()
  • mercadoPago()->request()->put()
  • mercadoPago()->request()->delete()

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请通过电子邮件wandes2030@gmail.com而不是使用问题跟踪器。

测试

./vendor/bin/pest

MIT许可证。有关更多信息,请参阅许可证文件