feat: 收款与提现商户拆分,支持后台上传证书

收款仍用 mch_id/mch_key;提现优先 withdraw_mch_id(空则回落);证书分 pay/withdraw 目录落盘。退款逻辑未改。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-21 03:52:55 +08:00
parent 98b58f8058
commit 8e82a8457d
6 changed files with 328 additions and 16 deletions

View File

@@ -0,0 +1,70 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('jituan', '0012_club_mch_key'),
]
operations = [
migrations.AddField(
model_name='club',
name='pay_cert_path',
field=models.CharField(
blank=True, default='', help_text='apiclient_cert.pem退款/V2 证书用',
max_length=512, verbose_name='收款商户证书路径',
),
),
migrations.AddField(
model_name='club',
name='pay_key_path',
field=models.CharField(
blank=True, default='', help_text='apiclient_key.pem退款/V2 证书用',
max_length=512, verbose_name='收款商户私钥路径',
),
),
migrations.AddField(
model_name='club',
name='withdraw_mch_id',
field=models.CharField(
blank=True, default='', help_text='空则回落收款商户号 mch_id',
max_length=32, verbose_name='提现商户号',
),
),
migrations.AlterField(
model_name='club',
name='mch_id',
field=models.CharField(blank=True, default='', max_length=32, verbose_name='收款商户号'),
),
migrations.AlterField(
model_name='club',
name='pay_app_id',
field=models.CharField(blank=True, default='', max_length=32, verbose_name='收款AppID'),
),
migrations.AlterField(
model_name='club',
name='mch_key',
field=models.CharField(blank=True, default='', max_length=128, verbose_name='收款APIv2密钥'),
),
migrations.AlterField(
model_name='club',
name='api_v3_key',
field=models.CharField(blank=True, default='', max_length=128, verbose_name='提现APIv3密钥'),
),
migrations.AlterField(
model_name='club',
name='cert_serial_no',
field=models.CharField(blank=True, default='', max_length=64, verbose_name='提现证书序列号'),
),
migrations.AlterField(
model_name='club',
name='private_key_path',
field=models.CharField(blank=True, default='', max_length=512, verbose_name='提现商户私钥路径'),
),
migrations.AlterField(
model_name='club',
name='platform_cert_dir',
field=models.CharField(blank=True, default='', max_length=512, verbose_name='提现平台证书目录'),
),
]