Integrate a credit card payment form with Braintree's API into Yii 2. Inspired by braintreeapi.
- PHP 7.2 or later;
- Yii framework 2.
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.
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:
address
- create an address - API documentationcreditCard
- create a credit card - API documentationcustomer
- create a customer - API documentationsale
- create a transaction - API documentationsaleFromVault
- create a transaction from the vault - API documentation
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();