Documentação
Uso
Apoiar
Importante
Laravel 11 será a última versão suportada para v3.0. A v4 está sendo trabalhada ativamente e será lançada no final de outubro de 2024. Para a v4, as seguintes alterações estão sendo introduzidas:
PHP 8.1+ necessário.
É necessário Laravel 10 e posteriores.
Integração do PayPal JS SDK.
Plug-in Symfony.
A documentação do pacote pode ser visualizada clicando no seguinte link:
https://laravel-paypal.readthedocs.io/en/latest/
A documentação antiga pode ser encontrada no seguinte link:
https://srmklive.github.io/laravel-paypal/docs.html
A seguir estão algumas maneiras pelas quais você pode acessar o provedor paypal:
// Importe os namespaces da classe primeiro, antes de usá-la diretamenteuse SrmklivePayPalServicesPayPal as PayPalClient;$provider = new PayPalClient;// Através de fachada. Não há necessidade de importar namespaces$provider = PayPal::setProvider();
O arquivo de configuração paypal.php está localizado na pasta de configuração . A seguir está seu conteúdo quando publicado:
return ['mode' => env('PAYPAL_MODE', 'sandbox'), // Só pode ser 'sandbox' Ou 'live'. Se vazio ou inválido, 'live' será usado.'sandbox' => ['client_id' => env('PAYPAL_SANDBOX_CLIENT_ID', ''),'client_secret' => env('PAYPAL_SANDBOX_CLIENT_SECRET', ''),'app_id ' => 'APP-80W284485P519543T', ],'live' => ['client_id' => env('PAYPAL_LIVE_CLIENT_ID', ''),'client_secret' => env('PAYPAL_LIVE_CLIENT_SECRET', ''),'app_id' => env('PAYPAL_LIVE_APP_ID', ' '), ],'payment_action' => env('PAYPAL_PAYMENT_ACTION', 'Venda'), // Só pode ser 'Venda', 'Autorização' ou 'Pedido''moeda' => env('PAYPAL_CURRENCY', 'USD'), 'notify_url' => env('PAYPAL_NOTIFY_URL', ''), // Altere isso de acordo com o seu application.'locale' => env('PAYPAL_LOCALE', 'en_US'), // força o idioma do gateway, ou seja, it_IT, es_ES, en_US ... (somente para checkout expresso)'validate_ssl' => env('PAYPAL_VALIDATE_SSL', true ), // Valida SSL ao criar cliente API.];
Você pode substituir a configuração da API do PayPal chamando o método setApiCredentials
:
$config = ['mode' => 'live','live' => ['client_id' => 'PAYPAL_LIVE_CLIENT_ID','client_secret' => 'PAYPAL_LIVE_CLIENT_SECRET','app_id' => 'PAYPAL_LIVE_APP_ID', ],'payment_action' => 'Venda','currency' => 'USD','notify_url' => 'https://your-site.com/paypal/notify','locale' => 'en_US', 'validar_ssl' => verdadeiro, ];$provider->setApiCredentials($config);
Depois de definir a configuração da API do PayPal chamando o método setApiCredentials
. Você precisa obter o token de acesso antes de realizar qualquer chamada de API
$provedor->getAccessToken();
Por padrão, a moeda utilizada é USD
. Se desejar alterá-lo, você pode chamar o método setCurrency
para definir uma moeda diferente antes de chamar qualquer método API respectivo:
$provedor->setCurrency('EUR');
Observe que nos exemplos abaixo, a chamada para
addPlanTrialPricing
é opcional e pode ser omitida ao criar assinaturas sem período de teste.
setReturnAndCancelUrl()
é opcional. Se você definir URLs, deverá usar domínios reais. por exemplo, localhost, project.test não funciona.
$response = $provider->addProduct('Produto de demonstração', 'Produto de demonstração', 'SERVIÇO', 'SOFTWARE') ->addPlanTrialPricing('DIA', 7) ->addDailyPlan('Plano Demo', 'Plano Demo', 1.50) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', '2021-12-10');
$response = $provider->addProduct('Produto de demonstração', 'Produto de demonstração', 'SERVIÇO', 'SOFTWARE') ->addPlanTrialPricing('DIA', 7) ->addWeeklyPlan('Plano Demo', 'Plano Demo', 30) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', '2021-12-10');
$response = $provider->addProduct('Produto de demonstração', 'Produto de demonstração', 'SERVIÇO', 'SOFTWARE') ->addPlanTrialPricing('DIA', 7) ->addMonthlyPlan('Plano Demo', 'Plano Demo', 100) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', '2021-12-10');
$response = $provider->addProduct('Produto de demonstração', 'Produto de demonstração', 'SERVIÇO', 'SOFTWARE') ->addPlanTrialPricing('DIA', 7) ->addAnnualPlan('Plano Demo', 'Plano Demo', 600) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', '2021-12-10');
$response = $provider->addProduct('Produto de demonstração', 'Produto de demonstração', 'SERVIÇO', 'SOFTWARE') ->addCustomPlan('Plano Demo', 'Plano Demo', 150, 'MÊS', 3) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', '2021-12-10');
$response = $this->client->addProductById('PROD-XYAB12ABSB7868434') ->addBillingPlanById('P-5ML4271244454362WXNWU5NQ') ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', '[email protected]', $start_date);
Esta versão suporta Laravel 6 ou superior.
Em caso de qualquer problema, por favor, crie um na seção Problemas.
Se você gostaria de contribuir:
Bifurque este repositório.
Implemente seus recursos.
Gerar solicitação pull.