diff --git a/src/components/PaymentQRCode.tsx b/src/components/PaymentQRCode.tsx index 3ae1655..27650de 100644 --- a/src/components/PaymentQRCode.tsx +++ b/src/components/PaymentQRCode.tsx @@ -71,9 +71,11 @@ export default function PaymentQRCode({ const paymentMethodListenerAdded = useRef(false); const qrPayload = useMemo(() => { + // alipay_direct 的 payUrl 是跳转链接,不应生成二维码 + if (isAlipayDirect && !qrCode) return ''; const value = (qrCode || payUrl || '').trim(); return value; - }, [qrCode, payUrl]); + }, [qrCode, payUrl, isAlipayDirect]); useEffect(() => { let cancelled = false; @@ -314,6 +316,8 @@ export default function PaymentQRCode({ }; const isWx = paymentType?.startsWith('wxpay'); + // alipay_direct 使用电脑网站支付,payUrl 是跳转链接不是二维码内容 + const isAlipayDirect = paymentType === 'alipay_direct'; const iconSrc = isStripe ? '' : isWx ? '/icons/wxpay.svg' : '/icons/alipay.svg'; const channelLabel = isStripe ? 'Stripe' : isWx ? '\u5FAE\u4FE1' : '\u652F\u4ED8\u5B9D'; const iconBgClass = isStripe ? 'bg-[#635bff]' : isWx ? 'bg-[#07C160]' : 'bg-[#1677FF]'; @@ -452,6 +456,21 @@ export default function PaymentQRCode({ {TEXT_H5_HINT}
> + ) : isAlipayDirect && payUrl ? ( + <> + ++ {TEXT_H5_HINT} +
+ > ) : ( <> {qrDataUrl && (