123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- # coding=utf-8
- import os
- from alipay.aop.api.FileItem import FileItem
- from alipay.aop.api.request.AlipayMerchantIndirectAuthorderCloseRequest import AlipayMerchantIndirectAuthorderCloseRequest
- from alipay.aop.api.request.AlipayMerchantIndirectAuthorderCreateRequest import AlipayMerchantIndirectAuthorderCreateRequest
- from alipay.aop.api.request.AlipayMerchantIndirectAuthorderQuerystatusRequest import AlipayMerchantIndirectAuthorderQuerystatusRequest
- from alipay.aop.api.request.AlipayMerchantIndirectSmidbindQueryRequest import AlipayMerchantIndirectSmidbindQueryRequest
- from alipay.aop.api.request.AntMerchantExpandIndirectImageUploadRequest import AntMerchantExpandIndirectImageUploadRequest
- from alipay.aop.api.response.AlipayMerchantIndirectAuthorderCloseResponse import AlipayMerchantIndirectAuthorderCloseResponse
- from alipay.aop.api.response.AlipayMerchantIndirectAuthorderCreateResponse import AlipayMerchantIndirectAuthorderCreateResponse
- from alipay.aop.api.response.AlipayMerchantIndirectAuthorderQuerystatusResponse import AlipayMerchantIndirectAuthorderQuerystatusResponse
- from alipay.aop.api.response.AlipayMerchantIndirectSmidbindQueryResponse import AlipayMerchantIndirectSmidbindQueryResponse
- from alipay.aop.api.response.AlipayOfflineMaterialImageUploadResponse import AlipayOfflineMaterialImageUploadResponse
- from apps.web.core.bridge.alipay.base import AliApiProxy
- from apps.web.core.file import AliOssFileUploader
- class AliPayAuthorProxy(AliApiProxy):
- def upload_image_from_oss(self, url):
- content = AliOssFileUploader.load(url)
- return self.upload(os.path.basename(url), content)
- def upload(self, imageName, imageContent):
- """
- 上传图片
- """
- _type = imageName.rsplit(".")[-1]
- image = FileItem(file_name=imageName, file_content=imageContent)
- request = AntMerchantExpandIndirectImageUploadRequest()
- request.image_type, request.image_content = _type, image
- response = self.request(request, AlipayOfflineMaterialImageUploadResponse()) # type: AlipayOfflineMaterialImageUploadResponse
- return {
- "media_id": response.image_id
- }
- def query(self, subMerchantId): # type: (str) -> dict
- request = AlipayMerchantIndirectSmidbindQueryRequest()
- request.biz_content = {"sub_merchant_id": subMerchantId}
- response = self.request(request, AlipayMerchantIndirectSmidbindQueryResponse()) # type: AlipayMerchantIndirectSmidbindQueryResponse
- return {
- "checkResult": response.check_result
- }
- def close(self, applyId=None, busCode=None):
- """
- 关闭申请单
- """
- request = AlipayMerchantIndirectAuthorderCloseRequest()
- if applyId:
- request.biz_content = {"order_no": applyId}
- else:
- request.biz_content = {"out_biz_no": busCode}
- response = self.request(request, AlipayMerchantIndirectAuthorderCloseResponse())
- return dict()
- def query_status(self, applyId=None, busCode=None):
- """
- 查询申请状态
- """
- request = AlipayMerchantIndirectAuthorderQuerystatusRequest()
- if applyId:
- request.biz_content = {"order_no": applyId}
- else:
- request.biz_content = {"out_biz_no": busCode}
- response = self.request(request, AlipayMerchantIndirectAuthorderQuerystatusResponse()) # type: AlipayMerchantIndirectAuthorderQuerystatusResponse
- data = {
- "applyId": response.order_no,
- "auditStatus": response.order_status,
- "qrCode": response.qr_code
- }
- if response.verify_list:
- data["errorMsg"] = "{}-{}".format(response.verify_list[0]["fail_param"], response.verify_list[0]["fail_reason"])
- return data
- def create(self, applier):
- request = AlipayMerchantIndirectAuthorderCreateRequest()
- request.biz_content = applier.to_ali_auth()
- response = self.request(request, AlipayMerchantIndirectAuthorderCreateResponse()) # type: AlipayMerchantIndirectAuthorderCreateResponse
- return {
- "applyId": response.order_no,
- "auditStatus": response.order_status
- }
|