mediawiki / authorize
提供一种方式通过信用卡交易更改用户的用户组成员资格
Requires
Requires (Dev)
- mediawiki/mediawiki-codesniffer: ^31.0
- mediawiki/mediawiki-phan-config: 0.10.2
- mediawiki/minus-x: 1.1.0
- php-parallel-lint/php-console-highlighter: 0.5.0
- php-parallel-lint/php-parallel-lint: 1.2.0
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.16
This package is not auto-updated.
Last update: 2024-09-22 07:38:06 UTC
README
本文件涵盖了 WSAuthorize MediaWiki 扩展的功能和规范。
此扩展专门为 MW利益相关者编写。
扩展使用 PHP 库cimpleo/omnipay-authorizenetrecurring来设置 Visa 的 Authorize.net 的周期性支付。
该扩展由三个特殊页面组成,即
- Special:Subscribe,用于个人订阅和取消订阅,对所有登录用户可用
- Special:SubscribeCorporate,用于企业订阅,仅对拥有“成员”权限的人可用
- Special:Fundraising,用于随时捐赠任意金额,对所有登录用户可用
Special:Subscribe
此特殊页面对所有登录用户可用,但用户之间会有所不同。任何尚未成为成员的登录用户将看到一个多页表单,允许他们进行订阅。
此订阅表单由五个部分组成
- 初始问候语,告诉他们通过填写此表单可以成为成员。
- 账单详情表单,允许用户填写他们的账单详情。这些账单详情将在填写表单期间存储在会话中,一旦用户成为成员,将存储在数据库中。
- 会员选择表单,允许用户选择他们想要的会员资格。此选择将存储在会话中,但不在数据库中。
- 账单周期选择表单,允许用户选择账单周期。账单周期必须是“年度”或“月度”(30天)。
- 确认表单,此表单将显示用户输入的所有内容,并允许他们填写他们的信用卡详情。
当用户点击“订阅”时,他们将立即被收费,并通过 Authorize.net 设置订阅。收费后,他们将被放入相应的用户组,并重定向到“Special:Subscribe/subscribe/success”页面,确认他们的订阅。
一旦用户成为成员,Special:Subscribe 特殊页面将显示一个取消表单。此取消表单由一个部分组成,当用户进行取消操作时,他们将被立即从用户组中移除,他们的订阅将立即取消。
Special:SubscribeCorporate
此表单仅对拥有“成员”权限的成员可用。如果用户没有此权限,他们将被重定向到 Special:Subscribe 表单。
此表单允许任何“成员”将他们的会员资格升级为企业会员资格。
然后只有“member-individual”组的用户查看表单,所有企业组都可用。(注意:企业组是定义为 "\$wgWSAuthorizeMemberships" 且没有“individual”参数的组)。具有“member-silver”的用户将只能看到高于其等级的企业会员资格,即“member-gold”和“member-platinum”。
用户选择了他们想要的会员升级后,他们可以点击“下一步”。在此页面上,他们可以确认他们的选择并输入他们的信用卡详情。当用户点击订阅时,以下操作将发生
- 他们的当前 Authorize.net 周期性支付订阅将被取消
- 他们将以新价格重新订阅
- 他们将被立即收取升级费用。
- 他们将被添加到适当的用户组。
当拥有“member-platinum”的用户访问“SubscribeCorporate”特殊页面时,他们将被重定向到取消页面。
特别:筹款
此页面允许任何登录用户捐赠任意金额的钱。最小和最大金额分别由$wgWSAuthorizeMinFundraisingAmount
和$wgWSAuthorizeMaxFundraisingAmount
给出,这两个值分别也分别严格限制为1美元和5000美元。
当非会员用户访问筹款页面时,他们将被显示一个表单来输入他们的账单详情和想要捐赠的金额。在此处输入的账单详情将不会存储,但将被发送到Authorize.net进行管理。当会员访问筹款页面时,他们的账单详情已经知晓,将自动填写。
当用户点击“下一步”后,他们将被发送到一个确认屏幕,在这里他们可以确认他们的账单详情和捐赠金额,并可以输入他们的信用卡详情。
当用户点击“捐款”后,将通过Authorize.net设置一次性的“周期性”支付,并对其信用卡进行一次性收费。
配置参数
$wgWSAuthorizeMemberships
允许管理员创建新的会员层级。$wgWSAuthorizeMinFundraisingAmount
用户可以输入的最小筹款金额(严格限制为“1”或更高)。$wgWSAuthorizeMaxFundraisingAmount
用户可以输入的最大筹款金额(严格限制为“5000”或更低)。$wgWSAuthorizeAuthName
Authorize.net API 登录ID。$wgWSAuthorizeTransactionKey
Authorize.net API 交易密钥。$wgWSTestMode
是否使用Authorize.net测试API(默认:false)。
系统消息
我发现很难想出一些表单和错误的良好消息。用户看到的大部分文本都是以系统消息的形式定义的,并且可以通过编辑扩展目录中的“i18n”文件夹中的“en.json”文件进行更改。
以“-wikitext”结尾的任何系统消息都支持wikitext标记。
维护脚本
有两个维护脚本可用。这些脚本位于扩展目录中的“maintenance”文件夹中。
维护脚本“cancelMembership.php”取消指定用户的会员资格。可以如下调用
$ php maintenance/cancelMembership.php --user=”<username>”
或
$ php maintenance/cancelMembership.php --id=”<subscription_id>”
维护脚本renewMembership.php
更新指定用户的会员资格。
由于周期性支付已经在Authorize.net中设置(应该!),因此此脚本不会再次与Authorize.net通信。它只是更新用户在数据库中的条目,并将他们的账单周期长度添加到组到期日期。可以如下调用
$ php maintenance/renewMembership.php --user=”<username>”
当有人试图在短时间内两次续订会员资格时,维护脚本将发出警告。
安装
- 下载扩展。
- 在LocalSettings.php文件底部添加以下内容
wfLoadExtension( “WSAuthorize” );
- 运行更新脚本,该脚本将自动创建此扩展所需的必要数据库表。
- 根据需要配置扩展。
- 完成 - 导航到Special:Version以验证扩展是否成功安装。