Yii2-braintree
Integrate a credit card payment form with Braintree's API into Yii2.
Inspired by braintreeapi., (*1)
, (*2)
Installation
The preferred way to install this extension is through composer., (*3)
Either run, (*4)
php composer.phar require --prefer-dist tuyakhov/yii2-braintree "*"
or add, (*5)
"tuyakhov/yii2-braintree": "*"
to the require section of your composer.json
file., (*6)
Usage
You should add Braintree component to your Yii config first:, (*7)
'components' => [
'braintree' => [
'class' => 'tuyakhov\braintree\Braintree',
'merchantId' => 'YOUR_MERCHANT_ID',
'publicKey' => 'YOUR_PUBLIC_KEY',
'privateKey' => 'YOUR_PRIVATE_KEY',
],
]
Once the extension is installed, simply use it in your code by :, (*8)
BraintreeForm
provide all basic operations for sales and stores customer info. Operation name equals scenario name.
Available scenarios:, (*9)
creditCard
- create a credit card
doc
address
- create an address
doc
customer
- create a customer
doc
sale
- create a transaction
doc
saleFromVault
- create a transaction from your Vault
doc, (*10)
Action example:, (*11)
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 your view:, (*12)
<?php $form = \tuyakhov\braintree\ActiveForm::begin(); ?>
<?= $form->field($model, 'creditCard_number'); ?>
<?= $form->field($model, 'creditCard_cvv'); ?>
<?=
$form->field($model, 'creditCard_expirationDate')->widget(
\yii\widgets\MaskedInput::className(),
['mask' => '99/9999']
);
?>
<?= $form->field($model, 'amount'); ?>
<?= \yii\helpers\Html::submitButton(); ?>
<?php \tuyakhov\braintree\ActiveForm::end(); ?>