|
@@ -14,6 +14,7 @@
|
|
|
import json
|
|
|
import time
|
|
|
import urllib
|
|
|
+from urllib.parse import urlencode, parse_qs, unquote
|
|
|
|
|
|
import boto3
|
|
|
import oss2
|
|
@@ -716,8 +717,11 @@ class CloudStorageView(View):
|
|
|
response = ResponseObject()
|
|
|
data = request.POST.dict()
|
|
|
logger = logging.getLogger('log')
|
|
|
- try:
|
|
|
|
|
|
+ try:
|
|
|
+ passback_params = data["passback_params"]
|
|
|
+ parmap = dict([(k, v[0]) for k, v in parse_qs(unquote(passback_params)).items()])
|
|
|
+ lang = parmap["lang"]
|
|
|
signature = data["sign"]
|
|
|
data.pop('sign')
|
|
|
orderID = data['out_trade_no']
|
|
@@ -777,7 +781,7 @@ class CloudStorageView(View):
|
|
|
|
|
|
order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
|
|
|
sys_msg_text_list = ['成功购买云存', 'Successful purchase of cloud storage']
|
|
|
- do_vod_msg_Notice(request , UID, userid, sys_msg_text_list)
|
|
|
+ do_vod_msg_Notice(request , UID, userid, lang, sys_msg_text_list)
|
|
|
red_url = "{SERVER_DOMAIN}web/paid2/success.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
|
|
|
return HttpResponseRedirect(red_url)
|
|
|
return response.json(0, signature)
|
|
@@ -791,6 +795,7 @@ class CloudStorageView(View):
|
|
|
paymentId = request_dict.get('paymentId', None)
|
|
|
PayerID = request_dict.get('PayerID', None)
|
|
|
orderID = request_dict.get('orderID', None)
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
|
|
|
try:
|
|
|
order_qs = Order_Model.objects.filter(orderID=orderID, status=0)
|
|
@@ -852,7 +857,7 @@ class CloudStorageView(View):
|
|
|
dvq.update(**dvq_set_update_dict)
|
|
|
order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
|
|
|
sys_msg_text_list = ['成功购买云存','Successful purchase of cloud storage']
|
|
|
- do_vod_msg_Notice(request_dict, UID, userid, sys_msg_text_list)
|
|
|
+ do_vod_msg_Notice(request_dict, UID, userid, lang, sys_msg_text_list)
|
|
|
|
|
|
# return response.json(0)
|
|
|
red_url = "{SERVER_DOMAIN}web/paid2/success.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
|
|
@@ -873,6 +878,9 @@ class CloudStorageView(View):
|
|
|
pay = WechatPayObject()
|
|
|
data = pay.weixinpay_call_back(request.body)
|
|
|
|
|
|
+ attach = data["attach"]
|
|
|
+ parmap = dict([(k, v[0]) for k, v in parse_qs(unquote(attach)).items()])
|
|
|
+ lang = parmap["lang"]
|
|
|
trade_status = data['result_code'] # 业务结果 SUCCESS/FAIL
|
|
|
out_trade_no = data['out_trade_no'] # 商户订单号
|
|
|
order_qs = Order_Model.objects.filter(orderID=out_trade_no, status=0)
|
|
@@ -927,7 +935,7 @@ class CloudStorageView(View):
|
|
|
dvq.update(**dvq_set_update_dict)
|
|
|
order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
|
|
|
sys_msg_text_list = ['成功购买云存', 'Successful purchase of cloud storage']
|
|
|
- do_vod_msg_Notice(request, UID, userid, sys_msg_text_list)
|
|
|
+ do_vod_msg_Notice(request, UID, userid, lang, sys_msg_text_list)
|
|
|
return HttpResponse(pay.xml_to_dict({'return_code': 'SUCCESS', 'return_msg': 'OK'}))
|
|
|
|
|
|
else:
|
|
@@ -946,6 +954,7 @@ class CloudStorageView(View):
|
|
|
pay_type = int(request_dict.get('pay_type', None))
|
|
|
rank = request_dict.get('rank', None)
|
|
|
is_select_discount = request_dict.get('is_select_discount', 0)
|
|
|
+ lang = request_dict.get('lang', 0)
|
|
|
if not uid or not channel or not pay_type or not rank:
|
|
|
return response.json(444)
|
|
|
dv_qs = Device_Info.objects.filter(userID_id=userID, UID=uid, isShare=False, isExist=1).values(
|
|
@@ -991,8 +1000,8 @@ class CloudStorageView(View):
|
|
|
|
|
|
orderID = CommonService.createOrderID()
|
|
|
if pay_type == 1:
|
|
|
- call_sub_url = "{SERVER_DOMAIN}cloudstorage/dopaypalcallback?orderID={orderID}". \
|
|
|
- format(SERVER_DOMAIN=SERVER_DOMAIN, orderID=orderID)
|
|
|
+ call_sub_url = "{SERVER_DOMAIN}cloudstorage/dopaypalcallback?orderID={orderID}&lang={lang}". \
|
|
|
+ format(SERVER_DOMAIN=SERVER_DOMAIN, orderID=orderID, lang=lang)
|
|
|
# call_sub_url = "http://binbin.uicp.vip/cloudstorage/dopaypalcallback?orderID={orderID}".format(
|
|
|
# SERVER_DOMAIN=SERVER_DOMAIN, orderID=orderID)
|
|
|
call_clc_url = "{SERVER_DOMAIN}web/paid2/fail.html".format(SERVER_DOMAIN=SERVER_DOMAIN)
|
|
@@ -1045,6 +1054,7 @@ class CloudStorageView(View):
|
|
|
notify_url="{SERVER_DOMAIN_SSL}cloudstorage/doalicallback".format(
|
|
|
SERVER_DOMAIN_SSL=SERVER_DOMAIN_SSL),
|
|
|
quit_url="{SERVER_DOMAIN}web/paid2/fail.html".format(SERVER_DOMAIN=SERVER_DOMAIN),
|
|
|
+ passback_params=urlencode("lang="+lang)
|
|
|
# return_url="http://192.168.136.40/cloudstorage/payOK",
|
|
|
# notify_url="http://192.168.136.40/cloudstorage/aliPayCallback"
|
|
|
)
|
|
@@ -1078,7 +1088,7 @@ class CloudStorageView(View):
|
|
|
# 获取参数
|
|
|
response = ResponseObject()
|
|
|
|
|
|
- parameter_dict = pay.get_parameter(orderID, content, float(price) * 100, ip, notify_url)
|
|
|
+ parameter_dict = pay.get_parameter(orderID, content, float(price) * 100, ip, notify_url, urlencode("lang="+lang))
|
|
|
print('parameter_dict', parameter_dict)
|
|
|
# parameter_dict 参数中获取MWEB_URL 调转页面在路径后面添加redirect_url
|
|
|
# 统一调用接口
|
|
@@ -1109,9 +1119,9 @@ class CloudStorageView(View):
|
|
|
if cdk != None and pay_type == 11:
|
|
|
cdk_qs = CDKcontextModel.objects.filter(cdk=cdk).values('is_activate', 'rank__id', 'rank__commodity_code')
|
|
|
if not cdk_qs.exists():
|
|
|
- return response.json(10, '无效激活码')
|
|
|
+ return response.json(10040)
|
|
|
if cdk_qs[0]['is_activate'] == 1:
|
|
|
- return response.json(10, '激活码已被使用过')
|
|
|
+ return response.json(10039)
|
|
|
rank = cdk_qs[0]['rank__id']
|
|
|
commodity_code = cdk_qs[0]['rank__commodity_code']
|
|
|
|
|
@@ -1320,11 +1330,11 @@ def deleteExpiredUidBucket(request):
|
|
|
return response.json(0)
|
|
|
|
|
|
# 云存操作系统消息
|
|
|
-def do_vod_msg_Notice(request, uid , userID , sys_msg_text_list):
|
|
|
+def do_vod_msg_Notice(request, uid , userID , lang, sys_msg_text_list):
|
|
|
logger = logging.getLogger('log')
|
|
|
logger.info('进来了')
|
|
|
- user = Device_User.objects.get(userID = userID)
|
|
|
- lang = user.language;
|
|
|
+ # user = Device_User.objects.get(userID = userID)
|
|
|
+ # lang = user.language;
|
|
|
if lang == 'cn':
|
|
|
sys_msg_text = sys_msg_text_list[0]
|
|
|
else:
|