支付与收款商户号分离:支付改读 pay_* 独立配置与证书目录,收款侧不动。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-27 05:41:56 +08:00
parent 89fa08e5de
commit db91626e7f
12 changed files with 531 additions and 78 deletions

View File

@@ -6,6 +6,7 @@ from rest_framework.throttling import AnonRateThrottle
from django.db import models
from shangpin.models import ShangpinLeixing, ShangpinZhuanqu, Shangpin
from utils.xcx_sys_config import get_shangpin_shenhe_zhuangtai
from utils.pay_mch_config import pay_cfg
from utils.jwt_auth import OptionalYonghuidJWTAuthentication, YonghuidJWTAuthentication
from yonghu.models import UserMain
import logging
@@ -549,8 +550,8 @@ class YajinGoumai(APIView):
"""生成微信小程序支付参数"""
# 获取配置
APPID = wx_cfg.WEIXIN_APPID
MCHID = wx_cfg.WEIXIN_MCHID
KEY = wx_cfg.WEIXIN_SHANGHUMIYAO
MCHID = pay_cfg.WEIXIN_MCHID
KEY = pay_cfg.WEIXIN_SHANGHUMIYAO
# 根据支付类型获取对应的配置
if pay_type == 'yajin':
@@ -876,7 +877,7 @@ class YajinHuitiao(View):
# 拼接字符串
sign_string = '&'.join([f"{key}={value}" for key, value in sorted_params if value])
sign_string += f'&key={wx_cfg.WEIXIN_SHANGHUMIYAO}'
sign_string += f'&key={pay_cfg.WEIXIN_SHANGHUMIYAO}'
# 计算签名
calculated_sign = hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper()
@@ -1126,8 +1127,8 @@ class JifenBuchong(APIView):
"""生成微信支付参数(完整版,无省略)"""
# 微信支付配置 - 从settings中获取
APPID = wx_cfg.WEIXIN_APPID
MCHID = wx_cfg.WEIXIN_MCHID
KEY = wx_cfg.WEIXIN_SHANGHUMIYAO
MCHID = pay_cfg.WEIXIN_MCHID
KEY = pay_cfg.WEIXIN_SHANGHUMIYAO
# 根据支付类型获取对应的配置
if pay_type == 'yajin':
@@ -1429,7 +1430,7 @@ class JifenHuitiao(View):
# 拼接字符串
sign_string = '&'.join([f"{key}={value}" for key, value in sorted_params if value])
sign_string += f'&key={wx_cfg.WEIXIN_SHANGHUMIYAO}'
sign_string += f'&key={pay_cfg.WEIXIN_SHANGHUMIYAO}'
# 计算签名
calculated_sign = hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper()
@@ -1724,8 +1725,8 @@ class HuiyuanGoumai(APIView):
"""生成微信支付参数(完整版,无省略)"""
# 微信支付配置 - 从settings中获取
APPID = wx_cfg.WEIXIN_APPID
MCHID = wx_cfg.WEIXIN_MCHID
KEY = wx_cfg.WEIXIN_SHANGHUMIYAO
MCHID = pay_cfg.WEIXIN_MCHID
KEY = pay_cfg.WEIXIN_SHANGHUMIYAO
# 根据支付类型获取对应的配置
if pay_type == 'yajin':
@@ -2269,7 +2270,7 @@ class HuiyuanHuitiao(View):
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_string = '&'.join([f"{key}={value}" for key, value in sorted_params if value])
sign_string += f'&key={wx_cfg.WEIXIN_SHANGHUMIYAO}'
sign_string += f'&key={pay_cfg.WEIXIN_SHANGHUMIYAO}'
calculated_sign = hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper()
return sign == calculated_sign
except Exception as e:
@@ -2632,7 +2633,7 @@ class HuiyuanHuitiao(View):
# 拼接字符串
sign_string = '&'.join([f"{key}={value}" for key, value in sorted_params if value])
sign_string += f'&key={wx_cfg.WEIXIN_SHANGHUMIYAO}'
sign_string += f'&key={pay_cfg.WEIXIN_SHANGHUMIYAO}'
# 计算签名
calculated_sign = hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper()
@@ -2963,8 +2964,8 @@ class ShangjiaChongzhi(APIView):
"""生成微信小程序支付参数"""
# 获取配置
APPID = wx_cfg.WEIXIN_APPID
MCHID = wx_cfg.WEIXIN_MCHID
KEY = wx_cfg.WEIXIN_SHANGHUMIYAO
MCHID = pay_cfg.WEIXIN_MCHID
KEY = pay_cfg.WEIXIN_SHANGHUMIYAO
# 根据支付类型获取对应的配置
if pay_type == 'shangjia':
@@ -3262,7 +3263,7 @@ class ShangjiaHuitiao(View):
# 拼接字符串
sign_string = '&'.join([f"{key}={value}" for key, value in sorted_params if value])
sign_string += f'&key={wx_cfg.WEIXIN_SHANGHUMIYAO}'
sign_string += f'&key={pay_cfg.WEIXIN_SHANGHUMIYAO}'
# 计算签名
calculated_sign = hashlib.md5(sign_string.encode('utf-8')).hexdigest().upper()