opus-online/yii2-payment

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

此包的规范仓库似乎已丢失,因此该包已被冻结。

维护者

详细信息

github.com/opus-online/yii2-payment

安装数: 6,843

依赖者: 1

建议者: 0

安全: 0

星标: 9

关注者: 10

分支: 9

类型:yii2-extension

1.0.6 2016-01-07 13:14 UTC

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