feat(payment): tighten gateways and implement Epay
Keep only balance, Alipay, WeChat, PayPal, Stripe, Epay, and card-pass channels; remove placeholder aggregators. Add dual-channel Epay gateway with MD5 notify/return, register cashier methods, and gate card-pass redeem behind the payment channel switch. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
aa4bdfb5c4
commit
723dd180e4
11 files changed
+470
-264
No files matched your search
@@ -219,29 +219,20 @@ class SchemaPayment {
|
||||
'gateway' => [
|
||||
'key' => 'gateway',
|
||||
'title' => '收款接口',
|
||||
'version' => '1.1.0',
|
||||
'version' => '1.2.0',
|
||||
'option_key' => 'aksrt_settings',
|
||||
'groups' => [
|
||||
['key' => 'adapter', 'title' => '网关适配器', 'fields' => [
|
||||
['key' => 'payment_gateway_mode', 'label' => '运行模式', 'type' => 'string', 'default' => 'manual_review'],
|
||||
['key' => 'payment_gateway_test_enabled', 'label' => '启用测试网关', 'type' => 'bool', 'default' => true],
|
||||
['key' => 'payment_gateway_manual_review', 'label' => '保留人工复核', 'type' => 'bool', 'default' => true],
|
||||
['key' => 'payment_gateway_callback_secret', 'label' => '回调校验口令', 'type' => 'string', 'default' => ''],
|
||||
['key' => 'payment_gateway_help', 'label' => '运维说明', 'type' => 'string', 'default' => '未接真实支付网关时,建议使用测试网关或人工确认模式完成联调。'],
|
||||
['key' => 'notice', 'title' => '说明', 'fields' => [
|
||||
['key' => 'payment_gateway_notice', 'label' => '通道说明', 'type' => 'notice', 'alertType' => 'info', 'alertContent' => '以渠道开关 + 凭据是否齐全为准。异步回调由各网关验签(支付宝/微信/Stripe/易支付等),无需额外口令。卡密为兑换入口,不出现在收银台支付方式列表。'],
|
||||
]],
|
||||
['key' => 'gateways', 'title' => '支付渠道开关', 'fields' => [
|
||||
['key' => 'payment_wechat_enabled', 'label' => '微信支付', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_balance_enabled', 'label' => '余额支付', 'type' => 'switch', 'default' => true, 'help' => '需同时在「余额充值」启用余额功能。关闭后用户中心仍可有钱包,但结账不可用余额支付。'],
|
||||
['key' => 'payment_alipay_enabled', 'label' => '支付宝', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_wechat_enabled', 'label' => '微信支付', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_paypal_enabled', 'label' => 'PayPal', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_stripe_enabled', 'label' => 'Stripe', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_xunhupay_enabled', 'label' => '虎皮椒', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_xhpay_enabled', 'label' => '小火付', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_payjs_enabled', 'label' => 'PayJS', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_epay_enabled', 'label' => '易支付', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_vmq_enabled', 'label' => 'V免签', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_codepay_enabled', 'label' => 'Codepay', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_balance_enabled', 'label' => '余额支付', 'type' => 'switch', 'default' => true],
|
||||
['key' => 'payment_card_pass_enabled', 'label' => '卡密充值', 'type' => 'switch', 'default' => false],
|
||||
['key' => 'payment_epay_enabled', 'label' => '易支付', 'type' => 'switch', 'default' => false, 'help' => '兼容彩虹易支付协议的聚合收银台,可同时开启支付宝/微信子通道。'],
|
||||
['key' => 'payment_card_pass_enabled', 'label' => '卡密充值', 'type' => 'switch', 'default' => false, 'help' => '仅控制卡密兑换入口是否开放;卡密规则与批量发卡在「充值卡」页。不进入结账支付方式列表。'],
|
||||
]],
|
||||
// Channel credential groups: SPA uses collapsible + expandWhen + group dependsOn.
|
||||
// Field-level dependsOn kept for contract audit / non-SPA consumers.
|
||||
@@ -281,23 +272,18 @@ class SchemaPayment {
|
||||
['key' => 'stripe_currency', 'label' => '货币', 'type' => 'input', 'default' => 'usd', 'dependsOn' => ['key' => 'payment_stripe_enabled', 'value' => true]],
|
||||
['key' => 'stripe_test_mode', 'label' => '测试模式', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'payment_stripe_enabled', 'value' => true]],
|
||||
]],
|
||||
['key' => 'xunhupay', 'title' => '虎皮椒配置', 'collapsible' => true, 'expandWhen' => 'payment_xunhupay_enabled', 'dependsOn' => ['key' => 'payment_xunhupay_enabled', 'value' => true], 'fields' => [
|
||||
['key' => 'xunhupay_appid', 'label' => 'AppID', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_xunhupay_enabled', 'value' => true]],
|
||||
['key' => 'xunhupay_appsecret', 'label' => 'AppSecret', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_xunhupay_enabled', 'value' => true]],
|
||||
]],
|
||||
['key' => 'xhpay', 'title' => '小火付配置', 'collapsible' => true, 'expandWhen' => 'payment_xhpay_enabled', 'dependsOn' => ['key' => 'payment_xhpay_enabled', 'value' => true], 'fields' => [
|
||||
['key' => 'xhpay_mchid', 'label' => '商户号', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_xhpay_enabled', 'value' => true]],
|
||||
['key' => 'xhpay_alipay_v2', 'label' => '支付宝V2', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_xhpay_enabled', 'value' => true]],
|
||||
['key' => 'xhpay_wx_h5', 'label' => '微信H5', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_xhpay_enabled', 'value' => true]],
|
||||
]],
|
||||
['key' => 'payjs', 'title' => 'PayJS配置', 'collapsible' => true, 'expandWhen' => 'payment_payjs_enabled', 'dependsOn' => ['key' => 'payment_payjs_enabled', 'value' => true], 'fields' => [
|
||||
['key' => 'payjs_mchid', 'label' => '商户号', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_payjs_enabled', 'value' => true]],
|
||||
['key' => 'payjs_key', 'label' => '通信密钥', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_payjs_enabled', 'value' => true]],
|
||||
]],
|
||||
['key' => 'epay', 'title' => '易支付配置', 'collapsible' => true, 'expandWhen' => 'payment_epay_enabled', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true], 'fields' => [
|
||||
['key' => 'epay_apiurl', 'label' => '接口地址', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_apiurl', 'label' => '接口地址', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true], 'help' => '易支付站点根地址,如 https://pay.example.com/(末尾斜杠可选)。'],
|
||||
['key' => 'epay_pid', 'label' => '商户ID', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_key', 'label' => '商户密钥', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_key', 'label' => '商户密钥', 'type' => 'input', 'default' => '', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true], 'help' => 'MD5 通信密钥。'],
|
||||
['key' => 'epay_channel_alipay', 'label' => '启用支付宝通道', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_channel_wxpay', 'label' => '启用微信通道', 'type' => 'switch', 'default' => true, 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_device', 'label' => '下单终端', 'type' => 'select', 'default' => 'auto', 'options' => [
|
||||
['value' => 'auto', 'label' => '自动(按 UA)'],
|
||||
['value' => 'pc', 'label' => '电脑端 submit'],
|
||||
['value' => 'mobile', 'label' => '移动端 mapi'],
|
||||
], 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
['key' => 'epay_notify_help', 'label' => '回调地址说明', 'type' => 'notice', 'alertType' => 'info', 'alertContent' => '异步/同步回调固定为 /wp-json/aksrt/v1/payment/epay_alipay/{notify|return} 与 /payment/epay_wxpay/{notify|return},请在易支付后台放行对应 URL。', 'dependsOn' => ['key' => 'payment_epay_enabled', 'value' => true]],
|
||||
]],
|
||||
],
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user