cinghie / yii2-paypal
Yii2 Paypal to manage Paypal Payments on your Yii 2 project
Installs: 2 003
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 5
Open Issues: 1
Type:yii2-extension
Requires
- php: >=5.5.0
- ext-curl: *
- ext-dom: *
- ext-hash: *
- ext-json: *
- ext-openssl: *
- ext-xmlwriter: *
- braintree/braintree_php: ^3.40.0
- braintree/braintreehttp: ^0.3.0
- cinghie/yii2-traits: @dev
- hyperwallet/sdk: ^1.3.0
- paypal/merchant-sdk-php: ^3.12.0
- paypal/rest-api-sdk-php: ^1.14.0
- yiisoft/yii2: ~2.0.14
README
Yii2 PayPal Extension to manage:
- PayPal Payments: https://www.paypal.com
- BrainTree Payments (PayPal Service): https://www.braintreepayments.com
- HyperWallet Payments (PayPal Service): https://www.hyperwallet.com
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require cinghie/yii2-paypal "@dev"
or add this line to the require section of your composer.json
file.
"cinghie/yii2-paypal": "@dev"
PayPal
Get credentials
-
Log into Dashboard and type your PayPal business account email and password.
-
In the REST API apps section, click Create App. The purpose of this app is to generate your credentials.
-
Type a name for your app and click Create App. The page shows your sandbox app information, which includes your credentials.
Note: To show your live app information, toggle to Live. -
Copy and save the client ID and secret for your sandbox app.
-
Review your app details and save your app.
Create sandbox accounts
-
Log into Dashboard and type your PayPal business account email and password.
Note: If you do not have a business account, click Sign Up. -
Under Sandbox, click Accounts and click Create Account.
-
To create the buyer account, select the personal account type.
Type these required and any optional fields and click Create Account:- Email Address: A fake or valid email address.
If you use a valid address, you receive email notifications when you run test transactions - Password: An easy-to-remember password, such as 12345678
- PayPal Balance: A high amount, such as 5000
- Email Address: A fake or valid email address.
-
To create the merchant account, select the business account type, type account information, and click Create Account
Documentation
Documentation: http://paypal.github.io/PayPal-PHP-SDK/docs/
Sample: http://paypal.github.io/PayPal-PHP-SDK/sample/
Sandbox: https://www.sandbox.paypal.com/
SDK PHP: https://github.com/paypal/PayPal-PHP-SDK/
Support: https://developer.paypal.com/support/
Wiki: https://github.com/paypal/PayPal-PHP-SDK/wiki
Configuration
Add in your common configuration file:
use cinghie\paypal\components\Paypal as PaypalComponent;
use cinghie\paypal\Paypal as PaypalModule;
'components' => [
'paypal' => [
'class' => 'cinghie\paypal\components\Paypal',
'clientId' => 'YOUR_CLIENT_ID',
'clientSecret' => 'YOUR_CLIENT_SECRET',
'isProduction' => false,
'config' => [
'mode' => 'sandbox', // 'sandbox' (development mode) or 'live' (production mode)
]
]
],
'modules' => [
'paypal' => [
'class' => PaypalModule::class,
'paypalRoles' => ['admin'],
'showTitles' => false,
]
]
- clientid => your PayPal clientId
- clientSecret => your PayPal clientSecret
- isProduction => set yes if your site is on Production Mode, false otherwise
- mode => set 'sandbox' if your site is on Development Mode, or 'live' on Production Mode
You can set advanced settings in config array:
'config' => [
'mode' => 'sandbox', // 'sandbox' (development mode) or 'live' (production mode)
'http.ConnectionTimeOut' => 30,
'http.Retry' => 1,
'log.LogEnabled' => YII_DEBUG ? 1 : 0,
'log.FileName' => '@runtime/logs/paypal.log',
'log.LogLevel' => 'ERROR',
],
Add in your configuration file, in module section:
'paypal' => [
'class' => 'cinghie\paypal\Paypal',
'paypalRoles' => ['admin'],
'showTitles' => false,
],
Add in your backend configuration file:
use cinghie\paypal\filters\BackendFilter as PaypalBackendFilter;
'modules' => [
'paypal' => [
'as backend' => PaypalBackendFilter::class,
],
]
Add in your frontend configuration file:
use cinghie\paypal\filters\FrontendFilter as PaypalFrontendFilter;
'modules' => [
'paypal' => [
'as backend' => PaypalBackendFilter::class,
],
]
BrainTreee Configuration
Add in your common configuration file:
use cinghie\paypal\components\Braintree as BraintreeComponent;
'braintree' => [
'class' => BraintreeComponent::class,
'environment' => 'sandbox',
'merchantId' => 'your_merchant_id',
'publicKey' => 'your_public_key',
'privateKey' => 'your_private_key'
],
HyperWallet Configuration
Add in your common configuration file:
use cinghie\paypal\components\Hyperwallet as HyperwalletComponent;
'hyperwallet' => [
'class' => HyperwalletComponent::class,
'username' => 'HYPERWALLET_SERVER',
'password' => 'HYPERWALLET_PASSWORD',
'token' => 'HYPERWALLET_PROGRAM_TOKEN',
'server' => 'https://sandbox.hyperwallet.com'
],
Create database schema
Run the following command:
$ php yii migrate/up --migrationPath=@vendor/cinghie/yii2-paypal/migrations
Use Component
\Yii::$app->braintree;
\Yii::$app->hyperwallet;
\Yii::$app->paypal;
Use Demo (Only in Sandbox mode)
$demo = new \cinghie\paypal\models\Demo();
$demo->payByCreditCardDemo();
$demo->payByPaypalDemo();