opus-online / yii2-payment
处理爱沙尼亚银行支付的库
此包的规范仓库似乎已丢失,因此该包已被冻结。
1.0.6
2016-01-07 13:14 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-01-20 12:04:58 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 \opus\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 \opus\payment\widgets\PaymentWidget::widget([ 'forms' => $service->generateForms($transaction), ]);
自定义支付表单
默认实现使用小部件 opus\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()
,以允许支付取消后的不同重定向。