|
@@ -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.utils import WechatMessage, WechatText, WechatMenu, WechatSubscribe, WechatUnSubscribe, \
|
|
|
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.exceptions import InvalidFileSize, InvalidFileName
|
|
|
from apps.web.core.file import AliOssFileUploader, WechatSubscriptionAccountVerifyFileUploader
|
|
|
from apps.web.core.models import WechatPayApp, AliApp, AliUserAgreementSign, AliFundAccountBookApp
|
|
|
-
|
|
|
from apps.web.core.utils import DefaultJsonErrorResponse, JsonOkResponse, JsonErrorResponse
|
|
|
from apps.web.dealer.models import Dealer
|
|
|
from apps.web.device.models import Device
|
|
@@ -1028,3 +1027,58 @@ def saveWechatWithdrawInfo(request):
|
|
|
else:
|
|
|
request.user.set_withdraw_wechat(**payload)
|
|
|
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)
|