Yii2 PayPal
, (*1)
Yii2 PayPal Extension to manage:, (*2)
- 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., (*3)
Either run, (*4)
php composer.phar require cinghie/yii2-paypal "@dev"
or add this line to the require section of your composer.json
file., (*5)
"cinghie/yii2-paypal": "@dev"
PayPal
Get credentials
-
Log into Dashboard and type your PayPal business account email and password., (*6)
-
In the REST API apps section, click Create App. The purpose of this app is to generate your credentials., (*7)
-
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., (*8)
-
Copy and save the client ID and secret for your sandbox app., (*9)
-
Review your app details and save your app., (*10)
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., (*11)
-
Under Sandbox, click Accounts and click Create Account., (*12)
-
To create the buyer account, select the personal account type.
Type these required and any optional fields and click Create Account:, (*13)
- 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
- 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, (*14)
Configuration
Add in your common configuration file:, (*15)
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:, (*16)
'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:, (*17)
'paypal' => [
'class' => 'cinghie\paypal\Paypal',
'paypalRoles' => ['admin'],
'showTitles' => false,
],
Add in your backend configuration file:, (*18)
use cinghie\paypal\filters\BackendFilter as PaypalBackendFilter;
'modules' => [
'paypal' => [
'as backend' => PaypalBackendFilter::class,
],
]
Add in your frontend configuration file:, (*19)
use cinghie\paypal\filters\FrontendFilter as PaypalFrontendFilter;
'modules' => [
'paypal' => [
'as backend' => PaypalBackendFilter::class,
],
]
BrainTreee Configuration
Add in your common configuration file:, (*20)
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:, (*21)
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:, (*22)
$ 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();