feat(payment): unify payment flow with new pure redirect entry and update related endpoints

This commit is contained in:
hamed
2026-07-02 17:08:50 +03:30
parent c247ac2c80
commit 7f5c65129c
17 changed files with 720 additions and 82 deletions
+5
View File
@@ -32,6 +32,7 @@ const schema = z.object({
tax_enabled: z.string(),
tax_percent: z.string(),
sms_panel_fee_rials: z.string(),
sms_price_rials: z.string(),
appointment_fee_rials: z.string(),
// payment gateways
payment_test_mode: z.string(),
@@ -60,6 +61,7 @@ const toForm = (s: Partial<Settings>): FormValues => ({
tax_enabled: s.tax_enabled ?? '0',
tax_percent: s.tax_percent ?? '10',
sms_panel_fee_rials: s.sms_panel_fee_rials ?? '1500000',
sms_price_rials: s.sms_price_rials ?? '500',
appointment_fee_rials: s.appointment_fee_rials ?? '150000',
payment_test_mode: s.payment_test_mode ?? '0',
mellat_enabled: s.mellat_enabled ?? '1',
@@ -452,6 +454,9 @@ export default function SettingsPage() {
: <><ExclamationTriangleIcon style={{ width: 18, height: 18, color: 'var(--danger)' }} /><span style={{ color: 'var(--danger)' }}>تنظیمنشده مقدار KAVENEGAR_API_KEY را در فایل env قرار دهید</span></>}
</div>
</Field>
<Field label="هزینه هر پیامک" hint="مبلغ کسرشده از کیف پول به ازای هر پیامک ارسالی (ریال). مبنای محاسبهٔ تعداد پیامک از موجودی.">
<input {...register('sms_price_rials')} type="number" min={0} dir="ltr" className="input" style={{ maxWidth: 200 }} placeholder="500" />
</Field>
</div>
)}
</div>