Skip to content

Integrate a credit card payment form with Braintree's API into Yii2

License

Notifications You must be signed in to change notification settings

dmitry-kulikov/yii2-braintree

 
 

Repository files navigation

yii2-braintree

Integrate a credit card payment form with Braintree's API into Yii 2. Inspired by braintreeapi.

License Latest Stable Version Code Coverage Scrutinizer Code Quality Code Climate

Requirements

  • PHP 7.2 or later;
  • Yii framework 2.

Installation

The preferred way to install this extension is through Composer.

To install, either run

php composer.phar require kdn/yii2-braintree "*"

or add

"kdn/yii2-braintree": "*"

to the require section of your composer.json file.

Usage

You should add Braintree component to your Yii configuration first:

'components' => [
    'braintree' => [
        'class' => 'tuyakhov\braintree\Braintree',
        'merchantId' => 'YOUR_MERCHANT_ID',
        'publicKey' => 'YOUR_PUBLIC_KEY',
        'privateKey' => 'YOUR_PRIVATE_KEY',
    ],
]

BraintreeForm provides all basic operations for sales and stores customer info. Operation name equals scenario name. Available scenarios:

Action example:

public function actionSale() {
    $model = new BraintreeForm();
    $model->setScenario('sale');
    if ($model->load(Yii::$app->request->post()) && $model->send()) {
        // do something
    }

    return $this->render('purchase', ['model' => $model]);
}

Form widget for a view:

use tuyakhov\braintree\ActiveForm;
use yii\helpers\Html;
use yii\widgets\MaskedInput;

$form = ActiveForm::begin();
?>

<?= $form->field($model, 'creditCard_number'); ?>
<?= $form->field($model, 'creditCard_cvv'); ?>
<?=
$form->field($model, 'creditCard_expirationDate')
    ->widget(MaskedInput::class, ['mask' => '99/9999']);
?>
<?= $form->field($model, 'amount'); ?>
<?= Html::submitButton(); ?>

<?php
ActiveForm::end();

About

Integrate a credit card payment form with Braintree's API into Yii2

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 98.4%
  • Ruby 1.6%