artwl / laravel-paypal
Laravel 插件,用于通过 PayPal Express Checkout 处理支付。可以与其他应用程序独立使用。
v4.0.0
2021-10-12 08:52 UTC
Requires
- guzzlehttp/guzzle: ~6.0|~7.0
- illuminate/support: ~5.1|~5.2|~5.3|~5.4|~5.5|~5.6|~5.7|~5.8
- nesbot/carbon: ~1.0|~2.0
Requires (Dev)
- phpunit/phpunit: ^5.7|^6.0|^7.0
- symfony/var-dumper: ~3.0|~4.0|~5.0
- v4.0.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- v2.0.x-dev
- v2.0.2
- v2.0.1
- 2.0.0
- 2.0.0-beta-3
- v2.0.0-beta-2
- v2.0.0-beta-1
- 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
- 1.0.3
- 1.0.2
- 1.0.1
- 0.2.2
- 0.2.1
- 0.2
This package is auto-updated.
Last update: 2024-09-12 15:10:42 UTC
README
此插件仅支持 Laravel 5.1 到 5.8。
简介
使用此插件,您可以在 Laravel 应用程序中处理或退款支付,并处理 PayPal 的 IPN(即时支付通知)。
此插件支持新的 PayPal REST API。
此包使用新的 PayPal REST API。有关如何创建 API 凭据的说明,请参阅以下链接
https://developer.paypal.com/docs/api/overview/
安装
1. 安装
composer require artwl/laravel-paypal:~4.0
2. [可选] 在 config/app.php 中添加服务提供者
Srmklive\PayPal\Providers\PayPalServiceProvider::class
3. [可选] 在 config/app.php 中添加别名
'PayPal' => Srmklive\PayPal\Facades\PayPal::class
4. 发布配置
php artisan vendor:publish --provider "Srmklive\PayPal\Providers\PayPalServiceProvider"
配置
- 安装完成后,您需要添加 PayPal 设置。以下是您将在 config/paypal.php 中找到的代码,您应相应地进行更新。
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' => '', ], '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. ];
- 添加到
.env
#PayPal API Mode
# Values: sandbox or live (Default: live)
PAYPAL_MODE=live
#PayPal Setting & API Credentials - sandbox
PAYPAL_SANDBOX_CLIENT_ID=
PAYPAL_SANDBOX_CLIENT_SECRET=
#PayPal Setting & API Credentials - live
PAYPAL_LIVE_CLIENT_ID=
PAYPAL_LIVE_CLIENT_SECRET=
用法
以下是一些访问 PayPal 提供者的方法
// Import the class namespaces first, before using it directly use Srmklive\PayPal\Services\PayPal as PayPalClient; public function orderCreate(){ $provider = new PayPalClient; $provider->setApiCredentials(config('paypal')); $provider->getAccessToken(); $orderResponse = $provider->createOrder([ "intent"=> "CAPTURE", "purchase_units"=> [ 0 => [ "amount"=> [ "currency_code"=> "HKD", "value"=> "12.00" ] ] ] ]); //order create success if ($orderResponse["status"] == "CREATED") { $orderId = $orderResponse["id"]; } } //notify_url and webhook url, route need except csrf public function payResult(Request $request) { $data = json_decode($request->getContent(), true); //pay success if ($data["event_type"] == "CHECKOUT.ORDER.APPROVED") { $orderId = $data["resource"]["id"]; } }