fix: 多俱乐部下单 openid;集团超管可切俱乐部

This commit is contained in:
XingQue
2026-06-24 20:45:40 +08:00
parent 08fc8f50f3
commit a693e35177
4 changed files with 81 additions and 25 deletions

View File

@@ -61,6 +61,7 @@ from .models import (
)
from jituan.services.club_config import get_commission_rate, get_commission_rate_object
from jituan.services.club_context import resolve_club_id_from_request
from jituan.services.club_user import get_payment_openid
from jituan.services.club_penalty import resolve_penalty_club_id
from products.models import Shangpin, ShangpinLeixing, Huiyuangoumai
from users.models import UserDashou, UserShangjia, UserBoss
@@ -738,7 +739,7 @@ class CreateOrderView(APIView):
# 获取当前用户信息
current_user = request.user
laoban_yonghuid = getattr(current_user, 'UserUID', '') or getattr(current_user, 'yonghuid', '')
user_openid = getattr(current_user, 'OpenID', '') or getattr(current_user, 'openid', '')
user_openid, club_id = get_payment_openid(request, current_user, club_id)
if not user_openid:
return Response({'code': 10, 'msg': '用户openid不存在', 'data': None})
@@ -761,7 +762,7 @@ class CreateOrderView(APIView):
'ImageURL':shangpin_tupian,
'User1ID':f"Boss{request.user.UserUID}",
'ProductTypeID':shangpin.leixing_id,
'ClubID': getattr(request, 'club_id', None) or 'xq',
'ClubID': club_id,
}
# 创建订单记录
@@ -823,7 +824,8 @@ class CreateOrderView(APIView):
jine=shangpin_jiage,
beizhu=getattr(settings, 'WEIXIN_PAY_DESCRIPTION', '星阙订单'),
user_ip=self.get_client_ip(request),
openid=user_openid
openid=user_openid,
club_id=club_id,
)
if not pay_params:
@@ -855,16 +857,16 @@ class CreateOrderView(APIView):
ip = request.META.get('REMOTE_ADDR')
return ip
def generate_wechat_pay_params(self, dingdanid, jine, beizhu, user_ip, openid):
def generate_wechat_pay_params(self, dingdanid, jine, beizhu, user_ip, openid, club_id=None):
"""
调用微信支付统一下单接口,生成支付参数
完全按照您提供的正确示例代码编写
"""
try:
# 微信支付配置
APPID = getattr(settings, 'WEIXIN_APPID', '')
MCHID = getattr(settings, 'WEIXIN_MCHID', '')
KEY = getattr(settings, 'WEIXIN_SHANGHUMIYAO', '')
from jituan.services.wechat_pay import get_wechat_v2_config
pay_cfg = get_wechat_v2_config(club_id)
APPID = pay_cfg['appid']
MCHID = pay_cfg['mch_id']
KEY = pay_cfg['key']
NOTIFY_URL = getattr(settings, 'WEIXIN_NOTIFY_URL', '')
if not all([APPID, MCHID, KEY, NOTIFY_URL]):