2 次代码提交 cac08881c2 ... 8b0333d489

作者 SHA1 备注 提交日期
  mopybird 8b0333d489 trivial 1 年之前
  mopybird 696c4ac222 trivial 1 年之前
共有 2 个文件被更改,包括 58 次插入3 次删除
  1. 56 2
      apps/web/common/views.py
  2. 2 1
      apps/web/helpers.py

+ 56 - 2
apps/web/common/views.py

@@ -33,12 +33,11 @@ from apps.web.common.models import FrontendLog, FAQ
 from apps.web.common.transaction.pay.alipay import AliPayWithdrawNotifier
 from apps.web.common.transaction.pay.alipay import AliPayWithdrawNotifier
 from apps.web.common.utils import WechatMessage, WechatText, WechatMenu, WechatSubscribe, WechatUnSubscribe, \
 from apps.web.common.utils import WechatMessage, WechatText, WechatMenu, WechatSubscribe, WechatUnSubscribe, \
     WechatScanEvent, MessageHandler
     WechatScanEvent, MessageHandler
-from apps.web.constant import Const, AppPlatformType, AdSpace, USER_RECHARGE_TYPE
+from apps.web.constant import Const, AppPlatformType, AdSpace
 from apps.web.core import ROLE
 from apps.web.core import ROLE
 from apps.web.core.exceptions import InvalidFileSize, InvalidFileName
 from apps.web.core.exceptions import InvalidFileSize, InvalidFileName
 from apps.web.core.file import AliOssFileUploader, WechatSubscriptionAccountVerifyFileUploader
 from apps.web.core.file import AliOssFileUploader, WechatSubscriptionAccountVerifyFileUploader
 from apps.web.core.models import WechatPayApp, AliApp, AliUserAgreementSign, AliFundAccountBookApp
 from apps.web.core.models import WechatPayApp, AliApp, AliUserAgreementSign, AliFundAccountBookApp
-
 from apps.web.core.utils import DefaultJsonErrorResponse, JsonOkResponse, JsonErrorResponse
 from apps.web.core.utils import DefaultJsonErrorResponse, JsonOkResponse, JsonErrorResponse
 from apps.web.dealer.models import Dealer
 from apps.web.dealer.models import Dealer
 from apps.web.device.models import Device
 from apps.web.device.models import Device
@@ -1028,3 +1027,58 @@ def saveWechatWithdrawInfo(request):
     else:
     else:
         request.user.set_withdraw_wechat(**payload)
         request.user.set_withdraw_wechat(**payload)
         return JsonOkResponse()
         return JsonOkResponse()
+
+@error_tolerate(nil = DefaultJsonErrorResponse)
+def makeAliUserAgreementSign(request):
+    companyName = request.GET.get('companyName')
+    certNo = request.GET.get('certNo')
+
+    gateway = PlatformPayGatewayUtil.get_ali_isv_pay_gateway()
+
+    signModel = AliUserAgreementSign.issue(
+        cooperAppId = gateway.appid,
+        external_agreement_no = AliUserAgreementSign.makeNo(companyName),
+        external_logon_id = companyName,
+        attach = {
+            'action': 'make_fund_account_book',
+            'certNo': certNo
+        })
+
+    url = gateway.create_transfer_agreement_sign(signModel, notify_url = ALIPAY_NOTIFY_URL)
+    return JsonOkResponse(payload = {
+        'signUrl': url
+    })
+
+
+@error_tolerate(nil = DefaultJsonErrorResponse)
+def queryAliUserAgreementSign(request):
+    externalAgreementNo = request.GET.get('externalAgreementNo')
+
+    isvGateway = PlatformPayGatewayUtil.get_ali_isv_pay_gateway()
+
+    signModel = AliUserAgreementSign.objects(
+        external_agreement_no = externalAgreementNo).first()  # type: AliUserAgreementSign
+    if not signModel:
+        return JsonErrorResponse(description = u'该协议号不存在')
+
+    result = isvGateway.query_transfer_agreement(signModel)
+
+    signModel.agreementNo = result['agreement_no']
+    signModel.save()
+
+    if result['status'] == 'NORMAL' and signModel.attachParas['action'] == 'make_fund_account_book':
+        agreementNo = signModel.agreementNo
+        certNo = signModel.attachParas['certNo']
+
+        if not AliFundAccountBookApp.objects(agreementNo = agreementNo, certNo = certNo).first():
+            bookModel = AliFundAccountBookApp.apply(signModel)
+            create_rv = PlatformPayGatewayUtil.get_ali_isv_pay_gateway().create_fund_accountbook(bookModel)
+
+            bookModel.appid = create_rv['account_book_id']
+
+            card_info = create_rv['ext_card_info']
+            card_info.pop('status')
+            bookModel.cardInfo = card_info
+            bookModel.save()
+
+    return JsonOkResponse(payload = result)

+ 2 - 1
apps/web/helpers.py

@@ -8,6 +8,7 @@ from copy import deepcopy
 from functools import wraps, partial
 from functools import wraps, partial
 
 
 import simplejson as json
 import simplejson as json
+from django.conf import settings
 from django.http import JsonResponse
 from django.http import JsonResponse
 from django.utils.module_loading import import_string
 from django.utils.module_loading import import_string
 from mongoengine.base import BaseField
 from mongoengine.base import BaseField
@@ -42,7 +43,7 @@ if TYPE_CHECKING:
     from apps.web.management.models import Manager
     from apps.web.management.models import Manager
     SourceT = Union[Agent, Dealer, Device, Manager, DeviceDict, WithdrawRecord]
     SourceT = Union[Agent, Dealer, Device, Manager, DeviceDict, WithdrawRecord]
 
 
-    from apps.web.core.models import WechatPayApp, AliApp
+    from apps.web.core.models import WechatPayApp
 
 
     WechatAPP_T = Union[WechatPayApp, WechatManagerApp, WechatAuthApp]
     WechatAPP_T = Union[WechatPayApp, WechatManagerApp, WechatAuthApp]