ruskid / yii2-stripe
Yii2 Stripe 包装器
1.6
2019-04-14 13:33 UTC
Requires
- bower-asset/jquery.payment: *
- yiisoft/yii2: *
README
安装
安装此扩展的首选方式是通过 https://getcomposer.org.cn/download/。
运行以下命令之一
php composer.phar require ruskid/yii2-stripe "dev-master"
或者将以下内容添加到您的 composer.json
文件的 require 部分。
"ruskid/yii2-stripe": "dev-master"
使用方法
在 main.php 中添加一个新的组件
'components' => [ ... 'stripe' => [ 'class' => 'ruskid\stripe\Stripe', 'publicKey' => "pk_test_xxxxxxxxxxxxxxxxxxx", 'privateKey' => "sk_test_xxxxxxxxxxxxxxxxxx", ], ...
要渲染简单的结账表单,只需在视图中调用小部件,它将自动注册脚本。有关更多选项,请参阅 Stripe 文档。
use ruskid\stripe\StripeCheckout; <?= StripeCheckout::widget([ 'action' => '/', 'name' => 'Demo test', 'description' => '2 widgets ($20.00)', 'amount' => 2000, 'image' => '/128x128.png', ]); ?>
自定义结账表单是简单表单的扩展版本,但您可以自定义按钮(见 buttonOptions)并按需处理令牌(tokenFunction)。
use ruskid\stripe\StripeCheckoutCustom; <?= StripeCheckoutCustom::widget([ 'action' => '/', 'name' => 'Demo test', 'description' => '2 widgets ($20.00)', 'amount' => 2000, 'image' => '/128x128.png', 'buttonOptions' => [ 'class' => 'btn btn-lg btn-success', ], 'tokenFunction' => new JsExpression('function(token) { alert("Here you should control your token."); }'), 'openedFunction' => new JsExpression('function() { alert("Model opened"); }'), 'closedFunction' => new JsExpression('function() { alert("Model closed"); }'), ]); ?>
StripeFormV2 - 将于 2019 年 9 月 14 日弃用
您可以使用新的 StripeForm.php。但我认为它不是很实用
use ruskid\stripe\StripeForm; $form = StripeForm::begin([ 'action' => Url::toRoute('payment/create'), 'options' => [ 'autocomplete' => 'on', 'data-secret' => 'payment intent client secret', ], 'elementsOptions' => [ 'locale' => 'es' // stripe elements language ], 'formEvents' => [ 'beforeSubmit' => 'what ever form events', 'submit' => new JsExpression('function(event) { // you can define as you want // stripe.handleCardPayment() // stripe.createToken() }'), ] ]); echo $form->cardInput([ 'hidePostalCode' => true, 'style' => [ 'base' => [ 'color' => 'blue', ], 'invalid' => [ 'color' => 'red', 'iconColor' => 'red' ] ], ], [ 'change' => new JsExpression('function(event) { if (event.error) { alert(event.error.message); } else { // input is good } }') ]); echo $form->cardNumber(); echo $form->cardExpiry(); echo $form->cardCvc(); echo Html::submitButton('Submit'); StripeForm::end();