dvsa / mot-cpms-forms
模块,提供可重复使用的HTML表单,可用于方案处理支付。
v3.0.0
2024-07-29 09:07 UTC
Requires
- php: ^8.2
- dvsa/mot-cpms-client: ^3.1.0
- laminas/laminas-cache-storage-adapter-apcu: ^2.0
- laminas/laminas-dependency-plugin: ^2.6.0
- laminas/laminas-http: ^2.14
- laminas/laminas-hydrator: ^4.2
- laminas/laminas-i18n: ^2.9
- laminas/laminas-inputfilter: ^2.13
- laminas/laminas-json: ^3.3
- laminas/laminas-math: ^3.3
- laminas/laminas-mvc: ^3.3.0
- laminas/laminas-router: ^3.4
- laminas/laminas-session: ^2.11
- laminas/laminas-validator: ^2.14
Requires (Dev)
- captainhook/captainhook: ^5.16
- captainhook/plugin-composer: ^5.3
- dvsa/mot-cpms-common: ^3.0.0
- dvsa/mot-cpms-payment-test: ^3.0.0
- laminas/laminas-component-installer: ^3.4.0
- laminas/laminas-test: ^4.0.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-08-29 09:40:49 UTC
README
简介
提供可重复使用的HTML表单的模块,可用于方案处理支付。
安装
主要设置
使用Composer
推荐通过 Composer 进行安装。
composer require dvsa/mot-cpms-forms
安装后
-
在您的 application.config.php 文件中启用它。
<?php return array( 'modules' => array( // ... 'CpmsForms', ), // ... );
-
将配置文件复制到您的autoload配置文件夹(可选)
cp vendor/dvsa/mot-cpms-forms/config/cpms-forms.global.php.dist config/autoload/cpms-forms.global.php
使用方法
请使用控制器插件生成支付表单
$form = $this->getCpmsPaymentForm($payment);
插件接受一个参数,该参数必须是实现了以下接口之一的对象
- CpmsForms\Payment\CardPaymentInterface
- CpmsForms\Payment\StoredCardPaymentInterface
- CpmsForms\Payment\DirectDebitPaymentInterface
- CpmsForms\Payment\CashPaymentInterface
- CpmsForms\Payment\ChequePaymentInterface
- CpmsForms\Payment\ChipPinPaymentInterface
- CpmsForms\Payment\PostalOrderPaymentInterface
如你所见,支付接口决定了方案需要提供的数据,并告诉表单工厂服务为该接口构建特定的表单。
每种支付类型都始终需要通用信息(金额、用户ID等),因此在使用支付类时,使用 CpmsForms\Payment\BasePaymentTrait
特性是一个便利的选择。
cpms-forms插件验证POST数据并重定向到cpms-forms控制器进行处理。关于重定向,正确的使用方法应该是
$form = $this->getCpmsPaymentForm($payment); if ($form instanceof \Laminas\Http\Response) { return $form; }
应将表单传递给ViewModel,并通过cpms-forms视图助手插件进行渲染
<?php echo $this->renderCpmsForm($form); ?>
配置
视图脚本
如果需要自定义视图脚本来渲染支付表单,请将其添加到您的配置文件中
<?php
return [
'cpms_forms' => [
'partials' => [
'form' => 'custom-path/custom-script.phtml',
],
],
];
也可以为特定支付类型提供视图脚本
return [
'cpms_forms' => [
'partials' => [
'form' => 'custom-path/custom-script.phtml',
'stored_card' => 'custom-path/stored-card-script.phtml',
],
],
];
表单定制
可以为特定支付类型提供自定义表单类。此类必须扩展 CpmsForms\Form\PaymentForm
类才能被视为有效。请参阅示例
return [
'cpms_forms' => [
'payment_types' => [
'direct_debit' => [
'form' => 'Scheme\Form\CustomDirectDebitPaymentForm'
],
],
],
];
也可以定制表单元素。以下示例设置了 mandate_collection_day
元素的html类并添加了电子邮件字段
return [
'cpms_forms' => [
'payment_types' => [
'direct_debit' => [
'form_elements' => [
'mandate_collection_day' => [
'attributes' => [
'class' => 'form-control olcs-form-element',
],
],
[
'name' => 'email',
'attributes' => [
'type' => 'email',
'class' => 'form-control',
],
'options' => [
'label' => 'Customer E-mail',
'required' => true,
],
]
],
],
],
],
];
有关更多选项、支付类型和表单元素的详细信息,请参阅 config/module.config.php
贡献
请参阅我们的 贡献指南。
待办事项
- 检查客户端是否有权使用支付类型
- 实现事件管理器以处理支付前后的操作
- 集成CPMS其他支付模块