srmklive / paypal
Laravel插件,用于通过PayPal Express Checkout处理支付。可以与其他应用程序独立使用。
3.0.32
2024-06-24 14:34 UTC
Requires
- php: >=7.2|^8.0
- ext-curl: *
- guzzlehttp/guzzle: ~7.0
- illuminate/support: ~6.0|~7.0|~8.0|~9.0|^10.0|^11.0
- nesbot/carbon: ~2.0|^3.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^8.0|^9.0|^10.0|^11.0
- symfony/var-dumper: ~5.0|^6.0|^7.0
- dev-master
- v4.0.x-dev
- v3.0.x-dev
- 3.0.32
- 3.0.31
- 3.0.30
- 3.0.28
- 3.0.27
- 3.0.26
- 3.0.25
- 3.0.24
- 3.0.23
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- v3.0
- v2.0.x-dev
- 2.0.30
- 2.0.20
- 2.0.10
- 2.0.2
- 2.0.1
- v2.0.0
- 2.0.0-beta-3
- v2.0.0-beta-2
- v2.0.0-beta-1
- 1.11.11
- 1.11.10
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.11
- 1.6.10
- 1.6.9
- 1.6.8
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.9
- 1.5.8
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.0
- v1.0.x-dev
- 1.0.3
- 1.0.2
- 1.0.1
- 0.2.2
- 0.2.1
- v0.2
This package is auto-updated.
Last update: 2024-09-11 06:56:53 UTC
README
重要
Laravel 11将是v3.0支持的最后一个版本。v4正在积极开发中,预计于2024年10月底发布。对于v4,以下是一些引入的更改:
- 需要PHP 8.1及以上版本。
- 需要Laravel 10及以上版本。
- 集成PayPal JS SDK。
- Symphony插件。
文档
通过以下链接可以查看该包的文档
https://laravel-paypal.readthedocs.io/en/latest/
旧文档可以在以下链接找到
https://srmklive.github.io/laravel-paypal/docs.html
使用
以下是一些访问PayPal提供者的方式
// Import the class namespaces first, before using it directly use Srmklive\PayPal\Services\PayPal as PayPalClient; $provider = new PayPalClient; // Through facade. No need to import namespaces $provider = \PayPal::setProvider();
配置文件
配置文件 paypal.php 位于 config 文件夹中。以下是发布后的内容
return [ 'mode' => env('PAYPAL_MODE', 'sandbox'), // Can only be 'sandbox' Or 'live'. If empty or invalid, 'live' will be used. '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', 'Sale'), // Can only be 'Sale', 'Authorization' or 'Order' 'currency' => env('PAYPAL_CURRENCY', 'USD'), 'notify_url' => env('PAYPAL_NOTIFY_URL', ''), // Change this accordingly for your application. 'locale' => env('PAYPAL_LOCALE', 'en_US'), // force gateway language i.e. it_IT, es_ES, en_US ... (for express checkout only) 'validate_ssl' => env('PAYPAL_VALIDATE_SSL', true), // Validate SSL when creating api client. ];
覆盖PayPal API配置
您可以通过调用 setApiCredentials
方法来覆盖PayPal API配置
$config = [ 'mode' => 'live', 'live' => [ 'client_id' => 'PAYPAL_LIVE_CLIENT_ID', 'client_secret' => 'PAYPAL_LIVE_CLIENT_SECRET', 'app_id' => 'PAYPAL_LIVE_APP_ID', ], 'payment_action' => 'Sale', 'currency' => 'USD', 'notify_url' => 'https://your-site.com/paypal/notify', 'locale' => 'en_US', 'validate_ssl' => true, ]; $provider->setApiCredentials($config);
获取访问令牌
通过调用 setApiCredentials
方法设置PayPal API配置后。在进行任何API调用之前,您需要获取访问令牌
$provider->getAccessToken();
设置货币
默认使用的货币是 USD
。如果您想更改它,您可以在调用任何相应的API方法之前,通过调用 setCurrency
方法设置不同的货币
$provider->setCurrency('EUR');
辅助方法
请注意,以下示例中
addPlanTrialPricing
的调用是可选的,在创建不带试用期的订阅时可以省略。
setReturnAndCancelUrl()
是可选的。如果您设置了URL,则必须使用真实域名。例如,localhost,project.test 不可用。
创建每日重复订阅
$response = $provider->addProduct('Demo Product', 'Demo Product', 'SERVICE', 'SOFTWARE') ->addPlanTrialPricing('DAY', 7) ->addDailyPlan('Demo Plan', 'Demo Plan', 1.50) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', 'john@example.com', '2021-12-10');
创建每周重复订阅
$response = $provider->addProduct('Demo Product', 'Demo Product', 'SERVICE', 'SOFTWARE') ->addPlanTrialPricing('DAY', 7) ->addWeeklyPlan('Demo Plan', 'Demo Plan', 30) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', 'john@example.com', '2021-12-10');
创建每月重复订阅
$response = $provider->addProduct('Demo Product', 'Demo Product', 'SERVICE', 'SOFTWARE') ->addPlanTrialPricing('DAY', 7) ->addMonthlyPlan('Demo Plan', 'Demo Plan', 100) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', 'john@example.com', '2021-12-10');
创建每年重复订阅
$response = $provider->addProduct('Demo Product', 'Demo Product', 'SERVICE', 'SOFTWARE') ->addPlanTrialPricing('DAY', 7) ->addAnnualPlan('Demo Plan', 'Demo Plan', 600) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', 'john@example.com', '2021-12-10');
创建具有自定义间隔的重复订阅
$response = $provider->addProduct('Demo Product', 'Demo Product', 'SERVICE', 'SOFTWARE') ->addCustomPlan('Demo Plan', 'Demo Plan', 150, 'MONTH', 3) ->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setupSubscription('John Doe', 'john@example.com', '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', 'john@example.com', $start_date);
支持
此版本支持Laravel 6或更高版本。
- 如有任何问题,请在本节问题中创建一个。
- 如果您想做出贡献
- 从这个仓库分叉。
- 实现您的功能。
- 生成拉取请求。