dlds / yii2-payment
处理爱沙尼亚银行支付的库
1.1.1
2015-04-06 09:30 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-14 17:05:51 UTC
README
处理爱沙尼亚银行支付的库。主要功能包括
- 使用以下处理器实现支付服务:IPizza(Swedbank,SEB,LHV,Danske,Krediidipank),Estcard,Nordea
- 面向对象和可扩展的代码,您可以轻松添加自定义适配器
- 从事务对象生成支付表单
- 处理银行后置请求
这是一个非常基础的“低级别”组件,用于实现支付。如果您还需要购物车和订单的功能,您可能需要查看opus-online/yii2-ecom扩展。
安装
只需在您的composer.json
中定义所需的包。
{ "require": { "opus-online/yii2-payment": "*", } }
使用方法
覆盖PaymentHandlerBase
类和至少getConfiguration
方法。使用您的账户详细信息以及密钥和证书文件的位置补充这两个配置文件。您可以直接从examples/config
下复制文件。
class MyPaymentHandler extends \dlds\payment\PaymentHandlerBase { /** * Returns the configuration array */ public function getConfiguration() { return [ // common parameters for all adapters 'common' => array( 'returnRoute' => 'bankController/return', ), // adapter-specific parameters 'adapters' => \yii\helpers\ArrayHelper::merge(require 'banks-default.php', require 'banks-local.php') ]; } }
渲染所有支付表单
// create the payment service $service = MyPaymentHandler::createPaymentService(); // create a transaction object $transaction = $service->createTransaction(1234, 234, ['comment' => 'Comment']); // render the widget echo \dlds\payment\widgets\PaymentWidget::widget([ 'forms' => $service->generateForms($transaction), ]);
自定义支付表单
默认实现使用小部件dlds\payment\widgets\PaymentWidget
。您可以覆盖并使用它来使用自定义表单或元素。
class MyPaymentWidget extends PaymentWidget { protected function generateSubmit(Form $form) { return Html::submitButton('MyCustomLabel'); } }
然后只需渲染您的自定义小部件而不是默认的小部件(见上面的小部件示例)。
接收来自银行的返回请求
$service = PaymentHandler::createPaymentService(); $response = $service->handleResponse($_REQUEST); // re-generate the transaction object from the response $transaction = $response->getTransaction(); if ($response->isSuccessful()) { // see the Transaction object for more details echo $transaction->getTransactionId(); }
向AdapterAbstract添加了cancelRoute
和getCancelUrl()
,允许在取消支付后进行不同的重定向。