dlds/yii2-payment

处理爱沙尼亚银行支付的库

维护者

详细信息

github.com/dlds/yii2-payment

源代码

安装次数: 1,966

依赖项: 1

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 8

类型:yii2-extension

1.1.1 2015-04-06 09:30 UTC

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添加了cancelRoutegetCancelUrl(),允许在取消支付后进行不同的重定向。