wenson / paypal
Laravel插件,用于通过PayPal Express Checkout处理支付。可以与其他应用程序独立使用。
3.1.5
2021-05-05 01:11 UTC
Requires
- php: >=7.2|^8.0
- guzzlehttp/guzzle: ~7.0
- illuminate/support: ~6.0|~7.0|~8.0
- nesbot/carbon: ~2.0
Requires (Dev)
- phpunit/phpunit: ^8.0|^9.0
- symfony/var-dumper: ~5.0
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.0
- v3.0.x-dev
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- v2.0.x-dev
- 2.0.1
- 2.0.0
- 2.0.0-beta-3
- v2.0.0-beta-2
- v2.0.0-beta-1
- 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
- 0.2
- dev-master
This package is not auto-updated.
Last update: 2024-10-03 08:20:27 UTC
README
介绍
此包基于srmklive/paypal包构建,支持合作伙伴API
此插件支持新的PayPal REST API。
PayPal API凭证
此包使用新的PayPal REST API。请参阅此链接了解如何创建API凭证
https://developer.paypal.com/docs/api/overview/
安装
- 使用以下命令进行安装
如果您打算使用ExpressCheckout,请参阅以下README。 v2.0 & v3.0 使用新的REST API。
composer require wenson/paypal
- 运行以下命令以发布配置
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.example和.env
#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; $provider = new PayPalClient; // Through facade. No need to import namespaces $provider = PayPal::setProvider();
覆盖PayPal API配置
您可以通过调用setApiCredentials方法来覆盖PayPal API配置
$provider->setApiCredentials($config);
获取访问令牌
通过调用setApiCredentials方法设置PayPal API配置后。在执行任何API调用之前,您需要获取访问令牌
if (Cache::get('token')) { $provider->setAccessToken(Cache::get('token')); } else { $response = $provider->getAccessToken(); Cache::set('token', $response); }
设置货币
默认使用的货币是USD。如果您想更改它,您可以在调用任何相应的API方法之前调用setCurrency方法来设置不同的货币
$provider->setCurrency('EUR');
初始化订单以进行结账
使用createOrder方法来初始化订单
$provider->createOrder([ "intent"=> "CAPTURE", "purchase_units"=> [ 0 => [ "amount"=> [ "currency_code"=> "USD", "value"=? "100.00" ] ] ] ]);
此响应将包括一个订单ID,您需要将其保留,以及一个链接集合,您可以使用它将用户引导到PayPal以完成带有其付款详情的订单
当用户返回到通知URL时,您可以使用以下内容捕获订单支付
$provider->capturePaymentOrder($order_id); //order id from the createOrder step
合作伙伴
$provider = new Paypal(); // behalf of merchant $provider->actingAs($merchantId); // partner referrals $provider->partnerReferrals($trackingId);
支持
此版本支持Laravel 6或更高版本。
- 如有任何问题,请在问题部分创建一个问题。
- 如果您想做出贡献
- 分支此存储库。
- 实现您的功能。
- 生成拉取请求。