# -*- coding: utf8 -*-
# Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import warnings

from tencentcloud.common.abstract_model import AbstractModel


class Acct(AbstractModel):
    """账户信息

    """

    def __init__(self):
        r"""
        :param _SubAcctNo: STRING(50)，见证子账户的账号（可重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctNo: str
        :param _SubAcctProperty: STRING(10)，见证子账户的属性（可重复。1: 普通会员子账号; 2: 挂账子账号; 3: 手续费子账号; 4: 利息子账号; 5: 平台担保子账号）
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctProperty: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（可重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type TranNetMemberCode: str
        :param _SubAcctName: STRING(150)，见证子账户的名称（可重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctName: str
        :param _AcctAvailBal: STRING(20)，见证子账户可用余额（可重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type AcctAvailBal: str
        :param _CashAmt: STRING(20)，见证子账户可提现金额（可重复。开户日期或修改日期）
注意：此字段可能返回 null，表示取不到有效值。
        :type CashAmt: str
        :param _MaintenanceDate: STRING(8)，维护日期
注意：此字段可能返回 null，表示取不到有效值。
        :type MaintenanceDate: str
        """
        self._SubAcctNo = None
        self._SubAcctProperty = None
        self._TranNetMemberCode = None
        self._SubAcctName = None
        self._AcctAvailBal = None
        self._CashAmt = None
        self._MaintenanceDate = None

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def SubAcctProperty(self):
        return self._SubAcctProperty

    @SubAcctProperty.setter
    def SubAcctProperty(self, SubAcctProperty):
        self._SubAcctProperty = SubAcctProperty

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def SubAcctName(self):
        return self._SubAcctName

    @SubAcctName.setter
    def SubAcctName(self, SubAcctName):
        self._SubAcctName = SubAcctName

    @property
    def AcctAvailBal(self):
        return self._AcctAvailBal

    @AcctAvailBal.setter
    def AcctAvailBal(self, AcctAvailBal):
        self._AcctAvailBal = AcctAvailBal

    @property
    def CashAmt(self):
        return self._CashAmt

    @CashAmt.setter
    def CashAmt(self, CashAmt):
        self._CashAmt = CashAmt

    @property
    def MaintenanceDate(self):
        return self._MaintenanceDate

    @MaintenanceDate.setter
    def MaintenanceDate(self, MaintenanceDate):
        self._MaintenanceDate = MaintenanceDate


    def _deserialize(self, params):
        self._SubAcctNo = params.get("SubAcctNo")
        self._SubAcctProperty = params.get("SubAcctProperty")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._SubAcctName = params.get("SubAcctName")
        self._AcctAvailBal = params.get("AcctAvailBal")
        self._CashAmt = params.get("CashAmt")
        self._MaintenanceDate = params.get("MaintenanceDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddContractRequest(AbstractModel):
    """AddContract请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutContractId: 机构合同主键（系统有唯一性校验），建议使用合同表的主键ID，防止重复添加合同
        :type OutContractId: str
        :param _Code: 合同编号（系统有唯一性校验）
        :type Code: str
        :param _PaymentId: 支付方式编号
        :type PaymentId: str
        :param _PaymentClassificationId: 支付方式行业分类编号
        :type PaymentClassificationId: str
        :param _PaymentClassificationLimit: 封顶值（分为单位，无封顶填0）
        :type PaymentClassificationLimit: str
        :param _MerchantNo: 商户编号
        :type MerchantNo: str
        :param _Fee: 签约扣率百分比（如：0.32）
        :type Fee: str
        :param _StartDate: 合同生效日期（yyyy-mm-dd）
        :type StartDate: str
        :param _EndDate: 合同过期日期（yyyy-mm-dd）
        :type EndDate: str
        :param _SignMan: 合同签约人
        :type SignMan: str
        :param _SignName: 签购单名称，建议使用商户招牌名称
        :type SignName: str
        :param _SignDate: 合同签署日期（yyyy-mm-dd）
        :type SignDate: str
        :param _AutoSign: 是否自动续签（1是，0否）
        :type AutoSign: str
        :param _Contact: 联系人
        :type Contact: str
        :param _ContactTelephone: 联系人电话
        :type ContactTelephone: str
        :param _PictureOne: 合同照片【私密区】
        :type PictureOne: str
        :param _PictureTwo: 合同照片【私密区】
        :type PictureTwo: str
        :param _ChannelExtJson: 渠道扩展字段，json格式
        :type ChannelExtJson: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        :param _PaymentOptionOne: 合同选项1（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionOne: str
        :param _PaymentOptionTwo: 合同选项2（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionTwo: str
        :param _PaymentOptionThree: 合同选项3（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionThree: str
        :param _PaymentOptionFour: 合同选项4（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionFour: str
        :param _PaymentOptionFive: 合同证书选项1（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionFive: str
        :param _PaymentOptionSix: 合同证书选项2（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionSix: str
        :param _PaymentOptionSeven: 合同选项5（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionSeven: str
        :param _PaymentOptionOther: 合同选项6（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionOther: str
        :param _PaymentOptionTen: 合同选项8
        :type PaymentOptionTen: str
        :param _PaymentOptionNine: 合同选项7（不同支付方式规则不一样，请以支付方式规定的格式传值）
        :type PaymentOptionNine: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutContractId = None
        self._Code = None
        self._PaymentId = None
        self._PaymentClassificationId = None
        self._PaymentClassificationLimit = None
        self._MerchantNo = None
        self._Fee = None
        self._StartDate = None
        self._EndDate = None
        self._SignMan = None
        self._SignName = None
        self._SignDate = None
        self._AutoSign = None
        self._Contact = None
        self._ContactTelephone = None
        self._PictureOne = None
        self._PictureTwo = None
        self._ChannelExtJson = None
        self._Profile = None
        self._PaymentOptionOne = None
        self._PaymentOptionTwo = None
        self._PaymentOptionThree = None
        self._PaymentOptionFour = None
        self._PaymentOptionFive = None
        self._PaymentOptionSix = None
        self._PaymentOptionSeven = None
        self._PaymentOptionOther = None
        self._PaymentOptionTen = None
        self._PaymentOptionNine = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutContractId(self):
        return self._OutContractId

    @OutContractId.setter
    def OutContractId(self, OutContractId):
        self._OutContractId = OutContractId

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def PaymentId(self):
        return self._PaymentId

    @PaymentId.setter
    def PaymentId(self, PaymentId):
        self._PaymentId = PaymentId

    @property
    def PaymentClassificationId(self):
        return self._PaymentClassificationId

    @PaymentClassificationId.setter
    def PaymentClassificationId(self, PaymentClassificationId):
        self._PaymentClassificationId = PaymentClassificationId

    @property
    def PaymentClassificationLimit(self):
        return self._PaymentClassificationLimit

    @PaymentClassificationLimit.setter
    def PaymentClassificationLimit(self, PaymentClassificationLimit):
        self._PaymentClassificationLimit = PaymentClassificationLimit

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Fee(self):
        return self._Fee

    @Fee.setter
    def Fee(self, Fee):
        self._Fee = Fee

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def SignMan(self):
        return self._SignMan

    @SignMan.setter
    def SignMan(self, SignMan):
        self._SignMan = SignMan

    @property
    def SignName(self):
        return self._SignName

    @SignName.setter
    def SignName(self, SignName):
        self._SignName = SignName

    @property
    def SignDate(self):
        return self._SignDate

    @SignDate.setter
    def SignDate(self, SignDate):
        self._SignDate = SignDate

    @property
    def AutoSign(self):
        return self._AutoSign

    @AutoSign.setter
    def AutoSign(self, AutoSign):
        self._AutoSign = AutoSign

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def ContactTelephone(self):
        return self._ContactTelephone

    @ContactTelephone.setter
    def ContactTelephone(self, ContactTelephone):
        self._ContactTelephone = ContactTelephone

    @property
    def PictureOne(self):
        return self._PictureOne

    @PictureOne.setter
    def PictureOne(self, PictureOne):
        self._PictureOne = PictureOne

    @property
    def PictureTwo(self):
        return self._PictureTwo

    @PictureTwo.setter
    def PictureTwo(self, PictureTwo):
        self._PictureTwo = PictureTwo

    @property
    def ChannelExtJson(self):
        return self._ChannelExtJson

    @ChannelExtJson.setter
    def ChannelExtJson(self, ChannelExtJson):
        self._ChannelExtJson = ChannelExtJson

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def PaymentOptionOne(self):
        return self._PaymentOptionOne

    @PaymentOptionOne.setter
    def PaymentOptionOne(self, PaymentOptionOne):
        self._PaymentOptionOne = PaymentOptionOne

    @property
    def PaymentOptionTwo(self):
        return self._PaymentOptionTwo

    @PaymentOptionTwo.setter
    def PaymentOptionTwo(self, PaymentOptionTwo):
        self._PaymentOptionTwo = PaymentOptionTwo

    @property
    def PaymentOptionThree(self):
        return self._PaymentOptionThree

    @PaymentOptionThree.setter
    def PaymentOptionThree(self, PaymentOptionThree):
        self._PaymentOptionThree = PaymentOptionThree

    @property
    def PaymentOptionFour(self):
        return self._PaymentOptionFour

    @PaymentOptionFour.setter
    def PaymentOptionFour(self, PaymentOptionFour):
        self._PaymentOptionFour = PaymentOptionFour

    @property
    def PaymentOptionFive(self):
        return self._PaymentOptionFive

    @PaymentOptionFive.setter
    def PaymentOptionFive(self, PaymentOptionFive):
        self._PaymentOptionFive = PaymentOptionFive

    @property
    def PaymentOptionSix(self):
        return self._PaymentOptionSix

    @PaymentOptionSix.setter
    def PaymentOptionSix(self, PaymentOptionSix):
        self._PaymentOptionSix = PaymentOptionSix

    @property
    def PaymentOptionSeven(self):
        return self._PaymentOptionSeven

    @PaymentOptionSeven.setter
    def PaymentOptionSeven(self, PaymentOptionSeven):
        self._PaymentOptionSeven = PaymentOptionSeven

    @property
    def PaymentOptionOther(self):
        return self._PaymentOptionOther

    @PaymentOptionOther.setter
    def PaymentOptionOther(self, PaymentOptionOther):
        self._PaymentOptionOther = PaymentOptionOther

    @property
    def PaymentOptionTen(self):
        return self._PaymentOptionTen

    @PaymentOptionTen.setter
    def PaymentOptionTen(self, PaymentOptionTen):
        self._PaymentOptionTen = PaymentOptionTen

    @property
    def PaymentOptionNine(self):
        return self._PaymentOptionNine

    @PaymentOptionNine.setter
    def PaymentOptionNine(self, PaymentOptionNine):
        self._PaymentOptionNine = PaymentOptionNine


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutContractId = params.get("OutContractId")
        self._Code = params.get("Code")
        self._PaymentId = params.get("PaymentId")
        self._PaymentClassificationId = params.get("PaymentClassificationId")
        self._PaymentClassificationLimit = params.get("PaymentClassificationLimit")
        self._MerchantNo = params.get("MerchantNo")
        self._Fee = params.get("Fee")
        self._StartDate = params.get("StartDate")
        self._EndDate = params.get("EndDate")
        self._SignMan = params.get("SignMan")
        self._SignName = params.get("SignName")
        self._SignDate = params.get("SignDate")
        self._AutoSign = params.get("AutoSign")
        self._Contact = params.get("Contact")
        self._ContactTelephone = params.get("ContactTelephone")
        self._PictureOne = params.get("PictureOne")
        self._PictureTwo = params.get("PictureTwo")
        self._ChannelExtJson = params.get("ChannelExtJson")
        self._Profile = params.get("Profile")
        self._PaymentOptionOne = params.get("PaymentOptionOne")
        self._PaymentOptionTwo = params.get("PaymentOptionTwo")
        self._PaymentOptionThree = params.get("PaymentOptionThree")
        self._PaymentOptionFour = params.get("PaymentOptionFour")
        self._PaymentOptionFive = params.get("PaymentOptionFive")
        self._PaymentOptionSix = params.get("PaymentOptionSix")
        self._PaymentOptionSeven = params.get("PaymentOptionSeven")
        self._PaymentOptionOther = params.get("PaymentOptionOther")
        self._PaymentOptionTen = params.get("PaymentOptionTen")
        self._PaymentOptionNine = params.get("PaymentOptionNine")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddContractResponse(AbstractModel):
    """AddContract返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 添加合同响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AddContractResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = AddContractResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class AddContractResult(AbstractModel):
    """添加合同响应对象

    """

    def __init__(self):
        r"""
        :param _ContractId: 合同主键
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractId: str
        """
        self._ContractId = None

    @property
    def ContractId(self):
        return self._ContractId

    @ContractId.setter
    def ContractId(self, ContractId):
        self._ContractId = ContractId


    def _deserialize(self, params):
        self._ContractId = params.get("ContractId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddFlexFundingAccountRequest(AbstractModel):
    """AddFlexFundingAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FundingAccountType: 资金账户类型
PINGAN_BANK:平安银行
        :type FundingAccountType: str
        :param _FundingAccountName: 收款资金账户姓名
        :type FundingAccountName: str
        :param _FundingAccountNo: 收款资金账户号
        :type FundingAccountNo: str
        :param _PhoneNo: 收款资金账户手机号
        :type PhoneNo: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _BankBranchName: 开户支行名
        :type BankBranchName: str
        """
        self._FundingAccountType = None
        self._FundingAccountName = None
        self._FundingAccountNo = None
        self._PhoneNo = None
        self._PayeeId = None
        self._Environment = None
        self._BankBranchName = None

    @property
    def FundingAccountType(self):
        return self._FundingAccountType

    @FundingAccountType.setter
    def FundingAccountType(self, FundingAccountType):
        self._FundingAccountType = FundingAccountType

    @property
    def FundingAccountName(self):
        return self._FundingAccountName

    @FundingAccountName.setter
    def FundingAccountName(self, FundingAccountName):
        self._FundingAccountName = FundingAccountName

    @property
    def FundingAccountNo(self):
        return self._FundingAccountNo

    @FundingAccountNo.setter
    def FundingAccountNo(self, FundingAccountNo):
        self._FundingAccountNo = FundingAccountNo

    @property
    def PhoneNo(self):
        return self._PhoneNo

    @PhoneNo.setter
    def PhoneNo(self, PhoneNo):
        self._PhoneNo = PhoneNo

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName


    def _deserialize(self, params):
        self._FundingAccountType = params.get("FundingAccountType")
        self._FundingAccountName = params.get("FundingAccountName")
        self._FundingAccountNo = params.get("FundingAccountNo")
        self._PhoneNo = params.get("PhoneNo")
        self._PayeeId = params.get("PayeeId")
        self._Environment = params.get("Environment")
        self._BankBranchName = params.get("BankBranchName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddFlexFundingAccountResponse(AbstractModel):
    """AddFlexFundingAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 无
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayeeFundingAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PayeeFundingAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class AddFlexIdInfoRequest(AbstractModel):
    """AddFlexIdInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IdType: 证件类型
0:身份证
1:社会信用代码
        :type IdType: int
        :param _IdNo: 证件号
        :type IdNo: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _Name: 姓名
        :type Name: str
        """
        self._IdType = None
        self._IdNo = None
        self._PayeeId = None
        self._Environment = None
        self._Name = None

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._IdType = params.get("IdType")
        self._IdNo = params.get("IdNo")
        self._PayeeId = params.get("PayeeId")
        self._Environment = params.get("Environment")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddFlexIdInfoResponse(AbstractModel):
    """AddFlexIdInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 无
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class AddFlexPhoneNoRequest(AbstractModel):
    """AddFlexPhoneNo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PhoneNo: 手机号
        :type PhoneNo: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PhoneNo = None
        self._PayeeId = None
        self._Environment = None

    @property
    def PhoneNo(self):
        return self._PhoneNo

    @PhoneNo.setter
    def PhoneNo(self, PhoneNo):
        self._PhoneNo = PhoneNo

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PhoneNo = params.get("PhoneNo")
        self._PayeeId = params.get("PayeeId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddFlexPhoneNoResponse(AbstractModel):
    """AddFlexPhoneNo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 无
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class AddMerchantRequest(AbstractModel):
    """AddMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutMerchantId: 机构商户主键（系统有唯一性校验），建议使用商户表的主键ID，防止重复添加商户
        :type OutMerchantId: str
        :param _MerchantName: 商户名称，小微商户命名要符合“”商户_名字” （例如：商户_张三）
        :type MerchantName: str
        :param _BusinessLicenseType: 营业执照类型（1三证合一，2非三证合一）
        :type BusinessLicenseType: str
        :param _BusinessLicenseNo: 营业执照编号（系统有唯一性校验），（小微商户不效验，随意传要有值，公司/个体户必传）
        :type BusinessLicenseNo: str
        :param _BusinessLicensePicture: 营业执照图片【私密区】（系统返回的图片路径），（小微商户不效验，随意传要有值，公司/个体户必传）
        :type BusinessLicensePicture: str
        :param _BusinessLicenseStartDate: 营业执照生效时间（yyyy-mm-dd），（小微商户不效验，随意传要有值，公司/个体户必传）
        :type BusinessLicenseStartDate: str
        :param _BusinessLicenseEndDate: 营业执照过期时间（yyyy-mm-dd），（小微商户不效验，随意传要有值，公司/个体户必传）
        :type BusinessLicenseEndDate: str
        :param _ClassificationIds: 行业分类编号列表（第一个分类编号为主分类，后面的为二级分类）
        :type ClassificationIds: list of str
        :param _BrandName: 招牌名称
        :type BrandName: str
        :param _Telephone: 联系电话
        :type Telephone: str
        :param _CityId: 城市编号
        :type CityId: str
        :param _Address: 详细地址，不含省市区县名称，长度需要大于5。
        :type Address: str
        :param _OpenHours: 营业时间，多个以小写逗号分开(9:00-12:00,13:00-18:00)
        :type OpenHours: str
        :param _AccountType: 结算账户类型（2对私，1对公）
        :type AccountType: str
        :param _BankNo: 清算联行号，开户行行号
        :type BankNo: str
        :param _BankName: 开户行名称
        :type BankName: str
        :param _AccountNo: 银行账号
        :type AccountNo: str
        :param _AccountName: 银行户名
        :type AccountName: str
        :param _BossIdType: 法人证件类型（1居民身份证,2临时居民身份证,3居民户口簿,4护照,5港澳居民来往内地通行证,6回乡证,7军人证,8武警身份证,9其他法定文件）
        :type BossIdType: str
        :param _BossIdNo: 法人证件号码
        :type BossIdNo: str
        :param _BossName: 法人姓名
        :type BossName: str
        :param _BossSex: 法人性别（1男，2女）
        :type BossSex: str
        :param _BossIdCountry: 法人证件国别/地区（中国CHN，香港HKG，澳门MAC，台湾CTN）
        :type BossIdCountry: str
        :param _BossPositive: 法人身份证正面【私密区】（系统返回的图片路径）
        :type BossPositive: str
        :param _BossBack: 法人身份证背面【私密区】（系统返回的图片路径）
        :type BossBack: str
        :param _BossStartDate: 法人证件生效时间（yyyy-mm-dd）
        :type BossStartDate: str
        :param _BossEndDate: 法人证件过期时间（yyyy-mm-dd）
        :type BossEndDate: str
        :param _LicencePicture: 许可证图片【私密区】，（小微商户不效验，随意传要有值，公司/个体户必传）
        :type LicencePicture: str
        :param _Type: 商户类型：1-个体，2-小微，3-企业。不传默认为2-小微商户。
        :type Type: str
        :param _OrganizationNo: 组织机构代码证号
        :type OrganizationNo: str
        :param _OrganizationStartDate: 组织机构代码证生效时间（yyyy-mm-dd）
        :type OrganizationStartDate: str
        :param _OrganizationPicture: 组织机构代码证图片【私密区】
        :type OrganizationPicture: str
        :param _OrganizationEndDate: 组织机构代码证过期时间（yyyy-mm-dd）
        :type OrganizationEndDate: str
        :param _Intro: 商户简介
        :type Intro: str
        :param _Logo: 商户logo【公共区】
        :type Logo: str
        :param _Tag: 商户标记，自定义参数
        :type Tag: str
        :param _FinancialTelephone: 财务联系人电话
        :type FinancialTelephone: str
        :param _FinancialContact: 财务联系人
        :type FinancialContact: str
        :param _TaxRegistrationNo: 税务登记证号
        :type TaxRegistrationNo: str
        :param _TaxRegistrationPicture: 税务登记证图片【私密区】
        :type TaxRegistrationPicture: str
        :param _TaxRegistrationStartDate: 税务登记证生效时间（yyyy-mm-dd）
        :type TaxRegistrationStartDate: str
        :param _TaxRegistrationEndDate: 税务登记证过期时间（yyyy-mm-dd）
        :type TaxRegistrationEndDate: str
        :param _AccountBoss: 结算账户人身份（1法人，2法人亲属），结算帐户为对私时必填
        :type AccountBoss: str
        :param _AccountManagerName: 客户经理姓名，必须为系统后台的管理员真实姓名
        :type AccountManagerName: str
        :param _BossTelephone: 法人电话
        :type BossTelephone: str
        :param _BossJob: 法人职业
        :type BossJob: str
        :param _BossEmail: 法人邮箱
        :type BossEmail: str
        :param _BossAddress: 法人住址
        :type BossAddress: str
        :param _AccountIdType: 法人亲属证件类型（1居民身份证,2临时居民身份证,3居民户口簿,4护照,5港澳居民来往内地通行证,6回乡证,7军人证,8武警身份证,9其他法定文件）结算账户人身份为法人亲属时必填
        :type AccountIdType: str
        :param _AccountIdNo: 法人亲属证件号码
        :type AccountIdNo: str
        :param _LicencePictureTwo: 授权文件【私密区】
        :type LicencePictureTwo: str
        :param _OtherPictureOne: 其他资料1
        :type OtherPictureOne: str
        :param _OtherPictureTwo: 其他资料2
        :type OtherPictureTwo: str
        :param _OtherPictureThree: 其他资料3
        :type OtherPictureThree: str
        :param _OtherPictureFour: 其他资料4
        :type OtherPictureFour: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutMerchantId = None
        self._MerchantName = None
        self._BusinessLicenseType = None
        self._BusinessLicenseNo = None
        self._BusinessLicensePicture = None
        self._BusinessLicenseStartDate = None
        self._BusinessLicenseEndDate = None
        self._ClassificationIds = None
        self._BrandName = None
        self._Telephone = None
        self._CityId = None
        self._Address = None
        self._OpenHours = None
        self._AccountType = None
        self._BankNo = None
        self._BankName = None
        self._AccountNo = None
        self._AccountName = None
        self._BossIdType = None
        self._BossIdNo = None
        self._BossName = None
        self._BossSex = None
        self._BossIdCountry = None
        self._BossPositive = None
        self._BossBack = None
        self._BossStartDate = None
        self._BossEndDate = None
        self._LicencePicture = None
        self._Type = None
        self._OrganizationNo = None
        self._OrganizationStartDate = None
        self._OrganizationPicture = None
        self._OrganizationEndDate = None
        self._Intro = None
        self._Logo = None
        self._Tag = None
        self._FinancialTelephone = None
        self._FinancialContact = None
        self._TaxRegistrationNo = None
        self._TaxRegistrationPicture = None
        self._TaxRegistrationStartDate = None
        self._TaxRegistrationEndDate = None
        self._AccountBoss = None
        self._AccountManagerName = None
        self._BossTelephone = None
        self._BossJob = None
        self._BossEmail = None
        self._BossAddress = None
        self._AccountIdType = None
        self._AccountIdNo = None
        self._LicencePictureTwo = None
        self._OtherPictureOne = None
        self._OtherPictureTwo = None
        self._OtherPictureThree = None
        self._OtherPictureFour = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutMerchantId(self):
        return self._OutMerchantId

    @OutMerchantId.setter
    def OutMerchantId(self, OutMerchantId):
        self._OutMerchantId = OutMerchantId

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def BusinessLicenseType(self):
        return self._BusinessLicenseType

    @BusinessLicenseType.setter
    def BusinessLicenseType(self, BusinessLicenseType):
        self._BusinessLicenseType = BusinessLicenseType

    @property
    def BusinessLicenseNo(self):
        return self._BusinessLicenseNo

    @BusinessLicenseNo.setter
    def BusinessLicenseNo(self, BusinessLicenseNo):
        self._BusinessLicenseNo = BusinessLicenseNo

    @property
    def BusinessLicensePicture(self):
        return self._BusinessLicensePicture

    @BusinessLicensePicture.setter
    def BusinessLicensePicture(self, BusinessLicensePicture):
        self._BusinessLicensePicture = BusinessLicensePicture

    @property
    def BusinessLicenseStartDate(self):
        return self._BusinessLicenseStartDate

    @BusinessLicenseStartDate.setter
    def BusinessLicenseStartDate(self, BusinessLicenseStartDate):
        self._BusinessLicenseStartDate = BusinessLicenseStartDate

    @property
    def BusinessLicenseEndDate(self):
        return self._BusinessLicenseEndDate

    @BusinessLicenseEndDate.setter
    def BusinessLicenseEndDate(self, BusinessLicenseEndDate):
        self._BusinessLicenseEndDate = BusinessLicenseEndDate

    @property
    def ClassificationIds(self):
        return self._ClassificationIds

    @ClassificationIds.setter
    def ClassificationIds(self, ClassificationIds):
        self._ClassificationIds = ClassificationIds

    @property
    def BrandName(self):
        return self._BrandName

    @BrandName.setter
    def BrandName(self, BrandName):
        self._BrandName = BrandName

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def OpenHours(self):
        return self._OpenHours

    @OpenHours.setter
    def OpenHours(self, OpenHours):
        self._OpenHours = OpenHours

    @property
    def AccountType(self):
        return self._AccountType

    @AccountType.setter
    def AccountType(self, AccountType):
        self._AccountType = AccountType

    @property
    def BankNo(self):
        return self._BankNo

    @BankNo.setter
    def BankNo(self, BankNo):
        self._BankNo = BankNo

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def BossIdType(self):
        return self._BossIdType

    @BossIdType.setter
    def BossIdType(self, BossIdType):
        self._BossIdType = BossIdType

    @property
    def BossIdNo(self):
        return self._BossIdNo

    @BossIdNo.setter
    def BossIdNo(self, BossIdNo):
        self._BossIdNo = BossIdNo

    @property
    def BossName(self):
        return self._BossName

    @BossName.setter
    def BossName(self, BossName):
        self._BossName = BossName

    @property
    def BossSex(self):
        return self._BossSex

    @BossSex.setter
    def BossSex(self, BossSex):
        self._BossSex = BossSex

    @property
    def BossIdCountry(self):
        return self._BossIdCountry

    @BossIdCountry.setter
    def BossIdCountry(self, BossIdCountry):
        self._BossIdCountry = BossIdCountry

    @property
    def BossPositive(self):
        return self._BossPositive

    @BossPositive.setter
    def BossPositive(self, BossPositive):
        self._BossPositive = BossPositive

    @property
    def BossBack(self):
        return self._BossBack

    @BossBack.setter
    def BossBack(self, BossBack):
        self._BossBack = BossBack

    @property
    def BossStartDate(self):
        return self._BossStartDate

    @BossStartDate.setter
    def BossStartDate(self, BossStartDate):
        self._BossStartDate = BossStartDate

    @property
    def BossEndDate(self):
        return self._BossEndDate

    @BossEndDate.setter
    def BossEndDate(self, BossEndDate):
        self._BossEndDate = BossEndDate

    @property
    def LicencePicture(self):
        return self._LicencePicture

    @LicencePicture.setter
    def LicencePicture(self, LicencePicture):
        self._LicencePicture = LicencePicture

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def OrganizationNo(self):
        return self._OrganizationNo

    @OrganizationNo.setter
    def OrganizationNo(self, OrganizationNo):
        self._OrganizationNo = OrganizationNo

    @property
    def OrganizationStartDate(self):
        return self._OrganizationStartDate

    @OrganizationStartDate.setter
    def OrganizationStartDate(self, OrganizationStartDate):
        self._OrganizationStartDate = OrganizationStartDate

    @property
    def OrganizationPicture(self):
        return self._OrganizationPicture

    @OrganizationPicture.setter
    def OrganizationPicture(self, OrganizationPicture):
        self._OrganizationPicture = OrganizationPicture

    @property
    def OrganizationEndDate(self):
        return self._OrganizationEndDate

    @OrganizationEndDate.setter
    def OrganizationEndDate(self, OrganizationEndDate):
        self._OrganizationEndDate = OrganizationEndDate

    @property
    def Intro(self):
        return self._Intro

    @Intro.setter
    def Intro(self, Intro):
        self._Intro = Intro

    @property
    def Logo(self):
        return self._Logo

    @Logo.setter
    def Logo(self, Logo):
        self._Logo = Logo

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def FinancialTelephone(self):
        return self._FinancialTelephone

    @FinancialTelephone.setter
    def FinancialTelephone(self, FinancialTelephone):
        self._FinancialTelephone = FinancialTelephone

    @property
    def FinancialContact(self):
        return self._FinancialContact

    @FinancialContact.setter
    def FinancialContact(self, FinancialContact):
        self._FinancialContact = FinancialContact

    @property
    def TaxRegistrationNo(self):
        return self._TaxRegistrationNo

    @TaxRegistrationNo.setter
    def TaxRegistrationNo(self, TaxRegistrationNo):
        self._TaxRegistrationNo = TaxRegistrationNo

    @property
    def TaxRegistrationPicture(self):
        return self._TaxRegistrationPicture

    @TaxRegistrationPicture.setter
    def TaxRegistrationPicture(self, TaxRegistrationPicture):
        self._TaxRegistrationPicture = TaxRegistrationPicture

    @property
    def TaxRegistrationStartDate(self):
        return self._TaxRegistrationStartDate

    @TaxRegistrationStartDate.setter
    def TaxRegistrationStartDate(self, TaxRegistrationStartDate):
        self._TaxRegistrationStartDate = TaxRegistrationStartDate

    @property
    def TaxRegistrationEndDate(self):
        return self._TaxRegistrationEndDate

    @TaxRegistrationEndDate.setter
    def TaxRegistrationEndDate(self, TaxRegistrationEndDate):
        self._TaxRegistrationEndDate = TaxRegistrationEndDate

    @property
    def AccountBoss(self):
        return self._AccountBoss

    @AccountBoss.setter
    def AccountBoss(self, AccountBoss):
        self._AccountBoss = AccountBoss

    @property
    def AccountManagerName(self):
        return self._AccountManagerName

    @AccountManagerName.setter
    def AccountManagerName(self, AccountManagerName):
        self._AccountManagerName = AccountManagerName

    @property
    def BossTelephone(self):
        return self._BossTelephone

    @BossTelephone.setter
    def BossTelephone(self, BossTelephone):
        self._BossTelephone = BossTelephone

    @property
    def BossJob(self):
        return self._BossJob

    @BossJob.setter
    def BossJob(self, BossJob):
        self._BossJob = BossJob

    @property
    def BossEmail(self):
        return self._BossEmail

    @BossEmail.setter
    def BossEmail(self, BossEmail):
        self._BossEmail = BossEmail

    @property
    def BossAddress(self):
        return self._BossAddress

    @BossAddress.setter
    def BossAddress(self, BossAddress):
        self._BossAddress = BossAddress

    @property
    def AccountIdType(self):
        return self._AccountIdType

    @AccountIdType.setter
    def AccountIdType(self, AccountIdType):
        self._AccountIdType = AccountIdType

    @property
    def AccountIdNo(self):
        return self._AccountIdNo

    @AccountIdNo.setter
    def AccountIdNo(self, AccountIdNo):
        self._AccountIdNo = AccountIdNo

    @property
    def LicencePictureTwo(self):
        return self._LicencePictureTwo

    @LicencePictureTwo.setter
    def LicencePictureTwo(self, LicencePictureTwo):
        self._LicencePictureTwo = LicencePictureTwo

    @property
    def OtherPictureOne(self):
        return self._OtherPictureOne

    @OtherPictureOne.setter
    def OtherPictureOne(self, OtherPictureOne):
        self._OtherPictureOne = OtherPictureOne

    @property
    def OtherPictureTwo(self):
        return self._OtherPictureTwo

    @OtherPictureTwo.setter
    def OtherPictureTwo(self, OtherPictureTwo):
        self._OtherPictureTwo = OtherPictureTwo

    @property
    def OtherPictureThree(self):
        return self._OtherPictureThree

    @OtherPictureThree.setter
    def OtherPictureThree(self, OtherPictureThree):
        self._OtherPictureThree = OtherPictureThree

    @property
    def OtherPictureFour(self):
        return self._OtherPictureFour

    @OtherPictureFour.setter
    def OtherPictureFour(self, OtherPictureFour):
        self._OtherPictureFour = OtherPictureFour

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutMerchantId = params.get("OutMerchantId")
        self._MerchantName = params.get("MerchantName")
        self._BusinessLicenseType = params.get("BusinessLicenseType")
        self._BusinessLicenseNo = params.get("BusinessLicenseNo")
        self._BusinessLicensePicture = params.get("BusinessLicensePicture")
        self._BusinessLicenseStartDate = params.get("BusinessLicenseStartDate")
        self._BusinessLicenseEndDate = params.get("BusinessLicenseEndDate")
        self._ClassificationIds = params.get("ClassificationIds")
        self._BrandName = params.get("BrandName")
        self._Telephone = params.get("Telephone")
        self._CityId = params.get("CityId")
        self._Address = params.get("Address")
        self._OpenHours = params.get("OpenHours")
        self._AccountType = params.get("AccountType")
        self._BankNo = params.get("BankNo")
        self._BankName = params.get("BankName")
        self._AccountNo = params.get("AccountNo")
        self._AccountName = params.get("AccountName")
        self._BossIdType = params.get("BossIdType")
        self._BossIdNo = params.get("BossIdNo")
        self._BossName = params.get("BossName")
        self._BossSex = params.get("BossSex")
        self._BossIdCountry = params.get("BossIdCountry")
        self._BossPositive = params.get("BossPositive")
        self._BossBack = params.get("BossBack")
        self._BossStartDate = params.get("BossStartDate")
        self._BossEndDate = params.get("BossEndDate")
        self._LicencePicture = params.get("LicencePicture")
        self._Type = params.get("Type")
        self._OrganizationNo = params.get("OrganizationNo")
        self._OrganizationStartDate = params.get("OrganizationStartDate")
        self._OrganizationPicture = params.get("OrganizationPicture")
        self._OrganizationEndDate = params.get("OrganizationEndDate")
        self._Intro = params.get("Intro")
        self._Logo = params.get("Logo")
        self._Tag = params.get("Tag")
        self._FinancialTelephone = params.get("FinancialTelephone")
        self._FinancialContact = params.get("FinancialContact")
        self._TaxRegistrationNo = params.get("TaxRegistrationNo")
        self._TaxRegistrationPicture = params.get("TaxRegistrationPicture")
        self._TaxRegistrationStartDate = params.get("TaxRegistrationStartDate")
        self._TaxRegistrationEndDate = params.get("TaxRegistrationEndDate")
        self._AccountBoss = params.get("AccountBoss")
        self._AccountManagerName = params.get("AccountManagerName")
        self._BossTelephone = params.get("BossTelephone")
        self._BossJob = params.get("BossJob")
        self._BossEmail = params.get("BossEmail")
        self._BossAddress = params.get("BossAddress")
        self._AccountIdType = params.get("AccountIdType")
        self._AccountIdNo = params.get("AccountIdNo")
        self._LicencePictureTwo = params.get("LicencePictureTwo")
        self._OtherPictureOne = params.get("OtherPictureOne")
        self._OtherPictureTwo = params.get("OtherPictureTwo")
        self._OtherPictureThree = params.get("OtherPictureThree")
        self._OtherPictureFour = params.get("OtherPictureFour")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddMerchantResponse(AbstractModel):
    """AddMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _Result: 添加商户响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AddMerchantResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = AddMerchantResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class AddMerchantResult(AbstractModel):
    """添加商户响应对象

    """

    def __init__(self):
        r"""
        :param _MerchantNo: 系统商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        """
        self._MerchantNo = None

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo


    def _deserialize(self, params):
        self._MerchantNo = params.get("MerchantNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddShopRequest(AbstractModel):
    """AddShop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutShopId: 机构门店主键（系统有唯一性校验），建议使用门店表的主键ID，防止重复添加门店
        :type OutShopId: str
        :param _ShopName: 门店简称（例如：南山店）
        :type ShopName: str
        :param _ShopFullName: 门店全称（例如：江山小厨（南山店））
        :type ShopFullName: str
        :param _MerchantNo: 商户编号
        :type MerchantNo: str
        :param _Telephone: 门店电话
        :type Telephone: str
        :param _OpenHours: 营业时间，多个以小写逗号分开(9:00-12:00,13:00-18:00)
        :type OpenHours: str
        :param _CityId: 门店所在的城市编码
        :type CityId: str
        :param _Address: 门店详细地址，不含省市区县名称
        :type Address: str
        :param _PictureOne: 整体门面（含招牌）图片【公共区】
        :type PictureOne: str
        :param _PictureTwo: 整体门面（含招牌）图片【公共区】
        :type PictureTwo: str
        :param _PictureThree: 店内环境图片【公共区】
        :type PictureThree: str
        :param _FinancialTelephone: 负责人手机号码
        :type FinancialTelephone: str
        :param _Contact: 门店负责人
        :type Contact: str
        :param _Latitude: 百度地图纬度
        :type Latitude: str
        :param _LatitudeTwo: 高德地图纬度
        :type LatitudeTwo: str
        :param _Longitude: 百度地图经度
        :type Longitude: str
        :param _LongitudeTwo: 高德地图经度
        :type LongitudeTwo: str
        :param _OtherPicture: 其他照片【公共区】
        :type OtherPicture: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutShopId = None
        self._ShopName = None
        self._ShopFullName = None
        self._MerchantNo = None
        self._Telephone = None
        self._OpenHours = None
        self._CityId = None
        self._Address = None
        self._PictureOne = None
        self._PictureTwo = None
        self._PictureThree = None
        self._FinancialTelephone = None
        self._Contact = None
        self._Latitude = None
        self._LatitudeTwo = None
        self._Longitude = None
        self._LongitudeTwo = None
        self._OtherPicture = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutShopId(self):
        return self._OutShopId

    @OutShopId.setter
    def OutShopId(self, OutShopId):
        self._OutShopId = OutShopId

    @property
    def ShopName(self):
        return self._ShopName

    @ShopName.setter
    def ShopName(self, ShopName):
        self._ShopName = ShopName

    @property
    def ShopFullName(self):
        return self._ShopFullName

    @ShopFullName.setter
    def ShopFullName(self, ShopFullName):
        self._ShopFullName = ShopFullName

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def OpenHours(self):
        return self._OpenHours

    @OpenHours.setter
    def OpenHours(self, OpenHours):
        self._OpenHours = OpenHours

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def PictureOne(self):
        return self._PictureOne

    @PictureOne.setter
    def PictureOne(self, PictureOne):
        self._PictureOne = PictureOne

    @property
    def PictureTwo(self):
        return self._PictureTwo

    @PictureTwo.setter
    def PictureTwo(self, PictureTwo):
        self._PictureTwo = PictureTwo

    @property
    def PictureThree(self):
        return self._PictureThree

    @PictureThree.setter
    def PictureThree(self, PictureThree):
        self._PictureThree = PictureThree

    @property
    def FinancialTelephone(self):
        return self._FinancialTelephone

    @FinancialTelephone.setter
    def FinancialTelephone(self, FinancialTelephone):
        self._FinancialTelephone = FinancialTelephone

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def Latitude(self):
        return self._Latitude

    @Latitude.setter
    def Latitude(self, Latitude):
        self._Latitude = Latitude

    @property
    def LatitudeTwo(self):
        return self._LatitudeTwo

    @LatitudeTwo.setter
    def LatitudeTwo(self, LatitudeTwo):
        self._LatitudeTwo = LatitudeTwo

    @property
    def Longitude(self):
        return self._Longitude

    @Longitude.setter
    def Longitude(self, Longitude):
        self._Longitude = Longitude

    @property
    def LongitudeTwo(self):
        return self._LongitudeTwo

    @LongitudeTwo.setter
    def LongitudeTwo(self, LongitudeTwo):
        self._LongitudeTwo = LongitudeTwo

    @property
    def OtherPicture(self):
        return self._OtherPicture

    @OtherPicture.setter
    def OtherPicture(self, OtherPicture):
        self._OtherPicture = OtherPicture

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutShopId = params.get("OutShopId")
        self._ShopName = params.get("ShopName")
        self._ShopFullName = params.get("ShopFullName")
        self._MerchantNo = params.get("MerchantNo")
        self._Telephone = params.get("Telephone")
        self._OpenHours = params.get("OpenHours")
        self._CityId = params.get("CityId")
        self._Address = params.get("Address")
        self._PictureOne = params.get("PictureOne")
        self._PictureTwo = params.get("PictureTwo")
        self._PictureThree = params.get("PictureThree")
        self._FinancialTelephone = params.get("FinancialTelephone")
        self._Contact = params.get("Contact")
        self._Latitude = params.get("Latitude")
        self._LatitudeTwo = params.get("LatitudeTwo")
        self._Longitude = params.get("Longitude")
        self._LongitudeTwo = params.get("LongitudeTwo")
        self._OtherPicture = params.get("OtherPicture")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AddShopResponse(AbstractModel):
    """AddShop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 添加申请响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AddShopResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = AddShopResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class AddShopResult(AbstractModel):
    """添加门店响应对象

    """

    def __init__(self):
        r"""
        :param _ShopNo: 门店编号
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopNo: str
        """
        self._ShopNo = None

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo


    def _deserialize(self, params):
        self._ShopNo = params.get("ShopNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AgencyClientInfo(AbstractModel):
    """经办人信息

    """

    def __init__(self):
        r"""
        :param _AgencyClientName: 经办人姓名，存在经办人必输
        :type AgencyClientName: str
        :param _AgencyClientGlobalType: 经办人证件类型，存在经办人必输
        :type AgencyClientGlobalType: str
        :param _AgencyClientGlobalId: 经办人证件号，存在经办人必输
        :type AgencyClientGlobalId: str
        :param _AgencyClientMobile: 经办人手机号，存在经办人必输
        :type AgencyClientMobile: str
        """
        self._AgencyClientName = None
        self._AgencyClientGlobalType = None
        self._AgencyClientGlobalId = None
        self._AgencyClientMobile = None

    @property
    def AgencyClientName(self):
        return self._AgencyClientName

    @AgencyClientName.setter
    def AgencyClientName(self, AgencyClientName):
        self._AgencyClientName = AgencyClientName

    @property
    def AgencyClientGlobalType(self):
        return self._AgencyClientGlobalType

    @AgencyClientGlobalType.setter
    def AgencyClientGlobalType(self, AgencyClientGlobalType):
        self._AgencyClientGlobalType = AgencyClientGlobalType

    @property
    def AgencyClientGlobalId(self):
        return self._AgencyClientGlobalId

    @AgencyClientGlobalId.setter
    def AgencyClientGlobalId(self, AgencyClientGlobalId):
        self._AgencyClientGlobalId = AgencyClientGlobalId

    @property
    def AgencyClientMobile(self):
        return self._AgencyClientMobile

    @AgencyClientMobile.setter
    def AgencyClientMobile(self, AgencyClientMobile):
        self._AgencyClientMobile = AgencyClientMobile


    def _deserialize(self, params):
        self._AgencyClientName = params.get("AgencyClientName")
        self._AgencyClientGlobalType = params.get("AgencyClientGlobalType")
        self._AgencyClientGlobalId = params.get("AgencyClientGlobalId")
        self._AgencyClientMobile = params.get("AgencyClientMobile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AgentTaxPayment(AbstractModel):
    """代理商完税证明

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播银行账号
        :type AnchorId: str
        :param _AnchorName: 主播姓名
        :type AnchorName: str
        :param _AnchorIDCard: 主播身份证
        :type AnchorIDCard: str
        :param _StartTime: 纳税的开始时间，格式yyyy-MM-dd
        :type StartTime: str
        :param _EndTime: 纳税的结束时间，格式yyyy-MM-dd
        :type EndTime: str
        :param _Amount: 流水金额。以“分”为单位
        :type Amount: int
        :param _Tax: 应缴税款。以“分”为单位
        :type Tax: int
        """
        self._AnchorId = None
        self._AnchorName = None
        self._AnchorIDCard = None
        self._StartTime = None
        self._EndTime = None
        self._Amount = None
        self._Tax = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def AnchorIDCard(self):
        return self._AnchorIDCard

    @AnchorIDCard.setter
    def AnchorIDCard(self, AnchorIDCard):
        self._AnchorIDCard = AnchorIDCard

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def Tax(self):
        return self._Tax

    @Tax.setter
    def Tax(self, Tax):
        self._Tax = Tax


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._AnchorName = params.get("AnchorName")
        self._AnchorIDCard = params.get("AnchorIDCard")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._Amount = params.get("Amount")
        self._Tax = params.get("Tax")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AgentTaxPaymentBatch(AbstractModel):
    """代理商完税证明批次信息

    """

    def __init__(self):
        r"""
        :param _StatusMsg: 状态消息
        :type StatusMsg: str
        :param _BatchNum: 批次号
        :type BatchNum: int
        :param _InfoNum: 录入记录的条数
        :type InfoNum: int
        :param _RawElectronicCertUrl: 源电子凭证下载地址
        :type RawElectronicCertUrl: str
        :param _AgentId: 代理商账号
        :type AgentId: str
        :param _FileName: 文件名
        :type FileName: str
        :param _StatusCode: 状态码。0表示下载成功
        :type StatusCode: int
        :param _Channel: 渠道号
        :type Channel: int
        :param _Type: 0-视同，1-个体工商户
        :type Type: int
        """
        self._StatusMsg = None
        self._BatchNum = None
        self._InfoNum = None
        self._RawElectronicCertUrl = None
        self._AgentId = None
        self._FileName = None
        self._StatusCode = None
        self._Channel = None
        self._Type = None

    @property
    def StatusMsg(self):
        return self._StatusMsg

    @StatusMsg.setter
    def StatusMsg(self, StatusMsg):
        self._StatusMsg = StatusMsg

    @property
    def BatchNum(self):
        return self._BatchNum

    @BatchNum.setter
    def BatchNum(self, BatchNum):
        self._BatchNum = BatchNum

    @property
    def InfoNum(self):
        return self._InfoNum

    @InfoNum.setter
    def InfoNum(self, InfoNum):
        self._InfoNum = InfoNum

    @property
    def RawElectronicCertUrl(self):
        return self._RawElectronicCertUrl

    @RawElectronicCertUrl.setter
    def RawElectronicCertUrl(self, RawElectronicCertUrl):
        self._RawElectronicCertUrl = RawElectronicCertUrl

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def StatusCode(self):
        return self._StatusCode

    @StatusCode.setter
    def StatusCode(self, StatusCode):
        self._StatusCode = StatusCode

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._StatusMsg = params.get("StatusMsg")
        self._BatchNum = params.get("BatchNum")
        self._InfoNum = params.get("InfoNum")
        self._RawElectronicCertUrl = params.get("RawElectronicCertUrl")
        self._AgentId = params.get("AgentId")
        self._FileName = params.get("FileName")
        self._StatusCode = params.get("StatusCode")
        self._Channel = params.get("Channel")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AmountBeforeTaxResult(AbstractModel):
    """税前金额结果

    """

    def __init__(self):
        r"""
        :param _AmountBeforeTax: 税前金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AmountBeforeTax: str
        :param _AmountBeforeTaxWithTwoDigitPrecision: 两位精度税前金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AmountBeforeTaxWithTwoDigitPrecision: str
        """
        self._AmountBeforeTax = None
        self._AmountBeforeTaxWithTwoDigitPrecision = None

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def AmountBeforeTaxWithTwoDigitPrecision(self):
        return self._AmountBeforeTaxWithTwoDigitPrecision

    @AmountBeforeTaxWithTwoDigitPrecision.setter
    def AmountBeforeTaxWithTwoDigitPrecision(self, AmountBeforeTaxWithTwoDigitPrecision):
        self._AmountBeforeTaxWithTwoDigitPrecision = AmountBeforeTaxWithTwoDigitPrecision


    def _deserialize(self, params):
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._AmountBeforeTaxWithTwoDigitPrecision = params.get("AmountBeforeTaxWithTwoDigitPrecision")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AnchorContractInfo(AbstractModel):
    """主播签约信息

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播ID
        :type AnchorId: str
        :param _AnchorName: 主播名称
        :type AnchorName: str
        :param _AgentId: 代理商ID
        :type AgentId: str
        :param _AgentName: 代理商名称
        :type AgentName: str
        :param _IdNo: 主播身份证号
        :type IdNo: str
        """
        self._AnchorId = None
        self._AnchorName = None
        self._AgentId = None
        self._AgentName = None
        self._IdNo = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._AnchorName = params.get("AnchorName")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        self._IdNo = params.get("IdNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class AnchorExtendInfo(AbstractModel):
    """主播扩展信息

    """

    def __init__(self):
        r"""
        :param _Type: 扩展信息类型
__id_card_no__:身份证号码
__id_card_name__:身份证姓名
__id_card_front__:身份证图片正面
__id_card_back__:身份证图片反面
__tax_type__:完税类型:0-自然人,1-个体工商户
__channel_account__:渠道账号(_敏感信息_ 使用 __AES128-CBC-PKCS#7__ 加密)
        :type Type: str
        :param _Value: 扩展信息
        :type Value: str
        """
        self._Type = None
        self._Value = None

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def Value(self):
        return self._Value

    @Value.setter
    def Value(self, Value):
        self._Value = Value


    def _deserialize(self, params):
        self._Type = params.get("Type")
        self._Value = params.get("Value")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyApplicationMaterialRequest(AbstractModel):
    """ApplyApplicationMaterial请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _DeclareId: 申报流水号
        :type DeclareId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _SourceCurrency: 源币种
        :type SourceCurrency: str
        :param _TargetCurrency: 目的币种
        :type TargetCurrency: str
        :param _TradeCode: 贸易编码
        :type TradeCode: str
        :param _OriginalDeclareId: 原申报流水号
        :type OriginalDeclareId: str
        :param _SourceAmount: 源金额
        :type SourceAmount: int
        :param _TargetAmount: 目的金额
        :type TargetAmount: int
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._TransactionId = None
        self._DeclareId = None
        self._PayerId = None
        self._SourceCurrency = None
        self._TargetCurrency = None
        self._TradeCode = None
        self._OriginalDeclareId = None
        self._SourceAmount = None
        self._TargetAmount = None
        self._Profile = None

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def DeclareId(self):
        return self._DeclareId

    @DeclareId.setter
    def DeclareId(self, DeclareId):
        self._DeclareId = DeclareId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def TradeCode(self):
        return self._TradeCode

    @TradeCode.setter
    def TradeCode(self, TradeCode):
        self._TradeCode = TradeCode

    @property
    def OriginalDeclareId(self):
        return self._OriginalDeclareId

    @OriginalDeclareId.setter
    def OriginalDeclareId(self, OriginalDeclareId):
        self._OriginalDeclareId = OriginalDeclareId

    @property
    def SourceAmount(self):
        return self._SourceAmount

    @SourceAmount.setter
    def SourceAmount(self, SourceAmount):
        self._SourceAmount = SourceAmount

    @property
    def TargetAmount(self):
        return self._TargetAmount

    @TargetAmount.setter
    def TargetAmount(self, TargetAmount):
        self._TargetAmount = TargetAmount

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TransactionId = params.get("TransactionId")
        self._DeclareId = params.get("DeclareId")
        self._PayerId = params.get("PayerId")
        self._SourceCurrency = params.get("SourceCurrency")
        self._TargetCurrency = params.get("TargetCurrency")
        self._TradeCode = params.get("TradeCode")
        self._OriginalDeclareId = params.get("OriginalDeclareId")
        self._SourceAmount = params.get("SourceAmount")
        self._TargetAmount = params.get("TargetAmount")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyApplicationMaterialResponse(AbstractModel):
    """ApplyApplicationMaterial返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 提交申报材料结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyDeclareResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = ApplyDeclareResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyDeclareData(AbstractModel):
    """提交申报材料结果

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TransactionId: 第三方指令编号
        :type TransactionId: str
        :param _Status: 受理状态
        :type Status: str
        :param _DeclareId: 申报流水号
        :type DeclareId: str
        :param _OriginalDeclareId: 原申报流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalDeclareId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        """
        self._MerchantId = None
        self._TransactionId = None
        self._Status = None
        self._DeclareId = None
        self._OriginalDeclareId = None
        self._PayerId = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def DeclareId(self):
        return self._DeclareId

    @DeclareId.setter
    def DeclareId(self, DeclareId):
        self._DeclareId = DeclareId

    @property
    def OriginalDeclareId(self):
        return self._OriginalDeclareId

    @OriginalDeclareId.setter
    def OriginalDeclareId(self, OriginalDeclareId):
        self._OriginalDeclareId = OriginalDeclareId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TransactionId = params.get("TransactionId")
        self._Status = params.get("Status")
        self._DeclareId = params.get("DeclareId")
        self._OriginalDeclareId = params.get("OriginalDeclareId")
        self._PayerId = params.get("PayerId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyDeclareResult(AbstractModel):
    """提交申报材料结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 提交申报材料数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.ApplyDeclareData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = ApplyDeclareData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexPaymentRequest(AbstractModel):
    """ApplyFlexPayment请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _FundingAccountInfo: 资金账户信息
        :type FundingAccountInfo: :class:`tencentcloud.cpdp.v20190820.models.FlexFundingAccountInfo`
        :param _Remark: 提现备注
        :type Remark: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _NotifyUrl: 支付结果通知回调地址
        :type NotifyUrl: str
        """
        self._PayeeId = None
        self._IncomeType = None
        self._AmountBeforeTax = None
        self._OutOrderId = None
        self._FundingAccountInfo = None
        self._Remark = None
        self._Environment = None
        self._NotifyUrl = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def FundingAccountInfo(self):
        return self._FundingAccountInfo

    @FundingAccountInfo.setter
    def FundingAccountInfo(self, FundingAccountInfo):
        self._FundingAccountInfo = FundingAccountInfo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._IncomeType = params.get("IncomeType")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._OutOrderId = params.get("OutOrderId")
        if params.get("FundingAccountInfo") is not None:
            self._FundingAccountInfo = FlexFundingAccountInfo()
            self._FundingAccountInfo._deserialize(params.get("FundingAccountInfo"))
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        self._NotifyUrl = params.get("NotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexPaymentResponse(AbstractModel):
    """ApplyFlexPayment返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyFlexPaymentResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyFlexPaymentResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyFlexPaymentResult(AbstractModel):
    """付款结果

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _AmountAfterTax: 税后金额
        :type AmountAfterTax: str
        :param _Tax: 税金
        :type Tax: str
        :param _Vat: 增值税
注意：此字段可能返回 null，表示取不到有效值。
        :type Vat: str
        :param _IndividualIncomeTax: 个人所得税
注意：此字段可能返回 null，表示取不到有效值。
        :type IndividualIncomeTax: str
        :param _AdditionalTaxSum: 附加税总税额
注意：此字段可能返回 null，表示取不到有效值。
        :type AdditionalTaxSum: str
        :param _AdditionalTaxItem: 附加税税项。格式为JSON格式
注意：此字段可能返回 null，表示取不到有效值。
        :type AdditionalTaxItem: str
        """
        self._OrderId = None
        self._AmountBeforeTax = None
        self._AmountAfterTax = None
        self._Tax = None
        self._Vat = None
        self._IndividualIncomeTax = None
        self._AdditionalTaxSum = None
        self._AdditionalTaxItem = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def AmountAfterTax(self):
        return self._AmountAfterTax

    @AmountAfterTax.setter
    def AmountAfterTax(self, AmountAfterTax):
        self._AmountAfterTax = AmountAfterTax

    @property
    def Tax(self):
        return self._Tax

    @Tax.setter
    def Tax(self, Tax):
        self._Tax = Tax

    @property
    def Vat(self):
        return self._Vat

    @Vat.setter
    def Vat(self, Vat):
        self._Vat = Vat

    @property
    def IndividualIncomeTax(self):
        return self._IndividualIncomeTax

    @IndividualIncomeTax.setter
    def IndividualIncomeTax(self, IndividualIncomeTax):
        self._IndividualIncomeTax = IndividualIncomeTax

    @property
    def AdditionalTaxSum(self):
        return self._AdditionalTaxSum

    @AdditionalTaxSum.setter
    def AdditionalTaxSum(self, AdditionalTaxSum):
        self._AdditionalTaxSum = AdditionalTaxSum

    @property
    def AdditionalTaxItem(self):
        return self._AdditionalTaxItem

    @AdditionalTaxItem.setter
    def AdditionalTaxItem(self, AdditionalTaxItem):
        self._AdditionalTaxItem = AdditionalTaxItem


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._AmountAfterTax = params.get("AmountAfterTax")
        self._Tax = params.get("Tax")
        self._Vat = params.get("Vat")
        self._IndividualIncomeTax = params.get("IndividualIncomeTax")
        self._AdditionalTaxSum = params.get("AdditionalTaxSum")
        self._AdditionalTaxItem = params.get("AdditionalTaxItem")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexSettlementRequest(AbstractModel):
    """ApplyFlexSettlement请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _Remark: 备注
        :type Remark: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._IncomeType = None
        self._AmountBeforeTax = None
        self._OutOrderId = None
        self._Remark = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._IncomeType = params.get("IncomeType")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._OutOrderId = params.get("OutOrderId")
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexSettlementResponse(AbstractModel):
    """ApplyFlexSettlement返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyFlexSettlementResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyFlexSettlementResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyFlexSettlementResult(AbstractModel):
    """结算结果

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _AmountAfterTax: 税后金额
        :type AmountAfterTax: str
        :param _Tax: 税金
        :type Tax: str
        """
        self._OrderId = None
        self._AmountBeforeTax = None
        self._AmountAfterTax = None
        self._Tax = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def AmountAfterTax(self):
        return self._AmountAfterTax

    @AmountAfterTax.setter
    def AmountAfterTax(self, AmountAfterTax):
        self._AmountAfterTax = AmountAfterTax

    @property
    def Tax(self):
        return self._Tax

    @Tax.setter
    def Tax(self, Tax):
        self._Tax = Tax


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._AmountAfterTax = params.get("AmountAfterTax")
        self._Tax = params.get("Tax")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexWechatPreAuthRequest(AbstractModel):
    """ApplyFlexWechatPreAuth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthNo: 商家核身单号
        :type AuthNo: str
        :param _OpenId: 微信用户标识
        :type OpenId: str
        :param _ProjectName: 项目名称
        :type ProjectName: str
        :param _EmployerName: 用工单位名称
        :type EmployerName: str
        :param _UserName: 用户姓名
        :type UserName: str
        :param _IdNo: 用户证件号
        :type IdNo: str
        :param _EmploymentType: 用工类型
LONG_TERM_EMPLOYMENT：长期用工，
SHORT_TERM_EMPLOYMENT： 短期用工，
COOPERATION_EMPLOYMENT：合作关系
        :type EmploymentType: str
        :param _AuthType: 核身类型
SIGN_IN：考勤、签到打卡类型
INSURANCE：投保类型
CONTRACT：签约类型
        :type AuthType: str
        :param _Environment: 环境类型
test 测试
release 生产
sandbox 沙箱
        :type Environment: str
        """
        self._AuthNo = None
        self._OpenId = None
        self._ProjectName = None
        self._EmployerName = None
        self._UserName = None
        self._IdNo = None
        self._EmploymentType = None
        self._AuthType = None
        self._Environment = None

    @property
    def AuthNo(self):
        return self._AuthNo

    @AuthNo.setter
    def AuthNo(self, AuthNo):
        self._AuthNo = AuthNo

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def EmployerName(self):
        return self._EmployerName

    @EmployerName.setter
    def EmployerName(self, EmployerName):
        self._EmployerName = EmployerName

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def EmploymentType(self):
        return self._EmploymentType

    @EmploymentType.setter
    def EmploymentType(self, EmploymentType):
        self._EmploymentType = EmploymentType

    @property
    def AuthType(self):
        return self._AuthType

    @AuthType.setter
    def AuthType(self, AuthType):
        self._AuthType = AuthType

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._AuthNo = params.get("AuthNo")
        self._OpenId = params.get("OpenId")
        self._ProjectName = params.get("ProjectName")
        self._EmployerName = params.get("EmployerName")
        self._UserName = params.get("UserName")
        self._IdNo = params.get("IdNo")
        self._EmploymentType = params.get("EmploymentType")
        self._AuthType = params.get("AuthType")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyFlexWechatPreAuthResponse(AbstractModel):
    """ApplyFlexWechatPreAuth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误信息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.WechatPreAuthResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = WechatPreAuthResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyOpenBankOrderDetailReceiptRequest(AbstractModel):
    """ApplyOpenBankOrderDetailReceipt请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutApplyId: 外部回单申请编号
        :type OutApplyId: str
        :param _ChannelMerchantId: 渠道商户ID
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称，目前只支持ALIPAY
        :type ChannelName: str
        :param _PaymentMethod: 支付方式，目前只支持SAFT_ISV
        :type PaymentMethod: str
        :param _ChannelOrderId: 云企付平台订单号
        :type ChannelOrderId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._OutApplyId = None
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._ChannelOrderId = None
        self._Environment = None

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutApplyId = params.get("OutApplyId")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOpenBankOrderDetailReceiptResponse(AbstractModel):
    """ApplyOpenBankOrderDetailReceipt返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyOpenBankOrderDetailReceiptResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyOpenBankOrderDetailReceiptResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyOpenBankOrderDetailReceiptResult(AbstractModel):
    """申请单笔交易回单结果

    """

    def __init__(self):
        r"""
        :param _ChannelApplyId: 渠道回单申请ID
        :type ChannelApplyId: str
        :param _ReceiptStatus: 申请状态。
SUCCESS：申请成功；
FAILED：申请失败；
PROCESSING：申请中。
注意：若返回申请中，需要再次调用回单申请结果查询接口，查询结果。
        :type ReceiptStatus: str
        :param _ReceiptMessage: 申请返回描述，例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type ReceiptMessage: str
        :param _DownloadUrl: 回单下载链接，申请成功时返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _ExpireTime: 过期时间，yyyy-MM-dd HH:mm:ss格式。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpireTime: str
        """
        self._ChannelApplyId = None
        self._ReceiptStatus = None
        self._ReceiptMessage = None
        self._DownloadUrl = None
        self._ExpireTime = None

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def ReceiptStatus(self):
        return self._ReceiptStatus

    @ReceiptStatus.setter
    def ReceiptStatus(self, ReceiptStatus):
        self._ReceiptStatus = ReceiptStatus

    @property
    def ReceiptMessage(self):
        return self._ReceiptMessage

    @ReceiptMessage.setter
    def ReceiptMessage(self, ReceiptMessage):
        self._ReceiptMessage = ReceiptMessage

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime


    def _deserialize(self, params):
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._ReceiptStatus = params.get("ReceiptStatus")
        self._ReceiptMessage = params.get("ReceiptMessage")
        self._DownloadUrl = params.get("DownloadUrl")
        self._ExpireTime = params.get("ExpireTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOpenBankSettleOrderRequest(AbstractModel):
    """ApplyOpenBankSettleOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号
        :type ChannelMerchantId: str
        :param _OutSettleId: 外部结算流水号
        :type OutSettleId: str
        :param _SettleAmount: 结算金额
        :type SettleAmount: int
        :param _ChannelName: 渠道名称。详见附录-枚举类型-ChannelName。
        :type ChannelName: str
        :param _ChannelSubMerchantId: 渠道子商户号
        :type ChannelSubMerchantId: str
        :param _SettleDetail: 结算备注
        :type SettleDetail: str
        :param _NotifyUrl: 结算成功回调地址
        :type NotifyUrl: str
        :param _Remark: 附言
        :type Remark: str
        :param _ExternalSettleData: 结算第三方渠道扩展信息。通联国际必选
        :type ExternalSettleData: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutSettleId = None
        self._SettleAmount = None
        self._ChannelName = None
        self._ChannelSubMerchantId = None
        self._SettleDetail = None
        self._NotifyUrl = None
        self._Remark = None
        self._ExternalSettleData = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutSettleId(self):
        return self._OutSettleId

    @OutSettleId.setter
    def OutSettleId(self, OutSettleId):
        self._OutSettleId = OutSettleId

    @property
    def SettleAmount(self):
        return self._SettleAmount

    @SettleAmount.setter
    def SettleAmount(self, SettleAmount):
        self._SettleAmount = SettleAmount

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def SettleDetail(self):
        return self._SettleDetail

    @SettleDetail.setter
    def SettleDetail(self, SettleDetail):
        self._SettleDetail = SettleDetail

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ExternalSettleData(self):
        return self._ExternalSettleData

    @ExternalSettleData.setter
    def ExternalSettleData(self, ExternalSettleData):
        self._ExternalSettleData = ExternalSettleData

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutSettleId = params.get("OutSettleId")
        self._SettleAmount = params.get("SettleAmount")
        self._ChannelName = params.get("ChannelName")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._SettleDetail = params.get("SettleDetail")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Remark = params.get("Remark")
        self._ExternalSettleData = params.get("ExternalSettleData")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOpenBankSettleOrderResponse(AbstractModel):
    """ApplyOpenBankSettleOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误信息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyOpenBankSettleOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyOpenBankSettleOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyOpenBankSettleOrderResult(AbstractModel):
    """云企付结算申请结果

    """

    def __init__(self):
        r"""
        :param _OutSettleId: 外部结算流水号
        :type OutSettleId: str
        :param _ChannelSettleId: 渠道结算流水号
        :type ChannelSettleId: str
        :param _SettleStatus: 退款状态。
SUCCESS：结算成功；
FAILED：结算失败；
PROCESSING：结算中;
INIT:初始化;
ACCEPT_FAILED:受理失败,底层银行返回订单不存在
ACCEPTED：受理成功
_UNKNOWN：默认未知
        :type SettleStatus: str
        """
        self._OutSettleId = None
        self._ChannelSettleId = None
        self._SettleStatus = None

    @property
    def OutSettleId(self):
        return self._OutSettleId

    @OutSettleId.setter
    def OutSettleId(self, OutSettleId):
        self._OutSettleId = OutSettleId

    @property
    def ChannelSettleId(self):
        return self._ChannelSettleId

    @ChannelSettleId.setter
    def ChannelSettleId(self, ChannelSettleId):
        self._ChannelSettleId = ChannelSettleId

    @property
    def SettleStatus(self):
        return self._SettleStatus

    @SettleStatus.setter
    def SettleStatus(self, SettleStatus):
        self._SettleStatus = SettleStatus


    def _deserialize(self, params):
        self._OutSettleId = params.get("OutSettleId")
        self._ChannelSettleId = params.get("ChannelSettleId")
        self._SettleStatus = params.get("SettleStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOpenBankSubMerchantSignOnlineRequest(AbstractModel):
    """ApplyOpenBankSubMerchantSignOnline请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。外部平台接入云企付平台下发。必填。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-枚举类型-ChannelName。
        :type ChannelName: str
        :param _OutSubMerchantId: 外部子商户ID。
        :type OutSubMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _NotifyUrl: 签约成功回调地址。
        :type NotifyUrl: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._OutSubMerchantId = None
        self._ChannelSubMerchantId = None
        self._NotifyUrl = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def OutSubMerchantId(self):
        return self._OutSubMerchantId

    @OutSubMerchantId.setter
    def OutSubMerchantId(self, OutSubMerchantId):
        self._OutSubMerchantId = OutSubMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._OutSubMerchantId = params.get("OutSubMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._NotifyUrl = params.get("NotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOpenBankSubMerchantSignOnlineResponse(AbstractModel):
    """ApplyOpenBankSubMerchantSignOnline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误信息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyOpenBankSubMerchantSignOnlineResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyOpenBankSubMerchantSignOnlineResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyOpenBankSubMerchantSignOnlineResult(AbstractModel):
    """子商户在线签约返回结果

    """

    def __init__(self):
        r"""
        :param _SignStatus: 处理状态
  SUCCESS：签约成功
  FAILED：签约失败
  PROCESSING：签约中
        :type SignStatus: str
        :param _SignMessage: 上传返回描述，例如失败原因等
注意：此字段可能返回 null，表示取不到有效值。
        :type SignMessage: str
        :param _ExternalReturnData: 第三方渠道返回信息，见渠道特殊说明
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        """
        self._SignStatus = None
        self._SignMessage = None
        self._ExternalReturnData = None

    @property
    def SignStatus(self):
        return self._SignStatus

    @SignStatus.setter
    def SignStatus(self, SignStatus):
        self._SignStatus = SignStatus

    @property
    def SignMessage(self):
        return self._SignMessage

    @SignMessage.setter
    def SignMessage(self, SignMessage):
        self._SignMessage = SignMessage

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData


    def _deserialize(self, params):
        self._SignStatus = params.get("SignStatus")
        self._SignMessage = params.get("SignMessage")
        self._ExternalReturnData = params.get("ExternalReturnData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOutwardOrderData(AbstractModel):
    """汇出指令申请数据

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _Status: 受理状态
        :type Status: str
        """
        self._MerchantId = None
        self._TransactionId = None
        self._Status = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TransactionId = params.get("TransactionId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOutwardOrderRequest(AbstractModel):
    """ApplyOutwardOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _PricingCurrency: 定价币种
        :type PricingCurrency: str
        :param _SourceCurrency: 源币种
        :type SourceCurrency: str
        :param _TargetCurrency: 目的币种
        :type TargetCurrency: str
        :param _PayeeType: 收款人类型（银行卡填"BANK_ACCOUNT"）
        :type PayeeType: str
        :param _PayeeAccount: 收款人账号
        :type PayeeAccount: str
        :param _SourceAmount: 源币种金额
        :type SourceAmount: float
        :param _TargetAmount: 目的金额
        :type TargetAmount: float
        :param _PayeeName: 收款人姓名（PayeeType为"BANK_COUNT"时必填）
        :type PayeeName: str
        :param _PayeeAddress: 收款人地址（PayeeType为"BANK_COUNT"时必填）
        :type PayeeAddress: str
        :param _PayeeBankAccountType: 收款人银行账号类型（PayeeType为"BANK_COUNT"时必填）
个人填"INDIVIDUAL"
企业填"CORPORATE"
        :type PayeeBankAccountType: str
        :param _PayeeCountryCode: 收款人国家或地区编码（PayeeType为"BANK_COUNT"时必填）
        :type PayeeCountryCode: str
        :param _PayeeBankName: 收款人开户银行名称（PayeeType为"BANK_COUNT"时必填）
        :type PayeeBankName: str
        :param _PayeeBankAddress: 收款人开户银行地址（PayeeType为"BANK_COUNT"时必填）
        :type PayeeBankAddress: str
        :param _PayeeBankDistrict: 收款人开户银行所在国家或地区编码（PayeeType为"BANK_COUNT"时必填）
        :type PayeeBankDistrict: str
        :param _PayeeBankSwiftCode: 收款银行SwiftCode（PayeeType为"BANK_COUNT"时必填）
        :type PayeeBankSwiftCode: str
        :param _PayeeBankType: 收款银行国际编码类型
        :type PayeeBankType: str
        :param _PayeeBankCode: 收款银行国际编码
        :type PayeeBankCode: str
        :param _ReferenceForBeneficiary: 收款人附言
        :type ReferenceForBeneficiary: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._TransactionId = None
        self._PricingCurrency = None
        self._SourceCurrency = None
        self._TargetCurrency = None
        self._PayeeType = None
        self._PayeeAccount = None
        self._SourceAmount = None
        self._TargetAmount = None
        self._PayeeName = None
        self._PayeeAddress = None
        self._PayeeBankAccountType = None
        self._PayeeCountryCode = None
        self._PayeeBankName = None
        self._PayeeBankAddress = None
        self._PayeeBankDistrict = None
        self._PayeeBankSwiftCode = None
        self._PayeeBankType = None
        self._PayeeBankCode = None
        self._ReferenceForBeneficiary = None
        self._Profile = None

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def PricingCurrency(self):
        return self._PricingCurrency

    @PricingCurrency.setter
    def PricingCurrency(self, PricingCurrency):
        self._PricingCurrency = PricingCurrency

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def PayeeType(self):
        return self._PayeeType

    @PayeeType.setter
    def PayeeType(self, PayeeType):
        self._PayeeType = PayeeType

    @property
    def PayeeAccount(self):
        return self._PayeeAccount

    @PayeeAccount.setter
    def PayeeAccount(self, PayeeAccount):
        self._PayeeAccount = PayeeAccount

    @property
    def SourceAmount(self):
        return self._SourceAmount

    @SourceAmount.setter
    def SourceAmount(self, SourceAmount):
        self._SourceAmount = SourceAmount

    @property
    def TargetAmount(self):
        return self._TargetAmount

    @TargetAmount.setter
    def TargetAmount(self, TargetAmount):
        self._TargetAmount = TargetAmount

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def PayeeAddress(self):
        return self._PayeeAddress

    @PayeeAddress.setter
    def PayeeAddress(self, PayeeAddress):
        self._PayeeAddress = PayeeAddress

    @property
    def PayeeBankAccountType(self):
        return self._PayeeBankAccountType

    @PayeeBankAccountType.setter
    def PayeeBankAccountType(self, PayeeBankAccountType):
        self._PayeeBankAccountType = PayeeBankAccountType

    @property
    def PayeeCountryCode(self):
        return self._PayeeCountryCode

    @PayeeCountryCode.setter
    def PayeeCountryCode(self, PayeeCountryCode):
        self._PayeeCountryCode = PayeeCountryCode

    @property
    def PayeeBankName(self):
        return self._PayeeBankName

    @PayeeBankName.setter
    def PayeeBankName(self, PayeeBankName):
        self._PayeeBankName = PayeeBankName

    @property
    def PayeeBankAddress(self):
        return self._PayeeBankAddress

    @PayeeBankAddress.setter
    def PayeeBankAddress(self, PayeeBankAddress):
        self._PayeeBankAddress = PayeeBankAddress

    @property
    def PayeeBankDistrict(self):
        return self._PayeeBankDistrict

    @PayeeBankDistrict.setter
    def PayeeBankDistrict(self, PayeeBankDistrict):
        self._PayeeBankDistrict = PayeeBankDistrict

    @property
    def PayeeBankSwiftCode(self):
        return self._PayeeBankSwiftCode

    @PayeeBankSwiftCode.setter
    def PayeeBankSwiftCode(self, PayeeBankSwiftCode):
        self._PayeeBankSwiftCode = PayeeBankSwiftCode

    @property
    def PayeeBankType(self):
        return self._PayeeBankType

    @PayeeBankType.setter
    def PayeeBankType(self, PayeeBankType):
        self._PayeeBankType = PayeeBankType

    @property
    def PayeeBankCode(self):
        return self._PayeeBankCode

    @PayeeBankCode.setter
    def PayeeBankCode(self, PayeeBankCode):
        self._PayeeBankCode = PayeeBankCode

    @property
    def ReferenceForBeneficiary(self):
        return self._ReferenceForBeneficiary

    @ReferenceForBeneficiary.setter
    def ReferenceForBeneficiary(self, ReferenceForBeneficiary):
        self._ReferenceForBeneficiary = ReferenceForBeneficiary

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TransactionId = params.get("TransactionId")
        self._PricingCurrency = params.get("PricingCurrency")
        self._SourceCurrency = params.get("SourceCurrency")
        self._TargetCurrency = params.get("TargetCurrency")
        self._PayeeType = params.get("PayeeType")
        self._PayeeAccount = params.get("PayeeAccount")
        self._SourceAmount = params.get("SourceAmount")
        self._TargetAmount = params.get("TargetAmount")
        self._PayeeName = params.get("PayeeName")
        self._PayeeAddress = params.get("PayeeAddress")
        self._PayeeBankAccountType = params.get("PayeeBankAccountType")
        self._PayeeCountryCode = params.get("PayeeCountryCode")
        self._PayeeBankName = params.get("PayeeBankName")
        self._PayeeBankAddress = params.get("PayeeBankAddress")
        self._PayeeBankDistrict = params.get("PayeeBankDistrict")
        self._PayeeBankSwiftCode = params.get("PayeeBankSwiftCode")
        self._PayeeBankType = params.get("PayeeBankType")
        self._PayeeBankCode = params.get("PayeeBankCode")
        self._ReferenceForBeneficiary = params.get("ReferenceForBeneficiary")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyOutwardOrderResponse(AbstractModel):
    """ApplyOutwardOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 汇出指令申请
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyOutwardOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = ApplyOutwardOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyOutwardOrderResult(AbstractModel):
    """汇出指令申请结果

    """

    def __init__(self):
        r"""
        :param _Data: 汇出指令申请数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.ApplyOutwardOrderData`
        :param _Code: 错误码
        :type Code: str
        """
        self._Data = None
        self._Code = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = ApplyOutwardOrderData()
            self._Data._deserialize(params.get("Data"))
        self._Code = params.get("Code")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyPayerInfoRequest(AbstractModel):
    """ApplyPayerInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _PayerType: 付款人类型 (个人: INDIVIDUAL, 企业: CORPORATE)
        :type PayerType: str
        :param _PayerName: 付款人姓名
        :type PayerName: str
        :param _PayerIdType: 付款人证件类型 (身份证: ID_CARD, 统一社会信用代码: UNIFIED_CREDIT_CODE)
        :type PayerIdType: str
        :param _PayerIdNo: 付款人证件号
        :type PayerIdNo: str
        :param _PayerCountryCode: 付款人常驻国家或地区编码 (见常见问题-国家/地区编码)
        :type PayerCountryCode: str
        :param _PayerContactName: 付款人联系人名称
        :type PayerContactName: str
        :param _PayerContactNumber: 付款人联系电话
        :type PayerContactNumber: str
        :param _PayerEmailAddress: 付款人联系邮箱
        :type PayerEmailAddress: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._PayerId = None
        self._PayerType = None
        self._PayerName = None
        self._PayerIdType = None
        self._PayerIdNo = None
        self._PayerCountryCode = None
        self._PayerContactName = None
        self._PayerContactNumber = None
        self._PayerEmailAddress = None
        self._Profile = None

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def PayerType(self):
        return self._PayerType

    @PayerType.setter
    def PayerType(self, PayerType):
        self._PayerType = PayerType

    @property
    def PayerName(self):
        return self._PayerName

    @PayerName.setter
    def PayerName(self, PayerName):
        self._PayerName = PayerName

    @property
    def PayerIdType(self):
        return self._PayerIdType

    @PayerIdType.setter
    def PayerIdType(self, PayerIdType):
        self._PayerIdType = PayerIdType

    @property
    def PayerIdNo(self):
        return self._PayerIdNo

    @PayerIdNo.setter
    def PayerIdNo(self, PayerIdNo):
        self._PayerIdNo = PayerIdNo

    @property
    def PayerCountryCode(self):
        return self._PayerCountryCode

    @PayerCountryCode.setter
    def PayerCountryCode(self, PayerCountryCode):
        self._PayerCountryCode = PayerCountryCode

    @property
    def PayerContactName(self):
        return self._PayerContactName

    @PayerContactName.setter
    def PayerContactName(self, PayerContactName):
        self._PayerContactName = PayerContactName

    @property
    def PayerContactNumber(self):
        return self._PayerContactNumber

    @PayerContactNumber.setter
    def PayerContactNumber(self, PayerContactNumber):
        self._PayerContactNumber = PayerContactNumber

    @property
    def PayerEmailAddress(self):
        return self._PayerEmailAddress

    @PayerEmailAddress.setter
    def PayerEmailAddress(self, PayerEmailAddress):
        self._PayerEmailAddress = PayerEmailAddress

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._PayerId = params.get("PayerId")
        self._PayerType = params.get("PayerType")
        self._PayerName = params.get("PayerName")
        self._PayerIdType = params.get("PayerIdType")
        self._PayerIdNo = params.get("PayerIdNo")
        self._PayerCountryCode = params.get("PayerCountryCode")
        self._PayerContactName = params.get("PayerContactName")
        self._PayerContactNumber = params.get("PayerContactNumber")
        self._PayerEmailAddress = params.get("PayerEmailAddress")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyPayerInfoResponse(AbstractModel):
    """ApplyPayerInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 付款人申请结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyPayerinfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = ApplyPayerinfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyPayerinfoData(AbstractModel):
    """付款人申请结果

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _Status: 状态
        :type Status: str
        :param _FailReason: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        """
        self._MerchantId = None
        self._PayerId = None
        self._Status = None
        self._FailReason = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._PayerId = params.get("PayerId")
        self._Status = params.get("Status")
        self._FailReason = params.get("FailReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyPayerinfoResult(AbstractModel):
    """付款人申请结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.ApplyPayerinfoData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = ApplyPayerinfoData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyReWithdrawalRequest(AbstractModel):
    """ApplyReWithdrawal请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BusinessType: 聚鑫业务类型
        :type BusinessType: int
        :param _MidasSecretId: 由平台客服提供的计费密钥Id
        :type MidasSecretId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _Body: 提现信息
        :type Body: :class:`tencentcloud.cpdp.v20190820.models.WithdrawBill`
        :param _MidasAppId: 聚鑫业务ID
        :type MidasAppId: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._BusinessType = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._Body = None
        self._MidasAppId = None
        self._MidasEnvironment = None

    @property
    def BusinessType(self):
        return self._BusinessType

    @BusinessType.setter
    def BusinessType(self, BusinessType):
        self._BusinessType = BusinessType

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def Body(self):
        return self._Body

    @Body.setter
    def Body(self, Body):
        self._Body = Body

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._BusinessType = params.get("BusinessType")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        if params.get("Body") is not None:
            self._Body = WithdrawBill()
            self._Body._deserialize(params.get("Body"))
        self._MidasAppId = params.get("MidasAppId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyReWithdrawalResponse(AbstractModel):
    """ApplyReWithdrawal返回参数结构体

    """

    def __init__(self):
        r"""
        :param _WithdrawOrderId: 重新提现业务订单号
        :type WithdrawOrderId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._WithdrawOrderId = None
        self._RequestId = None

    @property
    def WithdrawOrderId(self):
        return self._WithdrawOrderId

    @WithdrawOrderId.setter
    def WithdrawOrderId(self, WithdrawOrderId):
        self._WithdrawOrderId = WithdrawOrderId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._WithdrawOrderId = params.get("WithdrawOrderId")
        self._RequestId = params.get("RequestId")


class ApplyReconciliationFileRequest(AbstractModel):
    """ApplyReconciliationFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ApplyFileType: 申请的文件类型。
__CZ__：充值文件
__TX__：提现文件
__JY__：交易文件
__YE__：余额文件
        :type ApplyFileType: str
        :param _ApplyFileDate: 申请的对账文件日期，格式：yyyyMMdd。
        :type ApplyFileDate: str
        :param _BankAccountNumber: 父账户账号。
_平安渠道为资金汇总账号_
        :type BankAccountNumber: str
        :param _MidasEnvironment: 环境名。
__release__: 现网环境
__sandbox__: 沙箱环境
__development__: 开发环境
_缺省: release_
        :type MidasEnvironment: str
        """
        self._ApplyFileType = None
        self._ApplyFileDate = None
        self._BankAccountNumber = None
        self._MidasEnvironment = None

    @property
    def ApplyFileType(self):
        return self._ApplyFileType

    @ApplyFileType.setter
    def ApplyFileType(self, ApplyFileType):
        self._ApplyFileType = ApplyFileType

    @property
    def ApplyFileDate(self):
        return self._ApplyFileDate

    @ApplyFileDate.setter
    def ApplyFileDate(self, ApplyFileDate):
        self._ApplyFileDate = ApplyFileDate

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._ApplyFileType = params.get("ApplyFileType")
        self._ApplyFileDate = params.get("ApplyFileDate")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyReconciliationFileResponse(AbstractModel):
    """ApplyReconciliationFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyReconciliationFileResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ApplyReconciliationFileResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyReconciliationFileResult(AbstractModel):
    """申请对账文件结果

    """

    def __init__(self):
        r"""
        :param _ApplyFileId: 申请对账文件的任务ID。
        :type ApplyFileId: str
        :param _ApplyStatus: 对账文件申请状态。
__I__：申请中
__S__：申请成功
__F__：申请失败
        :type ApplyStatus: str
        :param _ApplyMessage: 申请结果描述。
注意：此字段可能返回 null，表示取不到有效值。
        :type ApplyMessage: str
        """
        self._ApplyFileId = None
        self._ApplyStatus = None
        self._ApplyMessage = None

    @property
    def ApplyFileId(self):
        return self._ApplyFileId

    @ApplyFileId.setter
    def ApplyFileId(self, ApplyFileId):
        self._ApplyFileId = ApplyFileId

    @property
    def ApplyStatus(self):
        return self._ApplyStatus

    @ApplyStatus.setter
    def ApplyStatus(self, ApplyStatus):
        self._ApplyStatus = ApplyStatus

    @property
    def ApplyMessage(self):
        return self._ApplyMessage

    @ApplyMessage.setter
    def ApplyMessage(self, ApplyMessage):
        self._ApplyMessage = ApplyMessage


    def _deserialize(self, params):
        self._ApplyFileId = params.get("ApplyFileId")
        self._ApplyStatus = params.get("ApplyStatus")
        self._ApplyMessage = params.get("ApplyMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyTradeData(AbstractModel):
    """提交贸易材料结果

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TradeFileId: 贸易材料流水号
        :type TradeFileId: str
        :param _TradeCurrency: 交易币种
        :type TradeCurrency: str
        :param _TradeAmount: 交易金额
        :type TradeAmount: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _Status: 状态
        :type Status: str
        """
        self._MerchantId = None
        self._TradeFileId = None
        self._TradeCurrency = None
        self._TradeAmount = None
        self._PayerId = None
        self._Status = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TradeFileId(self):
        return self._TradeFileId

    @TradeFileId.setter
    def TradeFileId(self, TradeFileId):
        self._TradeFileId = TradeFileId

    @property
    def TradeCurrency(self):
        return self._TradeCurrency

    @TradeCurrency.setter
    def TradeCurrency(self, TradeCurrency):
        self._TradeCurrency = TradeCurrency

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TradeFileId = params.get("TradeFileId")
        self._TradeCurrency = params.get("TradeCurrency")
        self._TradeAmount = params.get("TradeAmount")
        self._PayerId = params.get("PayerId")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyTradeRequest(AbstractModel):
    """ApplyTrade请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TradeFileId: 贸易材料流水号
        :type TradeFileId: str
        :param _TradeOrderId: 贸易材料订单号
        :type TradeOrderId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _PayeeName: 收款人姓名
        :type PayeeName: str
        :param _PayeeCountryCode: 收款人常驻国家或地区编码 (见常见问题)
        :type PayeeCountryCode: str
        :param _TradeType: 贸易类型 (GOODS: 商品, SERVICE: 服务)
        :type TradeType: str
        :param _TradeTime: 交易时间 (格式: yyyyMMdd)
        :type TradeTime: str
        :param _TradeCurrency: 交易币种
        :type TradeCurrency: str
        :param _TradeAmount: 交易金额
        :type TradeAmount: float
        :param _TradeName: 交易名称 
(TradeType=GOODS时填写物品名称，可填写多个，格式无要求；
TradeType=SERVICE时填写贸易类别，见常见问题-贸易类别)
        :type TradeName: str
        :param _TradeCount: 交易数量 (TradeType=GOODS 填写物品数量, TradeType=SERVICE填写服务次数)
        :type TradeCount: int
        :param _GoodsCarrier: 货贸承运人 (TradeType=GOODS 必填)
        :type GoodsCarrier: str
        :param _ServiceDetail: 服贸交易细节 (TradeType=GOODS 必填, 见常见问题-交易细节)
        :type ServiceDetail: str
        :param _ServiceTime: 服贸服务时间 (TradeType=GOODS 必填, 见常见问题-服务时间)
        :type ServiceTime: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._TradeFileId = None
        self._TradeOrderId = None
        self._PayerId = None
        self._PayeeName = None
        self._PayeeCountryCode = None
        self._TradeType = None
        self._TradeTime = None
        self._TradeCurrency = None
        self._TradeAmount = None
        self._TradeName = None
        self._TradeCount = None
        self._GoodsCarrier = None
        self._ServiceDetail = None
        self._ServiceTime = None
        self._Profile = None

    @property
    def TradeFileId(self):
        return self._TradeFileId

    @TradeFileId.setter
    def TradeFileId(self, TradeFileId):
        self._TradeFileId = TradeFileId

    @property
    def TradeOrderId(self):
        return self._TradeOrderId

    @TradeOrderId.setter
    def TradeOrderId(self, TradeOrderId):
        self._TradeOrderId = TradeOrderId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def PayeeCountryCode(self):
        return self._PayeeCountryCode

    @PayeeCountryCode.setter
    def PayeeCountryCode(self, PayeeCountryCode):
        self._PayeeCountryCode = PayeeCountryCode

    @property
    def TradeType(self):
        return self._TradeType

    @TradeType.setter
    def TradeType(self, TradeType):
        self._TradeType = TradeType

    @property
    def TradeTime(self):
        return self._TradeTime

    @TradeTime.setter
    def TradeTime(self, TradeTime):
        self._TradeTime = TradeTime

    @property
    def TradeCurrency(self):
        return self._TradeCurrency

    @TradeCurrency.setter
    def TradeCurrency(self, TradeCurrency):
        self._TradeCurrency = TradeCurrency

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def TradeName(self):
        return self._TradeName

    @TradeName.setter
    def TradeName(self, TradeName):
        self._TradeName = TradeName

    @property
    def TradeCount(self):
        return self._TradeCount

    @TradeCount.setter
    def TradeCount(self, TradeCount):
        self._TradeCount = TradeCount

    @property
    def GoodsCarrier(self):
        return self._GoodsCarrier

    @GoodsCarrier.setter
    def GoodsCarrier(self, GoodsCarrier):
        self._GoodsCarrier = GoodsCarrier

    @property
    def ServiceDetail(self):
        return self._ServiceDetail

    @ServiceDetail.setter
    def ServiceDetail(self, ServiceDetail):
        self._ServiceDetail = ServiceDetail

    @property
    def ServiceTime(self):
        return self._ServiceTime

    @ServiceTime.setter
    def ServiceTime(self, ServiceTime):
        self._ServiceTime = ServiceTime

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TradeFileId = params.get("TradeFileId")
        self._TradeOrderId = params.get("TradeOrderId")
        self._PayerId = params.get("PayerId")
        self._PayeeName = params.get("PayeeName")
        self._PayeeCountryCode = params.get("PayeeCountryCode")
        self._TradeType = params.get("TradeType")
        self._TradeTime = params.get("TradeTime")
        self._TradeCurrency = params.get("TradeCurrency")
        self._TradeAmount = params.get("TradeAmount")
        self._TradeName = params.get("TradeName")
        self._TradeCount = params.get("TradeCount")
        self._GoodsCarrier = params.get("GoodsCarrier")
        self._ServiceDetail = params.get("ServiceDetail")
        self._ServiceTime = params.get("ServiceTime")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyTradeResponse(AbstractModel):
    """ApplyTrade返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 提交贸易材料结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ApplyTradeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = ApplyTradeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ApplyTradeResult(AbstractModel):
    """提交贸易材料结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 提交贸易材料数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.ApplyTradeData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = ApplyTradeData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyWithdrawalRequest(AbstractModel):
    """ApplyWithdrawal请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SettleAcctNo: 用于提现
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctNo: str
        :param _SettleAcctName: 结算账户户名
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctName: str
        :param _CurrencyType: 币种 RMB
        :type CurrencyType: str
        :param _CurrencyUnit: 单位，1：元，2：角，3：分
        :type CurrencyUnit: int
        :param _CurrencyAmt: 金额
        :type CurrencyAmt: str
        :param _TranWebName: 交易网名称
        :type TranWebName: str
        :param _IdType: 会员证件类型
        :type IdType: str
        :param _IdCode: 会员证件号码
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type IdCode: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _CommissionAmount: 手续费金额
        :type CommissionAmount: str
        :param _WithdrawOrderId: 提现单号，长度32字节
        :type WithdrawOrderId: str
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._SettleAcctNo = None
        self._SettleAcctName = None
        self._CurrencyType = None
        self._CurrencyUnit = None
        self._CurrencyAmt = None
        self._TranWebName = None
        self._IdType = None
        self._IdCode = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._EncryptType = None
        self._MidasEnvironment = None
        self._CommissionAmount = None
        self._WithdrawOrderId = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SettleAcctNo(self):
        return self._SettleAcctNo

    @SettleAcctNo.setter
    def SettleAcctNo(self, SettleAcctNo):
        self._SettleAcctNo = SettleAcctNo

    @property
    def SettleAcctName(self):
        return self._SettleAcctName

    @SettleAcctName.setter
    def SettleAcctName(self, SettleAcctName):
        self._SettleAcctName = SettleAcctName

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def CurrencyUnit(self):
        return self._CurrencyUnit

    @CurrencyUnit.setter
    def CurrencyUnit(self, CurrencyUnit):
        self._CurrencyUnit = CurrencyUnit

    @property
    def CurrencyAmt(self):
        return self._CurrencyAmt

    @CurrencyAmt.setter
    def CurrencyAmt(self, CurrencyAmt):
        self._CurrencyAmt = CurrencyAmt

    @property
    def TranWebName(self):
        return self._TranWebName

    @TranWebName.setter
    def TranWebName(self, TranWebName):
        self._TranWebName = TranWebName

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdCode(self):
        return self._IdCode

    @IdCode.setter
    def IdCode(self, IdCode):
        self._IdCode = IdCode

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def CommissionAmount(self):
        return self._CommissionAmount

    @CommissionAmount.setter
    def CommissionAmount(self, CommissionAmount):
        self._CommissionAmount = CommissionAmount

    @property
    def WithdrawOrderId(self):
        return self._WithdrawOrderId

    @WithdrawOrderId.setter
    def WithdrawOrderId(self, WithdrawOrderId):
        self._WithdrawOrderId = WithdrawOrderId


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._SettleAcctNo = params.get("SettleAcctNo")
        self._SettleAcctName = params.get("SettleAcctName")
        self._CurrencyType = params.get("CurrencyType")
        self._CurrencyUnit = params.get("CurrencyUnit")
        self._CurrencyAmt = params.get("CurrencyAmt")
        self._TranWebName = params.get("TranWebName")
        self._IdType = params.get("IdType")
        self._IdCode = params.get("IdCode")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._CommissionAmount = params.get("CommissionAmount")
        self._WithdrawOrderId = params.get("WithdrawOrderId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ApplyWithdrawalResponse(AbstractModel):
    """ApplyWithdrawal返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class AssignmentData(AbstractModel):
    """分配关系

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播ID
        :type AnchorId: str
        :param _AnchorName: 主播名称
        :type AnchorName: str
        :param _AgentId: 代理商ID
        :type AgentId: str
        :param _AgentName: 代理商名称
        :type AgentName: str
        """
        self._AnchorId = None
        self._AnchorName = None
        self._AgentId = None
        self._AgentName = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._AnchorName = params.get("AnchorName")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BankBranchInfo(AbstractModel):
    """支行信息

    """

    def __init__(self):
        r"""
        :param _BankName: 银行名称。
        :type BankName: str
        :param _BankAbbreviation: 银行简称。
        :type BankAbbreviation: str
        :param _BankBranchName: 支行名。
        :type BankBranchName: str
        :param _BankBranchId: 联行号。
        :type BankBranchId: str
        """
        self._BankName = None
        self._BankAbbreviation = None
        self._BankBranchName = None
        self._BankBranchId = None

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def BankAbbreviation(self):
        return self._BankAbbreviation

    @BankAbbreviation.setter
    def BankAbbreviation(self, BankAbbreviation):
        self._BankAbbreviation = BankAbbreviation

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName

    @property
    def BankBranchId(self):
        return self._BankBranchId

    @BankBranchId.setter
    def BankBranchId(self, BankBranchId):
        self._BankBranchId = BankBranchId


    def _deserialize(self, params):
        self._BankName = params.get("BankName")
        self._BankAbbreviation = params.get("BankAbbreviation")
        self._BankBranchName = params.get("BankBranchName")
        self._BankBranchId = params.get("BankBranchId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BankCardItem(AbstractModel):
    """绑卡列表

    """

    def __init__(self):
        r"""
        :param _EiconBankBranchId: 超级网银行号
        :type EiconBankBranchId: str
        :param _CnapsBranchId: 大小额行号
        :type CnapsBranchId: str
        :param _SettleAcctType: 结算账户类型
1 – 本行账户
2 – 他行账户
        :type SettleAcctType: int
        :param _SettleAcctName: 结算账户户名
<敏感信息>
        :type SettleAcctName: str
        :param _AcctBranchName: 开户行名称
        :type AcctBranchName: str
        :param _SettleAcctNo: 用于提现
<敏感信息>
        :type SettleAcctNo: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _BindType: 验证类型
1 – 小额转账验证
2 – 短信验证
        :type BindType: int
        :param _Mobile: 用于短信验证
BindType==2时必填
<敏感信息>
        :type Mobile: str
        :param _IdType: 证件类型
        :type IdType: str
        :param _IdCode: 证件号码
<敏感信息>
        :type IdCode: str
        """
        self._EiconBankBranchId = None
        self._CnapsBranchId = None
        self._SettleAcctType = None
        self._SettleAcctName = None
        self._AcctBranchName = None
        self._SettleAcctNo = None
        self._SubAppId = None
        self._BindType = None
        self._Mobile = None
        self._IdType = None
        self._IdCode = None

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def SettleAcctType(self):
        return self._SettleAcctType

    @SettleAcctType.setter
    def SettleAcctType(self, SettleAcctType):
        self._SettleAcctType = SettleAcctType

    @property
    def SettleAcctName(self):
        return self._SettleAcctName

    @SettleAcctName.setter
    def SettleAcctName(self, SettleAcctName):
        self._SettleAcctName = SettleAcctName

    @property
    def AcctBranchName(self):
        return self._AcctBranchName

    @AcctBranchName.setter
    def AcctBranchName(self, AcctBranchName):
        self._AcctBranchName = AcctBranchName

    @property
    def SettleAcctNo(self):
        return self._SettleAcctNo

    @SettleAcctNo.setter
    def SettleAcctNo(self, SettleAcctNo):
        self._SettleAcctNo = SettleAcctNo

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def BindType(self):
        return self._BindType

    @BindType.setter
    def BindType(self, BindType):
        self._BindType = BindType

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdCode(self):
        return self._IdCode

    @IdCode.setter
    def IdCode(self, IdCode):
        self._IdCode = IdCode


    def _deserialize(self, params):
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._SettleAcctType = params.get("SettleAcctType")
        self._SettleAcctName = params.get("SettleAcctName")
        self._AcctBranchName = params.get("AcctBranchName")
        self._SettleAcctNo = params.get("SettleAcctNo")
        self._SubAppId = params.get("SubAppId")
        self._BindType = params.get("BindType")
        self._Mobile = params.get("Mobile")
        self._IdType = params.get("IdType")
        self._IdCode = params.get("IdCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BillDownloadUrlResult(AbstractModel):
    """机构账单文件下载地址响应对象

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 对账单下载地址。GET方式访问，返回zip包，解压后为csv格式文件。
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        """
        self._DownloadUrl = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindAccountRequest(AbstractModel):
    """BindAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播Id
        :type AnchorId: str
        :param _TransferType: 1 微信企业付款 
2 支付宝转账 
3 平安银企直连代发转账
        :type TransferType: int
        :param _AccountNo: 收款方标识。
微信为open_id；
支付宝为会员alipay_user_id;
平安为收款方银行账号;
        :type AccountNo: str
        :param _PhoneNum: 手机号
        :type PhoneNum: str
        """
        self._AnchorId = None
        self._TransferType = None
        self._AccountNo = None
        self._PhoneNum = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def PhoneNum(self):
        return self._PhoneNum

    @PhoneNum.setter
    def PhoneNum(self, PhoneNum):
        self._PhoneNum = PhoneNum


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._TransferType = params.get("TransferType")
        self._AccountNo = params.get("AccountNo")
        self._PhoneNum = params.get("PhoneNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindAccountResponse(AbstractModel):
    """BindAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 该字段为null。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class BindAcctRequest(AbstractModel):
    """BindAcct请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _BindType: 1 – 小额转账验证
2 – 短信验证
3 - 一分钱转账验证，无需再调CheckAcct验证绑卡
4 - 银行四要素验证，无需再调CheckAcct验证绑卡
每个结算账户每天只能使用一次小额转账验证
        :type BindType: int
        :param _SettleAcctNo: 用于提现
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctNo: str
        :param _SettleAcctName: 结算账户户名
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctName: str
        :param _SettleAcctType: 1 – 本行账户
2 – 他行账户
        :type SettleAcctType: int
        :param _IdType: 证件类型，见《证件类型》表
        :type IdType: str
        :param _IdCode: 证件号码
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type IdCode: str
        :param _AcctBranchName: 开户行名称
        :type AcctBranchName: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _Mobile: 用于短信验证
BindType==2时必填
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type Mobile: str
        :param _CnapsBranchId: 大小额行号，超级网银行号和大小额行号
二选一
        :type CnapsBranchId: str
        :param _EiconBankBranchId: 超级网银行号，超级网银行号和大小额行号
二选一
        :type EiconBankBranchId: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _AgencyClientInfo: 经办人信息
        :type AgencyClientInfo: :class:`tencentcloud.cpdp.v20190820.models.AgencyClientInfo`
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._BindType = None
        self._SettleAcctNo = None
        self._SettleAcctName = None
        self._SettleAcctType = None
        self._IdType = None
        self._IdCode = None
        self._AcctBranchName = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._Mobile = None
        self._CnapsBranchId = None
        self._EiconBankBranchId = None
        self._EncryptType = None
        self._MidasEnvironment = None
        self._AgencyClientInfo = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def BindType(self):
        return self._BindType

    @BindType.setter
    def BindType(self, BindType):
        self._BindType = BindType

    @property
    def SettleAcctNo(self):
        return self._SettleAcctNo

    @SettleAcctNo.setter
    def SettleAcctNo(self, SettleAcctNo):
        self._SettleAcctNo = SettleAcctNo

    @property
    def SettleAcctName(self):
        return self._SettleAcctName

    @SettleAcctName.setter
    def SettleAcctName(self, SettleAcctName):
        self._SettleAcctName = SettleAcctName

    @property
    def SettleAcctType(self):
        return self._SettleAcctType

    @SettleAcctType.setter
    def SettleAcctType(self, SettleAcctType):
        self._SettleAcctType = SettleAcctType

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdCode(self):
        return self._IdCode

    @IdCode.setter
    def IdCode(self, IdCode):
        self._IdCode = IdCode

    @property
    def AcctBranchName(self):
        return self._AcctBranchName

    @AcctBranchName.setter
    def AcctBranchName(self, AcctBranchName):
        self._AcctBranchName = AcctBranchName

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def AgencyClientInfo(self):
        return self._AgencyClientInfo

    @AgencyClientInfo.setter
    def AgencyClientInfo(self, AgencyClientInfo):
        self._AgencyClientInfo = AgencyClientInfo


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._BindType = params.get("BindType")
        self._SettleAcctNo = params.get("SettleAcctNo")
        self._SettleAcctName = params.get("SettleAcctName")
        self._SettleAcctType = params.get("SettleAcctType")
        self._IdType = params.get("IdType")
        self._IdCode = params.get("IdCode")
        self._AcctBranchName = params.get("AcctBranchName")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._Mobile = params.get("Mobile")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        if params.get("AgencyClientInfo") is not None:
            self._AgencyClientInfo = AgencyClientInfo()
            self._AgencyClientInfo._deserialize(params.get("AgencyClientInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindAcctResponse(AbstractModel):
    """BindAcct返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class BindOpenBankExternalSubMerchantBankAccountRequest(AbstractModel):
    """BindOpenBankExternalSubMerchantBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
        :type PaymentMethod: str
        :param _ExternalSubMerchantBindBankAccountData: 第三方渠道子商户收款方银行卡信息, 为JSON格式字符串。详情见附录-复杂类型。
        :type ExternalSubMerchantBindBankAccountData: str
        :param _OutApplyId: 外部申请编号。
        :type OutApplyId: str
        :param _NotifyUrl: 通知地址。
        :type NotifyUrl: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._ExternalSubMerchantBindBankAccountData = None
        self._OutApplyId = None
        self._NotifyUrl = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def ExternalSubMerchantBindBankAccountData(self):
        return self._ExternalSubMerchantBindBankAccountData

    @ExternalSubMerchantBindBankAccountData.setter
    def ExternalSubMerchantBindBankAccountData(self, ExternalSubMerchantBindBankAccountData):
        self._ExternalSubMerchantBindBankAccountData = ExternalSubMerchantBindBankAccountData

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._ExternalSubMerchantBindBankAccountData = params.get("ExternalSubMerchantBindBankAccountData")
        self._OutApplyId = params.get("OutApplyId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindOpenBankExternalSubMerchantBankAccountResponse(AbstractModel):
    """BindOpenBankExternalSubMerchantBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.BindOpenBankExternalSubMerchantBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = BindOpenBankExternalSubMerchantBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class BindOpenBankExternalSubMerchantBankAccountResult(AbstractModel):
    """第三方子商户银行卡绑定返回结果

    """

    def __init__(self):
        r"""
        :param _ChannelApplyId: 渠道申请编号。
        :type ChannelApplyId: str
        :param _BindStatus: 绑定状态。
__SUCCESS__: 绑定成功
__FAILED__: 绑定失败
__PROCESSING__: 绑定中。
注意：若返回绑定中，需要再次调用绑定结果查询接口,查询结果。
        :type BindStatus: str
        :param _BindMessage: 绑定返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type BindMessage: str
        :param _ExternalSubMerchantBankAccountReturnData: 渠道子商户银行账户信息, 为JSON格式字符串（绑定成功状态下返回）。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalSubMerchantBankAccountReturnData: str
        :param _BindSerialNo: 绑卡序列号。
注意：此字段可能返回 null，表示取不到有效值。
        :type BindSerialNo: str
        """
        self._ChannelApplyId = None
        self._BindStatus = None
        self._BindMessage = None
        self._ExternalSubMerchantBankAccountReturnData = None
        self._BindSerialNo = None

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def BindStatus(self):
        return self._BindStatus

    @BindStatus.setter
    def BindStatus(self, BindStatus):
        self._BindStatus = BindStatus

    @property
    def BindMessage(self):
        return self._BindMessage

    @BindMessage.setter
    def BindMessage(self, BindMessage):
        self._BindMessage = BindMessage

    @property
    def ExternalSubMerchantBankAccountReturnData(self):
        return self._ExternalSubMerchantBankAccountReturnData

    @ExternalSubMerchantBankAccountReturnData.setter
    def ExternalSubMerchantBankAccountReturnData(self, ExternalSubMerchantBankAccountReturnData):
        self._ExternalSubMerchantBankAccountReturnData = ExternalSubMerchantBankAccountReturnData

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo


    def _deserialize(self, params):
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._BindStatus = params.get("BindStatus")
        self._BindMessage = params.get("BindMessage")
        self._ExternalSubMerchantBankAccountReturnData = params.get("ExternalSubMerchantBankAccountReturnData")
        self._BindSerialNo = params.get("BindSerialNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindOpenBankProfitSharePayeeRequest(AbstractModel):
    """BindOpenBankProfitSharePayee请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。代理商/集团ID
        :type ChannelMerchantId: str
        :param _AccountNo: 收款人银行账户号。唯一
        :type AccountNo: str
        :param _ChannelName: 渠道名称
通联国际: CNP
        :type ChannelName: str
        :param _ChannelSubMerchantId: 渠道子商户号。商户ID
        :type ChannelSubMerchantId: str
        :param _NotifyUrl: 绑定状态通知地址,若为空，即不回调通知。
        :type NotifyUrl: str
        :param _ProfitSharePayeeInfo: 分账收款人信息。通联国际必选
        :type ProfitSharePayeeInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankProfitSharePayeeInfo`
        :param _ExternalProfitSharingData: 第三方拓展信息。若无特殊说明，可为空
        :type ExternalProfitSharingData: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._AccountNo = None
        self._ChannelName = None
        self._ChannelSubMerchantId = None
        self._NotifyUrl = None
        self._ProfitSharePayeeInfo = None
        self._ExternalProfitSharingData = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def ProfitSharePayeeInfo(self):
        return self._ProfitSharePayeeInfo

    @ProfitSharePayeeInfo.setter
    def ProfitSharePayeeInfo(self, ProfitSharePayeeInfo):
        self._ProfitSharePayeeInfo = ProfitSharePayeeInfo

    @property
    def ExternalProfitSharingData(self):
        return self._ExternalProfitSharingData

    @ExternalProfitSharingData.setter
    def ExternalProfitSharingData(self, ExternalProfitSharingData):
        self._ExternalProfitSharingData = ExternalProfitSharingData

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._AccountNo = params.get("AccountNo")
        self._ChannelName = params.get("ChannelName")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._NotifyUrl = params.get("NotifyUrl")
        if params.get("ProfitSharePayeeInfo") is not None:
            self._ProfitSharePayeeInfo = OpenBankProfitSharePayeeInfo()
            self._ProfitSharePayeeInfo._deserialize(params.get("ProfitSharePayeeInfo"))
        self._ExternalProfitSharingData = params.get("ExternalProfitSharingData")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindOpenBankProfitSharePayeeResponse(AbstractModel):
    """BindOpenBankProfitSharePayee返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误信息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.BindOpenBankProfitSharePayeeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = BindOpenBankProfitSharePayeeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class BindOpenBankProfitSharePayeeResult(AbstractModel):
    """绑定分账收款方响应

    """

    def __init__(self):
        r"""
        :param _AccountId: 账户ID。受益人ID
        :type AccountId: str
        :param _AccountNo: 账户号，通联渠道指客户银行账号
        :type AccountNo: str
        :param _Currency: 账户货币。参考附录“币种类型”。
        :type Currency: str
        """
        self._AccountId = None
        self._AccountNo = None
        self._Currency = None

    @property
    def AccountId(self):
        return self._AccountId

    @AccountId.setter
    def AccountId(self, AccountId):
        self._AccountId = AccountId

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency


    def _deserialize(self, params):
        self._AccountId = params.get("AccountId")
        self._AccountNo = params.get("AccountNo")
        self._Currency = params.get("Currency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindRelateAccReUnionPayRequest(AbstractModel):
    """BindRelateAccReUnionPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（若需要把一个待绑定账户关联到两个会员名下，此字段可上送两个会员的交易网代码，并且须用“|::|”（右侧）进行分隔）
        :type TranNetMemberCode: str
        :param _MemberAcctNo: STRING(50)，会员的待绑定账户的账号（即 BindRelateAcctUnionPay接口中的“会员的待绑定账户的账号”）
        :type MemberAcctNo: str
        :param _MessageCheckCode: STRING(20)，短信验证码（即 BindRelateAcctUnionPay接口中的手机所接收到的短信验证码）
        :type MessageCheckCode: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._TranNetMemberCode = None
        self._MemberAcctNo = None
        self._MessageCheckCode = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberAcctNo(self):
        return self._MemberAcctNo

    @MemberAcctNo.setter
    def MemberAcctNo(self, MemberAcctNo):
        self._MemberAcctNo = MemberAcctNo

    @property
    def MessageCheckCode(self):
        return self._MessageCheckCode

    @MessageCheckCode.setter
    def MessageCheckCode(self, MessageCheckCode):
        self._MessageCheckCode = MessageCheckCode

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberAcctNo = params.get("MemberAcctNo")
        self._MessageCheckCode = params.get("MessageCheckCode")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindRelateAccReUnionPayResponse(AbstractModel):
    """BindRelateAccReUnionPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FrontSeqNo = None
        self._ReservedMsg = None
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._RequestId = None

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._RequestId = params.get("RequestId")


class BindRelateAcctSmallAmountRequest(AbstractModel):
    """BindRelateAcctSmallAmount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（若需要把一个待绑定账户关联到两个会员名下，此字段可上送两个会员的交易网代码，并且须用“|::|”(右侧)进行分隔）
        :type TranNetMemberCode: str
        :param _MemberName: STRING(150)，见证子账户的户名（首次绑定的情况下，此字段即为待绑定的提现账户的户名。非首次绑定的情况下，须注意带绑定的提现账户的户名须与留存在后台系统的会员户名一致）
        :type MemberName: str
        :param _MemberGlobalType: STRING(5)，会员证件类型（详情见“常见问题”）
        :type MemberGlobalType: str
        :param _MemberGlobalId: STRING(32)，会员证件号码
        :type MemberGlobalId: str
        :param _MemberAcctNo: STRING(50)，会员的待绑定账户的账号（提现的银行卡）
        :type MemberAcctNo: str
        :param _BankType: STRING(10)，会员的待绑定账户的本他行类型（1: 本行; 2: 他行）
        :type BankType: str
        :param _AcctOpenBranchName: STRING(150)，会员的待绑定账户的开户行名称
        :type AcctOpenBranchName: str
        :param _Mobile: STRING(30)，会员的手机号（手机号须由长度为11位的数字构成）
        :type Mobile: str
        :param _CnapsBranchId: STRING(20)，会员的待绑定账户的开户行的联行号（本他行类型为他行的情况下，此字段和下一个字段至少一个不为空）
        :type CnapsBranchId: str
        :param _EiconBankBranchId: STRING(20)，会员的待绑定账户的开户行的超级网银行号（本他行类型为他行的情况下，此字段和上一个字段至少一个不为空）
        :type EiconBankBranchId: str
        :param _ReservedMsg: STRING(1027)，转账方式（1: 往账鉴权(默认值); 2: 来账鉴权）
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._TranNetMemberCode = None
        self._MemberName = None
        self._MemberGlobalType = None
        self._MemberGlobalId = None
        self._MemberAcctNo = None
        self._BankType = None
        self._AcctOpenBranchName = None
        self._Mobile = None
        self._CnapsBranchId = None
        self._EiconBankBranchId = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberName(self):
        return self._MemberName

    @MemberName.setter
    def MemberName(self, MemberName):
        self._MemberName = MemberName

    @property
    def MemberGlobalType(self):
        return self._MemberGlobalType

    @MemberGlobalType.setter
    def MemberGlobalType(self, MemberGlobalType):
        self._MemberGlobalType = MemberGlobalType

    @property
    def MemberGlobalId(self):
        return self._MemberGlobalId

    @MemberGlobalId.setter
    def MemberGlobalId(self, MemberGlobalId):
        self._MemberGlobalId = MemberGlobalId

    @property
    def MemberAcctNo(self):
        return self._MemberAcctNo

    @MemberAcctNo.setter
    def MemberAcctNo(self, MemberAcctNo):
        self._MemberAcctNo = MemberAcctNo

    @property
    def BankType(self):
        return self._BankType

    @BankType.setter
    def BankType(self, BankType):
        self._BankType = BankType

    @property
    def AcctOpenBranchName(self):
        return self._AcctOpenBranchName

    @AcctOpenBranchName.setter
    def AcctOpenBranchName(self, AcctOpenBranchName):
        self._AcctOpenBranchName = AcctOpenBranchName

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberName = params.get("MemberName")
        self._MemberGlobalType = params.get("MemberGlobalType")
        self._MemberGlobalId = params.get("MemberGlobalId")
        self._MemberAcctNo = params.get("MemberAcctNo")
        self._BankType = params.get("BankType")
        self._AcctOpenBranchName = params.get("AcctOpenBranchName")
        self._Mobile = params.get("Mobile")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindRelateAcctSmallAmountResponse(AbstractModel):
    """BindRelateAcctSmallAmount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域（来账鉴权的方式下，此字段的值为客户需往监管账户转入的金额。在同名子账户绑定的场景下，若返回""VERIFIED""则说明无需验证直接绑定成功）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class BindRelateAcctUnionPayRequest(AbstractModel):
    """BindRelateAcctUnionPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（若需要把一个待绑定账户关联到两个会员名下，此字段可上送两个会员的交易网代码，并且须用“|::|”（右侧）进行分隔）
        :type TranNetMemberCode: str
        :param _MemberName: STRING(150)，见证子账户的户名（首次绑定的情况下，此字段即为待绑定的提现账户的户名。非首次绑定的情况下，须注意带绑定的提现账户的户名须与留存在后台系统的会员户名一致）
        :type MemberName: str
        :param _MemberGlobalType: STRING(5)，会员证件类型（详情见“常见问题”）
        :type MemberGlobalType: str
        :param _MemberGlobalId: STRING(32)，会员证件号码
        :type MemberGlobalId: str
        :param _MemberAcctNo: STRING(50)，会员的待绑定账户的账号（提现的银行卡）
        :type MemberAcctNo: str
        :param _BankType: STRING(10)，会员的待绑定账户的本他行类型（1: 本行; 2: 他行）
        :type BankType: str
        :param _AcctOpenBranchName: STRING(150)，会员的待绑定账户的开户行名称（若大小额行号不填则送超级网银号对应的银行名称，若填大小额行号则送大小额行号对应的银行名称）
        :type AcctOpenBranchName: str
        :param _Mobile: STRING(30)，会员的手机号（手机号须由长度为11位的数字构成）
        :type Mobile: str
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _CnapsBranchId: STRING(20)，会员的待绑定账户的开户行的联行号（本他行类型为他行的情况下，此字段和下一个字段至少一个不为空）
        :type CnapsBranchId: str
        :param _EiconBankBranchId: STRING(20)，会员的待绑定账户的开户行的超级网银行号（本他行类型为他行的情况下，此字段和上一个字段至少一个不为空）
        :type EiconBankBranchId: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._TranNetMemberCode = None
        self._MemberName = None
        self._MemberGlobalType = None
        self._MemberGlobalId = None
        self._MemberAcctNo = None
        self._BankType = None
        self._AcctOpenBranchName = None
        self._Mobile = None
        self._MrchCode = None
        self._CnapsBranchId = None
        self._EiconBankBranchId = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberName(self):
        return self._MemberName

    @MemberName.setter
    def MemberName(self, MemberName):
        self._MemberName = MemberName

    @property
    def MemberGlobalType(self):
        return self._MemberGlobalType

    @MemberGlobalType.setter
    def MemberGlobalType(self, MemberGlobalType):
        self._MemberGlobalType = MemberGlobalType

    @property
    def MemberGlobalId(self):
        return self._MemberGlobalId

    @MemberGlobalId.setter
    def MemberGlobalId(self, MemberGlobalId):
        self._MemberGlobalId = MemberGlobalId

    @property
    def MemberAcctNo(self):
        return self._MemberAcctNo

    @MemberAcctNo.setter
    def MemberAcctNo(self, MemberAcctNo):
        self._MemberAcctNo = MemberAcctNo

    @property
    def BankType(self):
        return self._BankType

    @BankType.setter
    def BankType(self, BankType):
        self._BankType = BankType

    @property
    def AcctOpenBranchName(self):
        return self._AcctOpenBranchName

    @AcctOpenBranchName.setter
    def AcctOpenBranchName(self, AcctOpenBranchName):
        self._AcctOpenBranchName = AcctOpenBranchName

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberName = params.get("MemberName")
        self._MemberGlobalType = params.get("MemberGlobalType")
        self._MemberGlobalId = params.get("MemberGlobalId")
        self._MemberAcctNo = params.get("MemberAcctNo")
        self._BankType = params.get("BankType")
        self._AcctOpenBranchName = params.get("AcctOpenBranchName")
        self._Mobile = params.get("Mobile")
        self._MrchCode = params.get("MrchCode")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class BindRelateAcctUnionPayResponse(AbstractModel):
    """BindRelateAcctUnionPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReservedMsg: STRING(1027)，保留域（在同名子账户绑定的场景下，若返回"VERIFIED"则说明无需验证直接绑定成功）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReservedMsg = None
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._RequestId = None

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ReservedMsg = params.get("ReservedMsg")
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._RequestId = params.get("RequestId")


class BusinessLicenseInfo(AbstractModel):
    """营业证件信息

    """

    def __init__(self):
        r"""
        :param _BusinessLicenseType: 营业证件类型
 IDCARD：身份证
 CREDITCODE：统一社会信用代码
        :type BusinessLicenseType: str
        :param _BusinessLicenseNumber: 营业证件号码 非个人商户上送统一社会信用代码，个人商户上送身份证号码
        :type BusinessLicenseNumber: str
        :param _BusinessLicenseValidityType: 营业证件有效期类型 
LONGTERM：长期有效
OTHER：非长期有效
        :type BusinessLicenseValidityType: str
        :param _BusinessLicenseEffectiveDate: 营业证件生效日期，yyyy-MM-dd
        :type BusinessLicenseEffectiveDate: str
        :param _BusinessLicenseExpireDate: 营业证件失效日期，yyyy-MM-dd
        :type BusinessLicenseExpireDate: str
        """
        self._BusinessLicenseType = None
        self._BusinessLicenseNumber = None
        self._BusinessLicenseValidityType = None
        self._BusinessLicenseEffectiveDate = None
        self._BusinessLicenseExpireDate = None

    @property
    def BusinessLicenseType(self):
        return self._BusinessLicenseType

    @BusinessLicenseType.setter
    def BusinessLicenseType(self, BusinessLicenseType):
        self._BusinessLicenseType = BusinessLicenseType

    @property
    def BusinessLicenseNumber(self):
        return self._BusinessLicenseNumber

    @BusinessLicenseNumber.setter
    def BusinessLicenseNumber(self, BusinessLicenseNumber):
        self._BusinessLicenseNumber = BusinessLicenseNumber

    @property
    def BusinessLicenseValidityType(self):
        return self._BusinessLicenseValidityType

    @BusinessLicenseValidityType.setter
    def BusinessLicenseValidityType(self, BusinessLicenseValidityType):
        self._BusinessLicenseValidityType = BusinessLicenseValidityType

    @property
    def BusinessLicenseEffectiveDate(self):
        return self._BusinessLicenseEffectiveDate

    @BusinessLicenseEffectiveDate.setter
    def BusinessLicenseEffectiveDate(self, BusinessLicenseEffectiveDate):
        self._BusinessLicenseEffectiveDate = BusinessLicenseEffectiveDate

    @property
    def BusinessLicenseExpireDate(self):
        return self._BusinessLicenseExpireDate

    @BusinessLicenseExpireDate.setter
    def BusinessLicenseExpireDate(self, BusinessLicenseExpireDate):
        self._BusinessLicenseExpireDate = BusinessLicenseExpireDate


    def _deserialize(self, params):
        self._BusinessLicenseType = params.get("BusinessLicenseType")
        self._BusinessLicenseNumber = params.get("BusinessLicenseNumber")
        self._BusinessLicenseValidityType = params.get("BusinessLicenseValidityType")
        self._BusinessLicenseEffectiveDate = params.get("BusinessLicenseEffectiveDate")
        self._BusinessLicenseExpireDate = params.get("BusinessLicenseExpireDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ChannelContractInfo(AbstractModel):
    """米大师内部存放的合约信息

    """

    def __init__(self):
        r"""
        :param _OutContractCode: 外部合约协议号
        :type OutContractCode: str
        :param _ChannelContractCode: 米大师内部生成的合约协议号
        :type ChannelContractCode: str
        """
        self._OutContractCode = None
        self._ChannelContractCode = None

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def ChannelContractCode(self):
        return self._ChannelContractCode

    @ChannelContractCode.setter
    def ChannelContractCode(self, ChannelContractCode):
        self._ChannelContractCode = ChannelContractCode


    def _deserialize(self, params):
        self._OutContractCode = params.get("OutContractCode")
        self._ChannelContractCode = params.get("ChannelContractCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ChannelReturnContractInfo(AbstractModel):
    """米大师内部生成的合约信息

    """

    def __init__(self):
        r"""
        :param _ContractStatus: 平台合约状态
协议状态，枚举值：
CONTRACT_STATUS_SIGNED：已签约
CONTRACT_STATUS_TERMINATED：未签约
CONTRACT_STATUS_PENDING：签约进行中
        :type ContractStatus: str
        :param _ChannelContractInfo: 米大师内部存放的合约信息
        :type ChannelContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ChannelContractInfo`
        """
        self._ContractStatus = None
        self._ChannelContractInfo = None

    @property
    def ContractStatus(self):
        return self._ContractStatus

    @ContractStatus.setter
    def ContractStatus(self, ContractStatus):
        self._ContractStatus = ContractStatus

    @property
    def ChannelContractInfo(self):
        return self._ChannelContractInfo

    @ChannelContractInfo.setter
    def ChannelContractInfo(self, ChannelContractInfo):
        self._ChannelContractInfo = ChannelContractInfo


    def _deserialize(self, params):
        self._ContractStatus = params.get("ContractStatus")
        if params.get("ChannelContractInfo") is not None:
            self._ChannelContractInfo = ChannelContractInfo()
            self._ChannelContractInfo._deserialize(params.get("ChannelContractInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckAcctRequest(AbstractModel):
    """CheckAcct请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _BindType: 1 – 小额转账验证
2 – 短信验证
每个结算账户每天只能使用一次小额转账验证
        :type BindType: int
        :param _SettleAcctNo: 结算账户账号
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctNo: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _CheckCode: 短信验证码或指令号
BindType==2必填，平安渠道必填
        :type CheckCode: str
        :param _CurrencyType: 币种 RMB
BindType==1必填
        :type CurrencyType: str
        :param _CurrencyUnit: 单位
1：元，2：角，3：分
BindType==1必填
        :type CurrencyUnit: int
        :param _CurrencyAmt: 金额
BindType==1必填
        :type CurrencyAmt: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._BindType = None
        self._SettleAcctNo = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._CheckCode = None
        self._CurrencyType = None
        self._CurrencyUnit = None
        self._CurrencyAmt = None
        self._EncryptType = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def BindType(self):
        return self._BindType

    @BindType.setter
    def BindType(self, BindType):
        self._BindType = BindType

    @property
    def SettleAcctNo(self):
        return self._SettleAcctNo

    @SettleAcctNo.setter
    def SettleAcctNo(self, SettleAcctNo):
        self._SettleAcctNo = SettleAcctNo

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def CheckCode(self):
        return self._CheckCode

    @CheckCode.setter
    def CheckCode(self, CheckCode):
        self._CheckCode = CheckCode

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def CurrencyUnit(self):
        return self._CurrencyUnit

    @CurrencyUnit.setter
    def CurrencyUnit(self, CurrencyUnit):
        self._CurrencyUnit = CurrencyUnit

    @property
    def CurrencyAmt(self):
        return self._CurrencyAmt

    @CurrencyAmt.setter
    def CurrencyAmt(self, CurrencyAmt):
        self._CurrencyAmt = CurrencyAmt

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._BindType = params.get("BindType")
        self._SettleAcctNo = params.get("SettleAcctNo")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._CheckCode = params.get("CheckCode")
        self._CurrencyType = params.get("CurrencyType")
        self._CurrencyUnit = params.get("CurrencyUnit")
        self._CurrencyAmt = params.get("CurrencyAmt")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckAcctResponse(AbstractModel):
    """CheckAcct返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FrontSeqNo: 前置流水号，请保存
        :type FrontSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FrontSeqNo = None
        self._RequestId = None

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._RequestId = params.get("RequestId")


class CheckAmountRequest(AbstractModel):
    """CheckAmount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（若需要把一个待绑定账户关联到两个会员名下，此字段可上送两个会员的交易网代码，并且须用“|::|”(右侧)进行分隔）
        :type TranNetMemberCode: str
        :param _TakeCashAcctNo: STRING(50)，会员的待绑定账户的账号（即 BindRelateAcctSmallAmount接口中的“会员的待绑定账户的账号”）
        :type TakeCashAcctNo: str
        :param _AuthAmt: STRING(20)，鉴权验证金额（即 BindRelateAcctSmallAmount接口中的“会员的待绑定账户收到的验证金额。原小额转账鉴权方式为来账鉴权的情况下此字段须赋值为0.00）
        :type AuthAmt: str
        :param _Ccy: STRING(3)，币种（默认为RMB）
        :type Ccy: str
        :param _ReservedMsg: STRING(1027)，原小额转账方式（1: 往账鉴权，此为默认值; 2: 来账鉴权）
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._TranNetMemberCode = None
        self._TakeCashAcctNo = None
        self._AuthAmt = None
        self._Ccy = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def TakeCashAcctNo(self):
        return self._TakeCashAcctNo

    @TakeCashAcctNo.setter
    def TakeCashAcctNo(self, TakeCashAcctNo):
        self._TakeCashAcctNo = TakeCashAcctNo

    @property
    def AuthAmt(self):
        return self._AuthAmt

    @AuthAmt.setter
    def AuthAmt(self, AuthAmt):
        self._AuthAmt = AuthAmt

    @property
    def Ccy(self):
        return self._Ccy

    @Ccy.setter
    def Ccy(self, Ccy):
        self._Ccy = Ccy

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._TakeCashAcctNo = params.get("TakeCashAcctNo")
        self._AuthAmt = params.get("AuthAmt")
        self._Ccy = params.get("Ccy")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CheckAmountResponse(AbstractModel):
    """CheckAmount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号（即电商见证宝系统生成的流水号，可关联具体一笔请求）
        :type FrontSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class CityCodeResult(AbstractModel):
    """查询城市编码响应对象

    """

    def __init__(self):
        r"""
        :param _CityId: 城市编码cityid，数字与字母的结合
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _District: 县区
注意：此字段可能返回 null，表示取不到有效值。
        :type District: str
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        """
        self._CityId = None
        self._Province = None
        self._District = None
        self._City = None

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def District(self):
        return self._District

    @District.setter
    def District(self, District):
        self._District = District

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City


    def _deserialize(self, params):
        self._CityId = params.get("CityId")
        self._Province = params.get("Province")
        self._District = params.get("District")
        self._City = params.get("City")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ClearItem(AbstractModel):
    """银行在途清算结果信息

    """

    def __init__(self):
        r"""
        :param _Date: STRING(8)，日期（格式: 20190101）
注意：此字段可能返回 null，表示取不到有效值。
        :type Date: str
        :param _SubAcctType: STRING(40)，子账号类型（子帐号类型。1: 普通会员子账号; 2: 挂账子账号; 3: 手续费子账号; 4: 利息子账号; 5: 平台担保子账号; 7: 在途; 8: 理财购买子帐号; 9: 理财赎回子帐号; 10: 平台子拥有结算子帐号）
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctType: str
        :param _ReconcileStatus: STRING(3)，对账状态（0: 成功; 1: 失败）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReconcileStatus: str
        :param _ReconcileReturnMsg: STRING(300)，对账返回信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ReconcileReturnMsg: str
        :param _ClearingStatus: STRING(20)，清算状态（0: 成功; 1: 失败; 2: 异常; 3: 待处理）
注意：此字段可能返回 null，表示取不到有效值。
        :type ClearingStatus: str
        :param _ClearingReturnMsg: STRING(2)，清算返回信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ClearingReturnMsg: str
        :param _TotalAmt: STRING(300)，待清算总金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalAmt: str
        """
        self._Date = None
        self._SubAcctType = None
        self._ReconcileStatus = None
        self._ReconcileReturnMsg = None
        self._ClearingStatus = None
        self._ClearingReturnMsg = None
        self._TotalAmt = None

    @property
    def Date(self):
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def SubAcctType(self):
        return self._SubAcctType

    @SubAcctType.setter
    def SubAcctType(self, SubAcctType):
        self._SubAcctType = SubAcctType

    @property
    def ReconcileStatus(self):
        return self._ReconcileStatus

    @ReconcileStatus.setter
    def ReconcileStatus(self, ReconcileStatus):
        self._ReconcileStatus = ReconcileStatus

    @property
    def ReconcileReturnMsg(self):
        return self._ReconcileReturnMsg

    @ReconcileReturnMsg.setter
    def ReconcileReturnMsg(self, ReconcileReturnMsg):
        self._ReconcileReturnMsg = ReconcileReturnMsg

    @property
    def ClearingStatus(self):
        return self._ClearingStatus

    @ClearingStatus.setter
    def ClearingStatus(self, ClearingStatus):
        self._ClearingStatus = ClearingStatus

    @property
    def ClearingReturnMsg(self):
        return self._ClearingReturnMsg

    @ClearingReturnMsg.setter
    def ClearingReturnMsg(self, ClearingReturnMsg):
        self._ClearingReturnMsg = ClearingReturnMsg

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt


    def _deserialize(self, params):
        self._Date = params.get("Date")
        self._SubAcctType = params.get("SubAcctType")
        self._ReconcileStatus = params.get("ReconcileStatus")
        self._ReconcileReturnMsg = params.get("ReconcileReturnMsg")
        self._ClearingStatus = params.get("ClearingStatus")
        self._ClearingReturnMsg = params.get("ClearingReturnMsg")
        self._TotalAmt = params.get("TotalAmt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloseCloudOrderRequest(AbstractModel):
    """CloseCloudOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户Id，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _OutTradeNo: 开发者订单号
        :type OutTradeNo: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._OutTradeNo = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloseCloudOrderResponse(AbstractModel):
    """CloseCloudOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CloseOpenBankPaymentOrderRequest(AbstractModel):
    """CloseOpenBankPaymentOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID，云企付平台下发给外部接入平台。
        :type ChannelMerchantId: str
        :param _OutOrderId: 外部商户订单号，与ChannelOrderId不能同时为空
        :type OutOrderId: str
        :param _ChannelOrderId: 云企付平台订单号，与OutOrderId不能同时为空
        :type ChannelOrderId: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloseOpenBankPaymentOrderResponse(AbstractModel):
    """CloseOpenBankPaymentOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
        :type ErrMessage: str
        :param _Result: 关单响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CloseOpenBankPaymentOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CloseOpenBankPaymentOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CloseOpenBankPaymentOrderResult(AbstractModel):
    """云企付-关单响应

    """

    def __init__(self):
        r"""
        :param _OutOrderId: 外部商户订单号
        :type OutOrderId: str
        :param _ChannelOrderId: 云企付平台订单号
        :type ChannelOrderId: str
        :param _OrderStatus: 订单状态。关单成功CLOSED
        :type OrderStatus: str
        """
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._OrderStatus = None

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def OrderStatus(self):
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus


    def _deserialize(self, params):
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._OrderStatus = params.get("OrderStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloseOrderRequest(AbstractModel):
    """CloseOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID，长度不小于5位， 仅支持字母和数字的组合
        :type UserId: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _OutTradeNo: 业务订单号，OutTradeNo ， TransactionId二选一，不能都为空,优先使用 OutTradeNo
        :type OutTradeNo: str
        :param _TransactionId: 聚鑫订单号，OutTradeNo ， TransactionId二选一，不能都为空,优先使用 OutTradeNo
        :type TransactionId: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._OutTradeNo = None
        self._TransactionId = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._OutTradeNo = params.get("OutTradeNo")
        self._TransactionId = params.get("TransactionId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloseOrderResponse(AbstractModel):
    """CloseOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class CloudAttachmentInfo(AbstractModel):
    """附加项信息对象

    """

    def __init__(self):
        r"""
        :param _AttachmentAmount: 附加项金额。
附加项的金额（必须是正数，单位：分），代表积分的数量、抵扣的金额、溢价的金额、补贴的金额
        :type AttachmentAmount: int
        :param _AttachmentType: 附加项类型。
Add：加项；
Sub：减项；
Point：积分项；
Subsidy：补贴项。
        :type AttachmentType: str
        :param _AttachmentName: 附加项名称。
当银行作为收单机构可能会对该字段有要求，请向米大师确认。
        :type AttachmentName: str
        :param _AttachmentCode: 附加项编号。
当银行作为收单机构可能会对该字段有要求，请向米大师确认。
        :type AttachmentCode: str
        """
        self._AttachmentAmount = None
        self._AttachmentType = None
        self._AttachmentName = None
        self._AttachmentCode = None

    @property
    def AttachmentAmount(self):
        return self._AttachmentAmount

    @AttachmentAmount.setter
    def AttachmentAmount(self, AttachmentAmount):
        self._AttachmentAmount = AttachmentAmount

    @property
    def AttachmentType(self):
        return self._AttachmentType

    @AttachmentType.setter
    def AttachmentType(self, AttachmentType):
        self._AttachmentType = AttachmentType

    @property
    def AttachmentName(self):
        return self._AttachmentName

    @AttachmentName.setter
    def AttachmentName(self, AttachmentName):
        self._AttachmentName = AttachmentName

    @property
    def AttachmentCode(self):
        return self._AttachmentCode

    @AttachmentCode.setter
    def AttachmentCode(self, AttachmentCode):
        self._AttachmentCode = AttachmentCode


    def _deserialize(self, params):
        self._AttachmentAmount = params.get("AttachmentAmount")
        self._AttachmentType = params.get("AttachmentType")
        self._AttachmentName = params.get("AttachmentName")
        self._AttachmentCode = params.get("AttachmentCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudChannelExternalUserInfo(AbstractModel):
    """渠道方用户信息

    """

    def __init__(self):
        r"""
        :param _ChannelExternalUserType: 渠道方用户类型，枚举值:
WX_OPENID 微信支付类型
ALIPAY_BUYERID 支付宝支付类型
        :type ChannelExternalUserType: str
        :param _ChannelExternalUserId: 渠道方用户Id
        :type ChannelExternalUserId: str
        """
        self._ChannelExternalUserType = None
        self._ChannelExternalUserId = None

    @property
    def ChannelExternalUserType(self):
        return self._ChannelExternalUserType

    @ChannelExternalUserType.setter
    def ChannelExternalUserType(self, ChannelExternalUserType):
        self._ChannelExternalUserType = ChannelExternalUserType

    @property
    def ChannelExternalUserId(self):
        return self._ChannelExternalUserId

    @ChannelExternalUserId.setter
    def ChannelExternalUserId(self, ChannelExternalUserId):
        self._ChannelExternalUserId = ChannelExternalUserId


    def _deserialize(self, params):
        self._ChannelExternalUserType = params.get("ChannelExternalUserType")
        self._ChannelExternalUserId = params.get("ChannelExternalUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudClientInfo(AbstractModel):
    """客户端信息

    """

    def __init__(self):
        r"""
        :param _ClientType: 场景类型。
wechat_ecommerce渠道 - h5支付方式，此字段必填；
枚举值：
CLIENT_TYPE_UNKNOWN 未知;
CLIENT_TYPE_IOS ios系统;
CLIENT_TYPE_ANDROID 安卓系统;
CLIENT_TYPE_WAP WAP场景;
CLIENT_TYPE_H5 H5场景;
        :type ClientType: str
        :param _AppName: 应用名称。
        :type AppName: str
        :param _AppUrl: 网站URL。
        :type AppUrl: str
        :param _BundleId: IOS平台BundleID。
        :type BundleId: str
        :param _PackageName: Android平台PackageName
        :type PackageName: str
        """
        self._ClientType = None
        self._AppName = None
        self._AppUrl = None
        self._BundleId = None
        self._PackageName = None

    @property
    def ClientType(self):
        return self._ClientType

    @ClientType.setter
    def ClientType(self, ClientType):
        self._ClientType = ClientType

    @property
    def AppName(self):
        return self._AppName

    @AppName.setter
    def AppName(self, AppName):
        self._AppName = AppName

    @property
    def AppUrl(self):
        return self._AppUrl

    @AppUrl.setter
    def AppUrl(self, AppUrl):
        self._AppUrl = AppUrl

    @property
    def BundleId(self):
        return self._BundleId

    @BundleId.setter
    def BundleId(self, BundleId):
        self._BundleId = BundleId

    @property
    def PackageName(self):
        return self._PackageName

    @PackageName.setter
    def PackageName(self, PackageName):
        self._PackageName = PackageName


    def _deserialize(self, params):
        self._ClientType = params.get("ClientType")
        self._AppName = params.get("AppName")
        self._AppUrl = params.get("AppUrl")
        self._BundleId = params.get("BundleId")
        self._PackageName = params.get("PackageName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudExternalAttachmentData(AbstractModel):
    """渠道透传字段

    """

    def __init__(self):
        r"""
        :param _ChannelName: 渠道名
        :type ChannelName: str
        :param _AttachmentData: 渠道透传字段，由各个渠道自行定义
        :type AttachmentData: str
        """
        self._ChannelName = None
        self._AttachmentData = None

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def AttachmentData(self):
        return self._AttachmentData

    @AttachmentData.setter
    def AttachmentData(self, AttachmentData):
        self._AttachmentData = AttachmentData


    def _deserialize(self, params):
        self._ChannelName = params.get("ChannelName")
        self._AttachmentData = params.get("AttachmentData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudExternalChannelData(AbstractModel):
    """第三方渠道数据信息

    """

    def __init__(self):
        r"""
        :param _ExternalChannelDataName: 第三方渠道数据名。
PAYMENT_ORDER_EXTERNAL_REQUEST_DATA: 支付下单请求数据
PAYMENT_ORDER_EXTERNAL_RETURN_DATA: 支付下单返回数据
PAYMENT_ORDER_EXTERNAL_NOTIFY_DATA: 支付通知数据
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalChannelDataName: str
        :param _ExternalChannelDataValue: 第三方渠道数据值。
当ExternalChannelDataType=PAYMENT时，反序列化格式请参考[ExternalChannelPaymentDataValue](https://dev.tke.midas.qq.com/juxin-doc-next/apidocs/external-channel-data/QueryExternalChannelData.html#externalchannelpaymentdatavalue)
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalChannelDataValue: str
        """
        self._ExternalChannelDataName = None
        self._ExternalChannelDataValue = None

    @property
    def ExternalChannelDataName(self):
        return self._ExternalChannelDataName

    @ExternalChannelDataName.setter
    def ExternalChannelDataName(self, ExternalChannelDataName):
        self._ExternalChannelDataName = ExternalChannelDataName

    @property
    def ExternalChannelDataValue(self):
        return self._ExternalChannelDataValue

    @ExternalChannelDataValue.setter
    def ExternalChannelDataValue(self, ExternalChannelDataValue):
        self._ExternalChannelDataValue = ExternalChannelDataValue


    def _deserialize(self, params):
        self._ExternalChannelDataName = params.get("ExternalChannelDataName")
        self._ExternalChannelDataValue = params.get("ExternalChannelDataValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudExternalPromptGroup(AbstractModel):
    """渠道扩展促销信息

    """

    def __init__(self):
        r"""
        :param _ChannelName: 渠道名。
为米大师定义的枚举值：
wechat 微信渠道
        :type ChannelName: str
        :param _ExternalPromptInfoList: 渠道扩展促销信息列表，由各个渠道自行定义。
ChannelName为wechat时，组成为 <Wechat-ExternalPromptInfo>
        :type ExternalPromptInfoList: list of CloudExternalPromptInfo
        """
        self._ChannelName = None
        self._ExternalPromptInfoList = None

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def ExternalPromptInfoList(self):
        return self._ExternalPromptInfoList

    @ExternalPromptInfoList.setter
    def ExternalPromptInfoList(self, ExternalPromptInfoList):
        self._ExternalPromptInfoList = ExternalPromptInfoList


    def _deserialize(self, params):
        self._ChannelName = params.get("ChannelName")
        if params.get("ExternalPromptInfoList") is not None:
            self._ExternalPromptInfoList = []
            for item in params.get("ExternalPromptInfoList"):
                obj = CloudExternalPromptInfo()
                obj._deserialize(item)
                self._ExternalPromptInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudExternalPromptInfo(AbstractModel):
    """渠道扩展促销信息

    """

    def __init__(self):
        r"""
        :param _ExternalPromptType: 优惠商品信息类型。
        :type ExternalPromptType: str
        :param _ExternalPromptValue: 优惠商品信息数据。
        :type ExternalPromptValue: str
        :param _ExternalPromptName: 优惠商品名称。
        :type ExternalPromptName: str
        """
        self._ExternalPromptType = None
        self._ExternalPromptValue = None
        self._ExternalPromptName = None

    @property
    def ExternalPromptType(self):
        return self._ExternalPromptType

    @ExternalPromptType.setter
    def ExternalPromptType(self, ExternalPromptType):
        self._ExternalPromptType = ExternalPromptType

    @property
    def ExternalPromptValue(self):
        return self._ExternalPromptValue

    @ExternalPromptValue.setter
    def ExternalPromptValue(self, ExternalPromptValue):
        self._ExternalPromptValue = ExternalPromptValue

    @property
    def ExternalPromptName(self):
        return self._ExternalPromptName

    @ExternalPromptName.setter
    def ExternalPromptName(self, ExternalPromptName):
        self._ExternalPromptName = ExternalPromptName


    def _deserialize(self, params):
        self._ExternalPromptType = params.get("ExternalPromptType")
        self._ExternalPromptValue = params.get("ExternalPromptValue")
        self._ExternalPromptName = params.get("ExternalPromptName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudExternalUserInfo(AbstractModel):
    """渠道方用户信息

    """

    def __init__(self):
        r"""
        :param _ExternalUserType: 渠道方用户类型
        :type ExternalUserType: str
        :param _ExternalUserId: 渠道方用户ID
        :type ExternalUserId: str
        """
        self._ExternalUserType = None
        self._ExternalUserId = None

    @property
    def ExternalUserType(self):
        return self._ExternalUserType

    @ExternalUserType.setter
    def ExternalUserType(self, ExternalUserType):
        self._ExternalUserType = ExternalUserType

    @property
    def ExternalUserId(self):
        return self._ExternalUserId

    @ExternalUserId.setter
    def ExternalUserId(self, ExternalUserId):
        self._ExternalUserId = ExternalUserId


    def _deserialize(self, params):
        self._ExternalUserType = params.get("ExternalUserType")
        self._ExternalUserId = params.get("ExternalUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudGlobalPayTimeInfo(AbstractModel):
    """全局支付时间信息

    """

    def __init__(self):
        r"""
        :param _StartTimestamp: 订单开始时间。
不指定时默认为当前时间。
        :type StartTimestamp: int
        :param _ExpireTimestamp: 订单结束时间。
逾期将会拒绝下单。不指定时默认为当前时间的7天后结束。
        :type ExpireTimestamp: int
        :param _TimeOffset: 时区。
不指定时默认为28800，表示北京时间（东八区）。
        :type TimeOffset: int
        """
        self._StartTimestamp = None
        self._ExpireTimestamp = None
        self._TimeOffset = None

    @property
    def StartTimestamp(self):
        return self._StartTimestamp

    @StartTimestamp.setter
    def StartTimestamp(self, StartTimestamp):
        self._StartTimestamp = StartTimestamp

    @property
    def ExpireTimestamp(self):
        return self._ExpireTimestamp

    @ExpireTimestamp.setter
    def ExpireTimestamp(self, ExpireTimestamp):
        self._ExpireTimestamp = ExpireTimestamp

    @property
    def TimeOffset(self):
        return self._TimeOffset

    @TimeOffset.setter
    def TimeOffset(self, TimeOffset):
        self._TimeOffset = TimeOffset


    def _deserialize(self, params):
        self._StartTimestamp = params.get("StartTimestamp")
        self._ExpireTimestamp = params.get("ExpireTimestamp")
        self._TimeOffset = params.get("TimeOffset")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudOrderReturn(AbstractModel):
    """返回订单信息

    """

    def __init__(self):
        r"""
        :param _AppId: 米大师分配的支付主MidasAppId
        :type AppId: str
        :param _OutTradeNo: 开发者支付订单号
        :type OutTradeNo: str
        :param _SubOrderList: 调用下单接口传进来的子单列表
注意：此字段可能返回 null，表示取不到有效值。
        :type SubOrderList: list of CloudSubOrderReturn
        :param _TransactionId: 调用下单接口获取的米大师交易订单号
        :type TransactionId: str
        :param _UserId: 用户Id
        :type UserId: str
        :param _Channel: 支付渠道
wechat:微信支付
        :type Channel: str
        :param _ProductId: 物品Id
        :type ProductId: str
        :param _Metadata: 发货标识，由开发者在调用下单接口的时候传入
        :type Metadata: str
        :param _CurrencyType: ISO货币代码
        :type CurrencyType: str
        :param _Amt: 支付金额，单位：分
        :type Amt: int
        :param _OrderState: 订单状态
0:初始状态，获取米大师交易订单成功
1:拉起米大师支付页面成功，用户未支付
2:用户支付成功，正在发货
3:用户支付成功，发货失败
4:用户支付成功，发货成功
5:关单中
6:已关单
        :type OrderState: str
        :param _OrderTime: 下单时间，unix时间戳
        :type OrderTime: str
        :param _PayTime: 支付时间，unix时间戳
        :type PayTime: str
        :param _CallBackTime: 支付回调时间，unix时间戳
        :type CallBackTime: str
        :param _ChannelExternalOrderId: 支付机构订单号
        :type ChannelExternalOrderId: str
        :param _ChannelOrderId: 米大师内部渠道订单号
        :type ChannelOrderId: str
        :param _RefundFlag: 是否曾退款
        :type RefundFlag: str
        :param _CashAmt: 用户支付金额
        :type CashAmt: str
        :param _CouponAmt: 抵扣券金额
        :type CouponAmt: str
        :param _ProductName: 商品名称
        :type ProductName: str
        :param _SettleInfo: 结算信息
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudSettleInfo`
        :param _AttachmentInfoList: 附加项信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentInfoList: list of CloudAttachmentInfo
        :param _ChannelExternalUserInfoList: 渠道方返回的用户信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalUserInfoList: list of CloudChannelExternalUserInfo
        :param _ExternalReturnPromptGroupList: 渠道扩展促销列表
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnPromptGroupList: list of CloudExternalPromptGroup
        :param _SceneInfo: 场景扩展信息
注意：此字段可能返回 null，表示取不到有效值。
        :type SceneInfo: str
        :param _SubAppId: 子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAppId: str
        :param _PayScene: 支付场景
注意：此字段可能返回 null，表示取不到有效值。
        :type PayScene: str
        :param _PaymentMethod: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentMethod: str
        :param _TotalPlatformIncome: 平台应收金额
单位：分，需要注意的是，TotalAmt=TotalPlatformIncome+TotalMchIncome
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalPlatformIncome: int
        :param _TotalMchIncome: 商户应收金额
单位：分，需要注意的是，TotalAmt=TotalPlatformIncome+TotalMchIncome
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalMchIncome: int
        """
        self._AppId = None
        self._OutTradeNo = None
        self._SubOrderList = None
        self._TransactionId = None
        self._UserId = None
        self._Channel = None
        self._ProductId = None
        self._Metadata = None
        self._CurrencyType = None
        self._Amt = None
        self._OrderState = None
        self._OrderTime = None
        self._PayTime = None
        self._CallBackTime = None
        self._ChannelExternalOrderId = None
        self._ChannelOrderId = None
        self._RefundFlag = None
        self._CashAmt = None
        self._CouponAmt = None
        self._ProductName = None
        self._SettleInfo = None
        self._AttachmentInfoList = None
        self._ChannelExternalUserInfoList = None
        self._ExternalReturnPromptGroupList = None
        self._SceneInfo = None
        self._SubAppId = None
        self._PayScene = None
        self._PaymentMethod = None
        self._TotalPlatformIncome = None
        self._TotalMchIncome = None

    @property
    def AppId(self):
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def SubOrderList(self):
        return self._SubOrderList

    @SubOrderList.setter
    def SubOrderList(self, SubOrderList):
        self._SubOrderList = SubOrderList

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def OrderState(self):
        return self._OrderState

    @OrderState.setter
    def OrderState(self, OrderState):
        self._OrderState = OrderState

    @property
    def OrderTime(self):
        return self._OrderTime

    @OrderTime.setter
    def OrderTime(self, OrderTime):
        self._OrderTime = OrderTime

    @property
    def PayTime(self):
        return self._PayTime

    @PayTime.setter
    def PayTime(self, PayTime):
        self._PayTime = PayTime

    @property
    def CallBackTime(self):
        return self._CallBackTime

    @CallBackTime.setter
    def CallBackTime(self, CallBackTime):
        self._CallBackTime = CallBackTime

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def RefundFlag(self):
        return self._RefundFlag

    @RefundFlag.setter
    def RefundFlag(self, RefundFlag):
        self._RefundFlag = RefundFlag

    @property
    def CashAmt(self):
        return self._CashAmt

    @CashAmt.setter
    def CashAmt(self, CashAmt):
        self._CashAmt = CashAmt

    @property
    def CouponAmt(self):
        return self._CouponAmt

    @CouponAmt.setter
    def CouponAmt(self, CouponAmt):
        self._CouponAmt = CouponAmt

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def SettleInfo(self):
        return self._SettleInfo

    @SettleInfo.setter
    def SettleInfo(self, SettleInfo):
        self._SettleInfo = SettleInfo

    @property
    def AttachmentInfoList(self):
        return self._AttachmentInfoList

    @AttachmentInfoList.setter
    def AttachmentInfoList(self, AttachmentInfoList):
        self._AttachmentInfoList = AttachmentInfoList

    @property
    def ChannelExternalUserInfoList(self):
        return self._ChannelExternalUserInfoList

    @ChannelExternalUserInfoList.setter
    def ChannelExternalUserInfoList(self, ChannelExternalUserInfoList):
        self._ChannelExternalUserInfoList = ChannelExternalUserInfoList

    @property
    def ExternalReturnPromptGroupList(self):
        return self._ExternalReturnPromptGroupList

    @ExternalReturnPromptGroupList.setter
    def ExternalReturnPromptGroupList(self, ExternalReturnPromptGroupList):
        self._ExternalReturnPromptGroupList = ExternalReturnPromptGroupList

    @property
    def SceneInfo(self):
        return self._SceneInfo

    @SceneInfo.setter
    def SceneInfo(self, SceneInfo):
        self._SceneInfo = SceneInfo

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def PayScene(self):
        return self._PayScene

    @PayScene.setter
    def PayScene(self, PayScene):
        self._PayScene = PayScene

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def TotalPlatformIncome(self):
        return self._TotalPlatformIncome

    @TotalPlatformIncome.setter
    def TotalPlatformIncome(self, TotalPlatformIncome):
        self._TotalPlatformIncome = TotalPlatformIncome

    @property
    def TotalMchIncome(self):
        return self._TotalMchIncome

    @TotalMchIncome.setter
    def TotalMchIncome(self, TotalMchIncome):
        self._TotalMchIncome = TotalMchIncome


    def _deserialize(self, params):
        self._AppId = params.get("AppId")
        self._OutTradeNo = params.get("OutTradeNo")
        if params.get("SubOrderList") is not None:
            self._SubOrderList = []
            for item in params.get("SubOrderList"):
                obj = CloudSubOrderReturn()
                obj._deserialize(item)
                self._SubOrderList.append(obj)
        self._TransactionId = params.get("TransactionId")
        self._UserId = params.get("UserId")
        self._Channel = params.get("Channel")
        self._ProductId = params.get("ProductId")
        self._Metadata = params.get("Metadata")
        self._CurrencyType = params.get("CurrencyType")
        self._Amt = params.get("Amt")
        self._OrderState = params.get("OrderState")
        self._OrderTime = params.get("OrderTime")
        self._PayTime = params.get("PayTime")
        self._CallBackTime = params.get("CallBackTime")
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._RefundFlag = params.get("RefundFlag")
        self._CashAmt = params.get("CashAmt")
        self._CouponAmt = params.get("CouponAmt")
        self._ProductName = params.get("ProductName")
        if params.get("SettleInfo") is not None:
            self._SettleInfo = CloudSettleInfo()
            self._SettleInfo._deserialize(params.get("SettleInfo"))
        if params.get("AttachmentInfoList") is not None:
            self._AttachmentInfoList = []
            for item in params.get("AttachmentInfoList"):
                obj = CloudAttachmentInfo()
                obj._deserialize(item)
                self._AttachmentInfoList.append(obj)
        if params.get("ChannelExternalUserInfoList") is not None:
            self._ChannelExternalUserInfoList = []
            for item in params.get("ChannelExternalUserInfoList"):
                obj = CloudChannelExternalUserInfo()
                obj._deserialize(item)
                self._ChannelExternalUserInfoList.append(obj)
        if params.get("ExternalReturnPromptGroupList") is not None:
            self._ExternalReturnPromptGroupList = []
            for item in params.get("ExternalReturnPromptGroupList"):
                obj = CloudExternalPromptGroup()
                obj._deserialize(item)
                self._ExternalReturnPromptGroupList.append(obj)
        self._SceneInfo = params.get("SceneInfo")
        self._SubAppId = params.get("SubAppId")
        self._PayScene = params.get("PayScene")
        self._PaymentMethod = params.get("PaymentMethod")
        self._TotalPlatformIncome = params.get("TotalPlatformIncome")
        self._TotalMchIncome = params.get("TotalMchIncome")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudSettleInfo(AbstractModel):
    """结算信息对象

    """

    def __init__(self):
        r"""
        :param _NeedToBeConfirmed: 是否需要支付确认。
0: 不需要支付确认
1: 需要支付确认
传1时，需要在支付完成后成功调用了《支付确认》接口，该笔订单才会被清分出去
        :type NeedToBeConfirmed: int
        :param _ProfitSharing: 是否指定分账。
0: 不指定分账
1: 指定分账
        :type ProfitSharing: int
        """
        self._NeedToBeConfirmed = None
        self._ProfitSharing = None

    @property
    def NeedToBeConfirmed(self):
        return self._NeedToBeConfirmed

    @NeedToBeConfirmed.setter
    def NeedToBeConfirmed(self, NeedToBeConfirmed):
        self._NeedToBeConfirmed = NeedToBeConfirmed

    @property
    def ProfitSharing(self):
        return self._ProfitSharing

    @ProfitSharing.setter
    def ProfitSharing(self, ProfitSharing):
        self._ProfitSharing = ProfitSharing


    def _deserialize(self, params):
        self._NeedToBeConfirmed = params.get("NeedToBeConfirmed")
        self._ProfitSharing = params.get("ProfitSharing")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudStoreInfo(AbstractModel):
    """门店信息

    """

    def __init__(self):
        r"""
        :param _StoreId: 门店ID。
        :type StoreId: str
        :param _StoreName: 门店名称。
        :type StoreName: str
        :param _StoreAddress: 门店地址。
        :type StoreAddress: str
        :param _StoreAreaCode: 门店地区代码。
        :type StoreAreaCode: str
        :param _StoreDeviceId: 设备ID。
wechat_ecommerce渠道 - h5支付方式，此字段必填。
        :type StoreDeviceId: str
        """
        self._StoreId = None
        self._StoreName = None
        self._StoreAddress = None
        self._StoreAreaCode = None
        self._StoreDeviceId = None

    @property
    def StoreId(self):
        return self._StoreId

    @StoreId.setter
    def StoreId(self, StoreId):
        self._StoreId = StoreId

    @property
    def StoreName(self):
        return self._StoreName

    @StoreName.setter
    def StoreName(self, StoreName):
        self._StoreName = StoreName

    @property
    def StoreAddress(self):
        return self._StoreAddress

    @StoreAddress.setter
    def StoreAddress(self, StoreAddress):
        self._StoreAddress = StoreAddress

    @property
    def StoreAreaCode(self):
        return self._StoreAreaCode

    @StoreAreaCode.setter
    def StoreAreaCode(self, StoreAreaCode):
        self._StoreAreaCode = StoreAreaCode

    @property
    def StoreDeviceId(self):
        return self._StoreDeviceId

    @StoreDeviceId.setter
    def StoreDeviceId(self, StoreDeviceId):
        self._StoreDeviceId = StoreDeviceId


    def _deserialize(self, params):
        self._StoreId = params.get("StoreId")
        self._StoreName = params.get("StoreName")
        self._StoreAddress = params.get("StoreAddress")
        self._StoreAreaCode = params.get("StoreAreaCode")
        self._StoreDeviceId = params.get("StoreDeviceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudSubOrder(AbstractModel):
    """子订单对象

    """

    def __init__(self):
        r"""
        :param _SubOutTradeNo: 子订单号。
长度32个字符供参考，部分渠道存在长度更短的情况接入时请联系开发咨询。
        :type SubOutTradeNo: str
        :param _SubAppId: 支付子商户ID。
米大师计费SubAppId，代表子商户。
        :type SubAppId: str
        :param _ProductName: 商品名称。
业务自定义的子订单商品名称，无需URL编码，长度限制以具体所接入渠道为准。
        :type ProductName: str
        :param _ProductDetail: 商品详情。
业务自定义的子订单商品详情，无需URL编码，长度限制以具体所接入渠道为准。
        :type ProductDetail: str
        :param _PlatformIncome: 平台应收。
子订单平台应收金额，单位：分，需要注意的是Amt = PlatformIncome+SubMchIncome。
        :type PlatformIncome: int
        :param _SubMchIncome: 商户应收。
子订单结算应收金额，单位：分，需要注意的是Amt = PlatformIncome+SubMchIncome。
        :type SubMchIncome: int
        :param _Metadata: 透传字段。
发货标识，由开发者在调用米大师下单接口的 时候下发。
        :type Metadata: str
        :param _Amt: 支付金额。
子订单支付金额，需要注意的是Amt = PlatformIncome+SubMchIncome。
        :type Amt: int
        :param _OriginalAmt: 原始金额。
子订单原始金额，OriginalAmt>=Amt。
        :type OriginalAmt: int
        :param _WxSubMchId: 微信子商户号。
        :type WxSubMchId: str
        :param _SettleInfo: 结算信息。
例如是否需要分账、是否需要支付确认等。
        :type SettleInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudSettleInfo`
        :param _AttachmentInfoList: 附加项信息列表。
例如溢价信息、抵扣信息、积分信息、补贴信息
通过该字段可以实现渠道方的优惠抵扣补贴等营销功能。
        :type AttachmentInfoList: list of CloudAttachmentInfo
        :param _ExternalAttachmentDataList: 渠道透传数据列表。
        :type ExternalAttachmentDataList: list of CloudExternalAttachmentData
        """
        self._SubOutTradeNo = None
        self._SubAppId = None
        self._ProductName = None
        self._ProductDetail = None
        self._PlatformIncome = None
        self._SubMchIncome = None
        self._Metadata = None
        self._Amt = None
        self._OriginalAmt = None
        self._WxSubMchId = None
        self._SettleInfo = None
        self._AttachmentInfoList = None
        self._ExternalAttachmentDataList = None

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def PlatformIncome(self):
        return self._PlatformIncome

    @PlatformIncome.setter
    def PlatformIncome(self, PlatformIncome):
        self._PlatformIncome = PlatformIncome

    @property
    def SubMchIncome(self):
        return self._SubMchIncome

    @SubMchIncome.setter
    def SubMchIncome(self, SubMchIncome):
        self._SubMchIncome = SubMchIncome

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def WxSubMchId(self):
        return self._WxSubMchId

    @WxSubMchId.setter
    def WxSubMchId(self, WxSubMchId):
        self._WxSubMchId = WxSubMchId

    @property
    def SettleInfo(self):
        return self._SettleInfo

    @SettleInfo.setter
    def SettleInfo(self, SettleInfo):
        self._SettleInfo = SettleInfo

    @property
    def AttachmentInfoList(self):
        return self._AttachmentInfoList

    @AttachmentInfoList.setter
    def AttachmentInfoList(self, AttachmentInfoList):
        self._AttachmentInfoList = AttachmentInfoList

    @property
    def ExternalAttachmentDataList(self):
        return self._ExternalAttachmentDataList

    @ExternalAttachmentDataList.setter
    def ExternalAttachmentDataList(self, ExternalAttachmentDataList):
        self._ExternalAttachmentDataList = ExternalAttachmentDataList


    def _deserialize(self, params):
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._SubAppId = params.get("SubAppId")
        self._ProductName = params.get("ProductName")
        self._ProductDetail = params.get("ProductDetail")
        self._PlatformIncome = params.get("PlatformIncome")
        self._SubMchIncome = params.get("SubMchIncome")
        self._Metadata = params.get("Metadata")
        self._Amt = params.get("Amt")
        self._OriginalAmt = params.get("OriginalAmt")
        self._WxSubMchId = params.get("WxSubMchId")
        if params.get("SettleInfo") is not None:
            self._SettleInfo = CloudSettleInfo()
            self._SettleInfo._deserialize(params.get("SettleInfo"))
        if params.get("AttachmentInfoList") is not None:
            self._AttachmentInfoList = []
            for item in params.get("AttachmentInfoList"):
                obj = CloudAttachmentInfo()
                obj._deserialize(item)
                self._AttachmentInfoList.append(obj)
        if params.get("ExternalAttachmentDataList") is not None:
            self._ExternalAttachmentDataList = []
            for item in params.get("ExternalAttachmentDataList"):
                obj = CloudExternalAttachmentData()
                obj._deserialize(item)
                self._ExternalAttachmentDataList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudSubOrderRefund(AbstractModel):
    """退款子单

    """

    def __init__(self):
        r"""
        :param _RefundAmt: 子订单退款金额
        :type RefundAmt: int
        :param _PlatformRefundAmt: 平台应退金额
        :type PlatformRefundAmt: int
        :param _SubMchRefundAmt: 商家应退金额
        :type SubMchRefundAmt: int
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        :param _SubRefundId: 子退款单号，调用方需要保证全局唯一性
        :type SubRefundId: str
        """
        self._RefundAmt = None
        self._PlatformRefundAmt = None
        self._SubMchRefundAmt = None
        self._SubOutTradeNo = None
        self._SubRefundId = None

    @property
    def RefundAmt(self):
        return self._RefundAmt

    @RefundAmt.setter
    def RefundAmt(self, RefundAmt):
        self._RefundAmt = RefundAmt

    @property
    def PlatformRefundAmt(self):
        return self._PlatformRefundAmt

    @PlatformRefundAmt.setter
    def PlatformRefundAmt(self, PlatformRefundAmt):
        self._PlatformRefundAmt = PlatformRefundAmt

    @property
    def SubMchRefundAmt(self):
        return self._SubMchRefundAmt

    @SubMchRefundAmt.setter
    def SubMchRefundAmt(self, SubMchRefundAmt):
        self._SubMchRefundAmt = SubMchRefundAmt

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def SubRefundId(self):
        return self._SubRefundId

    @SubRefundId.setter
    def SubRefundId(self, SubRefundId):
        self._SubRefundId = SubRefundId


    def _deserialize(self, params):
        self._RefundAmt = params.get("RefundAmt")
        self._PlatformRefundAmt = params.get("PlatformRefundAmt")
        self._SubMchRefundAmt = params.get("SubMchRefundAmt")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._SubRefundId = params.get("SubRefundId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudSubOrderReturn(AbstractModel):
    """子订单详情

    """

    def __init__(self):
        r"""
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        :param _SubAppId: 米大师计费SubAppId，代表子商户
        :type SubAppId: str
        :param _ProductName: 子订单商品名称
        :type ProductName: str
        :param _ProductDetail: 子订单商品详情
        :type ProductDetail: str
        :param _PlatformIncome: 子订单平台应收金额，单位：分
        :type PlatformIncome: int
        :param _SubMchIncome: 子订单结算应收金额，单位：分
        :type SubMchIncome: int
        :param _Amt: 子订单支付金额
        :type Amt: int
        :param _OriginalAmt: 子订单原始金额
        :type OriginalAmt: int
        :param _SettleCheck: 核销状态，1表示核销，0表示未核销
        :type SettleCheck: int
        :param _SettleInfo: 结算信息
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudSettleInfo`
        :param _Metadata: 透传字段，由开发者在调用米大师下单接口的时候下发
        :type Metadata: str
        :param _AttachmentInfoList: 附加项信息
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentInfoList: :class:`tencentcloud.cpdp.v20190820.models.CloudAttachmentInfo`
        :param _ChannelExternalSubOrderId: 渠道方应答的订单号，透传处理
        :type ChannelExternalSubOrderId: str
        :param _WxSubMchId: 微信子商户号
        :type WxSubMchId: str
        :param _ChannelSubPayOrderId: 米大师侧渠道子订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubPayOrderId: str
        :param _ProductId: 物品ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ProductId: str
        """
        self._SubOutTradeNo = None
        self._SubAppId = None
        self._ProductName = None
        self._ProductDetail = None
        self._PlatformIncome = None
        self._SubMchIncome = None
        self._Amt = None
        self._OriginalAmt = None
        self._SettleCheck = None
        self._SettleInfo = None
        self._Metadata = None
        self._AttachmentInfoList = None
        self._ChannelExternalSubOrderId = None
        self._WxSubMchId = None
        self._ChannelSubPayOrderId = None
        self._ProductId = None

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def PlatformIncome(self):
        return self._PlatformIncome

    @PlatformIncome.setter
    def PlatformIncome(self, PlatformIncome):
        self._PlatformIncome = PlatformIncome

    @property
    def SubMchIncome(self):
        return self._SubMchIncome

    @SubMchIncome.setter
    def SubMchIncome(self, SubMchIncome):
        self._SubMchIncome = SubMchIncome

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def SettleCheck(self):
        return self._SettleCheck

    @SettleCheck.setter
    def SettleCheck(self, SettleCheck):
        self._SettleCheck = SettleCheck

    @property
    def SettleInfo(self):
        return self._SettleInfo

    @SettleInfo.setter
    def SettleInfo(self, SettleInfo):
        self._SettleInfo = SettleInfo

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def AttachmentInfoList(self):
        return self._AttachmentInfoList

    @AttachmentInfoList.setter
    def AttachmentInfoList(self, AttachmentInfoList):
        self._AttachmentInfoList = AttachmentInfoList

    @property
    def ChannelExternalSubOrderId(self):
        return self._ChannelExternalSubOrderId

    @ChannelExternalSubOrderId.setter
    def ChannelExternalSubOrderId(self, ChannelExternalSubOrderId):
        self._ChannelExternalSubOrderId = ChannelExternalSubOrderId

    @property
    def WxSubMchId(self):
        return self._WxSubMchId

    @WxSubMchId.setter
    def WxSubMchId(self, WxSubMchId):
        self._WxSubMchId = WxSubMchId

    @property
    def ChannelSubPayOrderId(self):
        return self._ChannelSubPayOrderId

    @ChannelSubPayOrderId.setter
    def ChannelSubPayOrderId(self, ChannelSubPayOrderId):
        self._ChannelSubPayOrderId = ChannelSubPayOrderId

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId


    def _deserialize(self, params):
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._SubAppId = params.get("SubAppId")
        self._ProductName = params.get("ProductName")
        self._ProductDetail = params.get("ProductDetail")
        self._PlatformIncome = params.get("PlatformIncome")
        self._SubMchIncome = params.get("SubMchIncome")
        self._Amt = params.get("Amt")
        self._OriginalAmt = params.get("OriginalAmt")
        self._SettleCheck = params.get("SettleCheck")
        if params.get("SettleInfo") is not None:
            self._SettleInfo = CloudSettleInfo()
            self._SettleInfo._deserialize(params.get("SettleInfo"))
        self._Metadata = params.get("Metadata")
        if params.get("AttachmentInfoList") is not None:
            self._AttachmentInfoList = CloudAttachmentInfo()
            self._AttachmentInfoList._deserialize(params.get("AttachmentInfoList"))
        self._ChannelExternalSubOrderId = params.get("ChannelExternalSubOrderId")
        self._WxSubMchId = params.get("WxSubMchId")
        self._ChannelSubPayOrderId = params.get("ChannelSubPayOrderId")
        self._ProductId = params.get("ProductId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CloudSubRefundItem(AbstractModel):
    """子单退款信息

    """

    def __init__(self):
        r"""
        :param _ChannelExternalRefundId: 渠道方应答的退款ID，透传处理
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalRefundId: str
        :param _ChannelExternalOrderId: 渠道方应答的订单号，透传处理
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalOrderId: str
        :param _RefundAmt: 子单退款金额
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundAmt: int
        :param _SubOutTradeNo: 子单订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type SubOutTradeNo: str
        :param _SubRefundId: 子单退款id
注意：此字段可能返回 null，表示取不到有效值。
        :type SubRefundId: str
        :param _SubAppId: 子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAppId: str
        :param _ChannelSubOrderId: 渠道子单支付订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubOrderId: str
        :param _ChannelSubRefundId: 渠道子退款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubRefundId: str
        """
        self._ChannelExternalRefundId = None
        self._ChannelExternalOrderId = None
        self._RefundAmt = None
        self._SubOutTradeNo = None
        self._SubRefundId = None
        self._SubAppId = None
        self._ChannelSubOrderId = None
        self._ChannelSubRefundId = None

    @property
    def ChannelExternalRefundId(self):
        return self._ChannelExternalRefundId

    @ChannelExternalRefundId.setter
    def ChannelExternalRefundId(self, ChannelExternalRefundId):
        self._ChannelExternalRefundId = ChannelExternalRefundId

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def RefundAmt(self):
        return self._RefundAmt

    @RefundAmt.setter
    def RefundAmt(self, RefundAmt):
        self._RefundAmt = RefundAmt

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def SubRefundId(self):
        return self._SubRefundId

    @SubRefundId.setter
    def SubRefundId(self, SubRefundId):
        self._SubRefundId = SubRefundId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def ChannelSubOrderId(self):
        return self._ChannelSubOrderId

    @ChannelSubOrderId.setter
    def ChannelSubOrderId(self, ChannelSubOrderId):
        self._ChannelSubOrderId = ChannelSubOrderId

    @property
    def ChannelSubRefundId(self):
        return self._ChannelSubRefundId

    @ChannelSubRefundId.setter
    def ChannelSubRefundId(self, ChannelSubRefundId):
        self._ChannelSubRefundId = ChannelSubRefundId


    def _deserialize(self, params):
        self._ChannelExternalRefundId = params.get("ChannelExternalRefundId")
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._RefundAmt = params.get("RefundAmt")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._SubRefundId = params.get("SubRefundId")
        self._SubAppId = params.get("SubAppId")
        self._ChannelSubOrderId = params.get("ChannelSubOrderId")
        self._ChannelSubRefundId = params.get("ChannelSubRefundId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CompanyTitleResult(AbstractModel):
    """公司抬头结果

    """

    def __init__(self):
        r"""
        :param _CompanyBankAccount: 公司银行账号
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyBankAccount: str
        :param _CompanyAddress: 公司地址
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyAddress: str
        :param _CompanyTaxpayerNum: 公司税号
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyTaxpayerNum: str
        :param _CompanyName: 公司名称
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyName: str
        :param _CompanyBankName: 公司银行名称
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyBankName: str
        :param _CompanyPhone: 公司电话
注意：此字段可能返回 null，表示取不到有效值。
        :type CompanyPhone: str
        """
        self._CompanyBankAccount = None
        self._CompanyAddress = None
        self._CompanyTaxpayerNum = None
        self._CompanyName = None
        self._CompanyBankName = None
        self._CompanyPhone = None

    @property
    def CompanyBankAccount(self):
        return self._CompanyBankAccount

    @CompanyBankAccount.setter
    def CompanyBankAccount(self, CompanyBankAccount):
        self._CompanyBankAccount = CompanyBankAccount

    @property
    def CompanyAddress(self):
        return self._CompanyAddress

    @CompanyAddress.setter
    def CompanyAddress(self, CompanyAddress):
        self._CompanyAddress = CompanyAddress

    @property
    def CompanyTaxpayerNum(self):
        return self._CompanyTaxpayerNum

    @CompanyTaxpayerNum.setter
    def CompanyTaxpayerNum(self, CompanyTaxpayerNum):
        self._CompanyTaxpayerNum = CompanyTaxpayerNum

    @property
    def CompanyName(self):
        return self._CompanyName

    @CompanyName.setter
    def CompanyName(self, CompanyName):
        self._CompanyName = CompanyName

    @property
    def CompanyBankName(self):
        return self._CompanyBankName

    @CompanyBankName.setter
    def CompanyBankName(self, CompanyBankName):
        self._CompanyBankName = CompanyBankName

    @property
    def CompanyPhone(self):
        return self._CompanyPhone

    @CompanyPhone.setter
    def CompanyPhone(self, CompanyPhone):
        self._CompanyPhone = CompanyPhone


    def _deserialize(self, params):
        self._CompanyBankAccount = params.get("CompanyBankAccount")
        self._CompanyAddress = params.get("CompanyAddress")
        self._CompanyTaxpayerNum = params.get("CompanyTaxpayerNum")
        self._CompanyName = params.get("CompanyName")
        self._CompanyBankName = params.get("CompanyBankName")
        self._CompanyPhone = params.get("CompanyPhone")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ConfirmOrderRequest(AbstractModel):
    """ConfirmOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的AppId
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。消费订单发起成功后，返回的平台唯一订单号。
        :type OrderNo: str
        """
        self._MerchantAppId = None
        self._OrderNo = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ConfirmOrderResponse(AbstractModel):
    """ConfirmOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的AppId
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。消费订单发起成功后，返回的平台唯一订单号。
        :type OrderNo: str
        :param _Status: 订单确认状态。0-确认失败
1-确认成功 
2-可疑状态
        :type Status: str
        :param _Description: 订单确认状态描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._OrderNo = None
        self._Status = None
        self._Description = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        self._Status = params.get("Status")
        self._Description = params.get("Description")
        self._RequestId = params.get("RequestId")


class ContractInfo(AbstractModel):
    """合约信息

    """

    def __init__(self):
        r"""
        :param _ChannelContractMerchantId: 米大师内部签约商户号
        :type ChannelContractMerchantId: str
        :param _ChannelContractSubMerchantId: 米大师内部签约子商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelContractSubMerchantId: str
        :param _ChannelContractAppId: 米大师内部签约应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelContractAppId: str
        :param _ChannelContractSubAppId: 米大师内部签约子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelContractSubAppId: str
        :param _OutContractCode: 业务合约协议号
        :type OutContractCode: str
        :param _ExternalContractUserInfoList: 第三方渠道用户信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalContractUserInfoList: list of ExternalContractUserInfo
        :param _ContractMethod: 签约方式，如 wechat_app ，使用app方式下的微信签
        :type ContractMethod: str
        :param _ContractSceneId: 合约场景id
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractSceneId: str
        :param _UserInfo: 用户信息
        :type UserInfo: :class:`tencentcloud.cpdp.v20190820.models.ContractUserInfo`
        :param _ExternalContractData: 第三方渠道签约数据
        :type ExternalContractData: str
        """
        self._ChannelContractMerchantId = None
        self._ChannelContractSubMerchantId = None
        self._ChannelContractAppId = None
        self._ChannelContractSubAppId = None
        self._OutContractCode = None
        self._ExternalContractUserInfoList = None
        self._ContractMethod = None
        self._ContractSceneId = None
        self._UserInfo = None
        self._ExternalContractData = None

    @property
    def ChannelContractMerchantId(self):
        return self._ChannelContractMerchantId

    @ChannelContractMerchantId.setter
    def ChannelContractMerchantId(self, ChannelContractMerchantId):
        self._ChannelContractMerchantId = ChannelContractMerchantId

    @property
    def ChannelContractSubMerchantId(self):
        return self._ChannelContractSubMerchantId

    @ChannelContractSubMerchantId.setter
    def ChannelContractSubMerchantId(self, ChannelContractSubMerchantId):
        self._ChannelContractSubMerchantId = ChannelContractSubMerchantId

    @property
    def ChannelContractAppId(self):
        return self._ChannelContractAppId

    @ChannelContractAppId.setter
    def ChannelContractAppId(self, ChannelContractAppId):
        self._ChannelContractAppId = ChannelContractAppId

    @property
    def ChannelContractSubAppId(self):
        return self._ChannelContractSubAppId

    @ChannelContractSubAppId.setter
    def ChannelContractSubAppId(self, ChannelContractSubAppId):
        self._ChannelContractSubAppId = ChannelContractSubAppId

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def ExternalContractUserInfoList(self):
        return self._ExternalContractUserInfoList

    @ExternalContractUserInfoList.setter
    def ExternalContractUserInfoList(self, ExternalContractUserInfoList):
        self._ExternalContractUserInfoList = ExternalContractUserInfoList

    @property
    def ContractMethod(self):
        return self._ContractMethod

    @ContractMethod.setter
    def ContractMethod(self, ContractMethod):
        self._ContractMethod = ContractMethod

    @property
    def ContractSceneId(self):
        return self._ContractSceneId

    @ContractSceneId.setter
    def ContractSceneId(self, ContractSceneId):
        self._ContractSceneId = ContractSceneId

    @property
    def UserInfo(self):
        return self._UserInfo

    @UserInfo.setter
    def UserInfo(self, UserInfo):
        self._UserInfo = UserInfo

    @property
    def ExternalContractData(self):
        return self._ExternalContractData

    @ExternalContractData.setter
    def ExternalContractData(self, ExternalContractData):
        self._ExternalContractData = ExternalContractData


    def _deserialize(self, params):
        self._ChannelContractMerchantId = params.get("ChannelContractMerchantId")
        self._ChannelContractSubMerchantId = params.get("ChannelContractSubMerchantId")
        self._ChannelContractAppId = params.get("ChannelContractAppId")
        self._ChannelContractSubAppId = params.get("ChannelContractSubAppId")
        self._OutContractCode = params.get("OutContractCode")
        if params.get("ExternalContractUserInfoList") is not None:
            self._ExternalContractUserInfoList = []
            for item in params.get("ExternalContractUserInfoList"):
                obj = ExternalContractUserInfo()
                obj._deserialize(item)
                self._ExternalContractUserInfoList.append(obj)
        self._ContractMethod = params.get("ContractMethod")
        self._ContractSceneId = params.get("ContractSceneId")
        if params.get("UserInfo") is not None:
            self._UserInfo = ContractUserInfo()
            self._UserInfo._deserialize(params.get("UserInfo"))
        self._ExternalContractData = params.get("ExternalContractData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ContractOrderInSubOrder(AbstractModel):
    """支付中签约子订单列表

    """

    def __init__(self):
        r"""
        :param _SubMchIncome: 子订单结算应收金额，单位： 分
        :type SubMchIncome: int
        :param _PlatformIncome: 子订单平台应收金额，单位：分
        :type PlatformIncome: int
        :param _ProductDetail: 子订单商品详情
        :type ProductDetail: str
        :param _ProductName: 子订单商品名称
        :type ProductName: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        :param _Amt: 子订单支付金额
        :type Amt: int
        :param _OriginalAmt: 子订单原始金额
        :type OriginalAmt: int
        :param _Metadata: 发货标识，由业务在调用聚鑫下单接口的 时候下发
        :type Metadata: str
        """
        self._SubMchIncome = None
        self._PlatformIncome = None
        self._ProductDetail = None
        self._ProductName = None
        self._SubAppId = None
        self._SubOutTradeNo = None
        self._Amt = None
        self._OriginalAmt = None
        self._Metadata = None

    @property
    def SubMchIncome(self):
        return self._SubMchIncome

    @SubMchIncome.setter
    def SubMchIncome(self, SubMchIncome):
        self._SubMchIncome = SubMchIncome

    @property
    def PlatformIncome(self):
        return self._PlatformIncome

    @PlatformIncome.setter
    def PlatformIncome(self, PlatformIncome):
        self._PlatformIncome = PlatformIncome

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata


    def _deserialize(self, params):
        self._SubMchIncome = params.get("SubMchIncome")
        self._PlatformIncome = params.get("PlatformIncome")
        self._ProductDetail = params.get("ProductDetail")
        self._ProductName = params.get("ProductName")
        self._SubAppId = params.get("SubAppId")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._Amt = params.get("Amt")
        self._OriginalAmt = params.get("OriginalAmt")
        self._Metadata = params.get("Metadata")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ContractOrderRequest(AbstractModel):
    """ContractOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CurrencyType: ISO 货币代码，CNY
        :type CurrencyType: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _OutTradeNo: 支付订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type OutTradeNo: str
        :param _ProductDetail: 商品详情，需要URL编码
        :type ProductDetail: str
        :param _ProductId: 商品ID，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type ProductId: str
        :param _ProductName: 商品名称，需要URL编码
        :type ProductName: str
        :param _TotalAmt: 支付金额，单位： 分
        :type TotalAmt: int
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _RealChannel: 银行真实渠道.如:bank_pingan
        :type RealChannel: str
        :param _OriginalAmt: 原始金额
        :type OriginalAmt: int
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _ContractNotifyUrl: 签约通知地址
        :type ContractNotifyUrl: str
        :param _CallbackUrl: Web端回调地址
        :type CallbackUrl: str
        :param _Channel: 指定支付渠道：  wechat：微信支付  qqwallet：QQ钱包 
 bank：网银支付  只有一个渠道时需要指定
        :type Channel: str
        :param _Metadata: 透传字段，支付成功回调透传给应用，用于业务透传自定义内容
        :type Metadata: str
        :param _Quantity: 购买数量，不传默认为1
        :type Quantity: int
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubOrderList: 子订单信息列表，格式：子订单号、子应用ID、金额。 压缩后最长不可超过65535字节(去除空格，换行，制表符等无意义字符)
注：接入银行或其他支付渠道服务商模式下，必传
        :type SubOrderList: list of ContractOrderInSubOrder
        :param _TotalMchIncome: 结算应收金额，单位：分
        :type TotalMchIncome: int
        :param _TotalPlatformIncome: 平台应收金额，单位：分
        :type TotalPlatformIncome: int
        :param _WxOpenId: 微信公众号/小程序支付时为必选，需要传微信下的openid
        :type WxOpenId: str
        :param _WxSubOpenId: 在服务商模式下，微信公众号/小程序支付时wx_sub_openid和wx_openid二选一
        :type WxSubOpenId: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _WxAppId: 微信商户应用ID
        :type WxAppId: str
        :param _WxSubAppId: 微信商户子应用ID
        :type WxSubAppId: str
        :param _PaymentNotifyUrl: 支付通知地址
        :type PaymentNotifyUrl: str
        :param _ContractSceneId: 传入调用方在Midas注册签约信息时获得的ContractSceneId。若未在Midas注册签约信息，则传入ExternalContractData。注意：ContractSceneId与ExternalContractData必须二选一传入其中一个
        :type ContractSceneId: str
        :param _ExternalContractData: 需要按照各个渠道的扩展签约信息规范组装好该字段。若未在Midas注册签约信息，则传入该字段。注意：ContractSceneId与ExternalContractData必须二选一传入其中一个
        :type ExternalContractData: str
        :param _OutContractCode: 外部签约协议号，唯一标记一个签约关系。仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type OutContractCode: str
        :param _AttachData: 透传给第三方渠道的附加数据
        :type AttachData: str
        :param _ContractDisplayName: 展示用的签约用户名称，若不传入时，默认取UserId
        :type ContractDisplayName: str
        """
        self._CurrencyType = None
        self._MidasAppId = None
        self._OutTradeNo = None
        self._ProductDetail = None
        self._ProductId = None
        self._ProductName = None
        self._TotalAmt = None
        self._UserId = None
        self._RealChannel = None
        self._OriginalAmt = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._ContractNotifyUrl = None
        self._CallbackUrl = None
        self._Channel = None
        self._Metadata = None
        self._Quantity = None
        self._SubAppId = None
        self._SubOrderList = None
        self._TotalMchIncome = None
        self._TotalPlatformIncome = None
        self._WxOpenId = None
        self._WxSubOpenId = None
        self._MidasEnvironment = None
        self._WxAppId = None
        self._WxSubAppId = None
        self._PaymentNotifyUrl = None
        self._ContractSceneId = None
        self._ExternalContractData = None
        self._OutContractCode = None
        self._AttachData = None
        self._ContractDisplayName = None

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RealChannel(self):
        return self._RealChannel

    @RealChannel.setter
    def RealChannel(self, RealChannel):
        self._RealChannel = RealChannel

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def ContractNotifyUrl(self):
        return self._ContractNotifyUrl

    @ContractNotifyUrl.setter
    def ContractNotifyUrl(self, ContractNotifyUrl):
        self._ContractNotifyUrl = ContractNotifyUrl

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def Quantity(self):
        return self._Quantity

    @Quantity.setter
    def Quantity(self, Quantity):
        self._Quantity = Quantity

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOrderList(self):
        return self._SubOrderList

    @SubOrderList.setter
    def SubOrderList(self, SubOrderList):
        self._SubOrderList = SubOrderList

    @property
    def TotalMchIncome(self):
        return self._TotalMchIncome

    @TotalMchIncome.setter
    def TotalMchIncome(self, TotalMchIncome):
        self._TotalMchIncome = TotalMchIncome

    @property
    def TotalPlatformIncome(self):
        return self._TotalPlatformIncome

    @TotalPlatformIncome.setter
    def TotalPlatformIncome(self, TotalPlatformIncome):
        self._TotalPlatformIncome = TotalPlatformIncome

    @property
    def WxOpenId(self):
        return self._WxOpenId

    @WxOpenId.setter
    def WxOpenId(self, WxOpenId):
        self._WxOpenId = WxOpenId

    @property
    def WxSubOpenId(self):
        return self._WxSubOpenId

    @WxSubOpenId.setter
    def WxSubOpenId(self, WxSubOpenId):
        self._WxSubOpenId = WxSubOpenId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def WxAppId(self):
        return self._WxAppId

    @WxAppId.setter
    def WxAppId(self, WxAppId):
        self._WxAppId = WxAppId

    @property
    def WxSubAppId(self):
        return self._WxSubAppId

    @WxSubAppId.setter
    def WxSubAppId(self, WxSubAppId):
        self._WxSubAppId = WxSubAppId

    @property
    def PaymentNotifyUrl(self):
        return self._PaymentNotifyUrl

    @PaymentNotifyUrl.setter
    def PaymentNotifyUrl(self, PaymentNotifyUrl):
        self._PaymentNotifyUrl = PaymentNotifyUrl

    @property
    def ContractSceneId(self):
        return self._ContractSceneId

    @ContractSceneId.setter
    def ContractSceneId(self, ContractSceneId):
        self._ContractSceneId = ContractSceneId

    @property
    def ExternalContractData(self):
        return self._ExternalContractData

    @ExternalContractData.setter
    def ExternalContractData(self, ExternalContractData):
        self._ExternalContractData = ExternalContractData

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def AttachData(self):
        return self._AttachData

    @AttachData.setter
    def AttachData(self, AttachData):
        self._AttachData = AttachData

    @property
    def ContractDisplayName(self):
        return self._ContractDisplayName

    @ContractDisplayName.setter
    def ContractDisplayName(self, ContractDisplayName):
        self._ContractDisplayName = ContractDisplayName


    def _deserialize(self, params):
        self._CurrencyType = params.get("CurrencyType")
        self._MidasAppId = params.get("MidasAppId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._ProductDetail = params.get("ProductDetail")
        self._ProductId = params.get("ProductId")
        self._ProductName = params.get("ProductName")
        self._TotalAmt = params.get("TotalAmt")
        self._UserId = params.get("UserId")
        self._RealChannel = params.get("RealChannel")
        self._OriginalAmt = params.get("OriginalAmt")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._ContractNotifyUrl = params.get("ContractNotifyUrl")
        self._CallbackUrl = params.get("CallbackUrl")
        self._Channel = params.get("Channel")
        self._Metadata = params.get("Metadata")
        self._Quantity = params.get("Quantity")
        self._SubAppId = params.get("SubAppId")
        if params.get("SubOrderList") is not None:
            self._SubOrderList = []
            for item in params.get("SubOrderList"):
                obj = ContractOrderInSubOrder()
                obj._deserialize(item)
                self._SubOrderList.append(obj)
        self._TotalMchIncome = params.get("TotalMchIncome")
        self._TotalPlatformIncome = params.get("TotalPlatformIncome")
        self._WxOpenId = params.get("WxOpenId")
        self._WxSubOpenId = params.get("WxSubOpenId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._WxAppId = params.get("WxAppId")
        self._WxSubAppId = params.get("WxSubAppId")
        self._PaymentNotifyUrl = params.get("PaymentNotifyUrl")
        self._ContractSceneId = params.get("ContractSceneId")
        self._ExternalContractData = params.get("ExternalContractData")
        self._OutContractCode = params.get("OutContractCode")
        self._AttachData = params.get("AttachData")
        self._ContractDisplayName = params.get("ContractDisplayName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ContractOrderResponse(AbstractModel):
    """ContractOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalAmt: 支付金额，单位： 分
        :type TotalAmt: int
        :param _OutTradeNo: 应用支付订单号
        :type OutTradeNo: str
        :param _PayInfo: 支付参数透传给聚鑫SDK（原文透传给SDK即可，不需要解码）
        :type PayInfo: str
        :param _TransactionId: 聚鑫的交易订单号
        :type TransactionId: str
        :param _OutContractCode: 外部签约协议号
        :type OutContractCode: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalAmt = None
        self._OutTradeNo = None
        self._PayInfo = None
        self._TransactionId = None
        self._OutContractCode = None
        self._RequestId = None

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def PayInfo(self):
        return self._PayInfo

    @PayInfo.setter
    def PayInfo(self, PayInfo):
        self._PayInfo = PayInfo

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalAmt = params.get("TotalAmt")
        self._OutTradeNo = params.get("OutTradeNo")
        self._PayInfo = params.get("PayInfo")
        self._TransactionId = params.get("TransactionId")
        self._OutContractCode = params.get("OutContractCode")
        self._RequestId = params.get("RequestId")


class ContractPayListResult(AbstractModel):
    """合同-支付方式列表响应对象

    """

    def __init__(self):
        r"""
        :param _PaymentId: 支付方式编号
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentId: str
        :param _PaymentType: 支持的交易类型（多个以小写逗号分开，0现金，1刷卡，2主扫，3被扫，4JSPAY，5预授权）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentType: str
        :param _PaymentTag: 支付标签
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentTag: str
        :param _PaymentIcon: 支付方式图片url路径
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentIcon: str
        :param _PaymentName: 付款方式名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentName: str
        :param _PaymentInternalName: 付款方式名称（内部名称）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentInternalName: str
        :param _PaymentOptionOne: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionOne: str
        :param _PaymentOptionTwo: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionTwo: str
        :param _PaymentOptionThree: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionThree: str
        :param _PaymentOptionFour: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionFour: str
        :param _PaymentOptionFive: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionFive: str
        :param _PaymentOptionSix: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionSix: str
        :param _PaymentOptionSeven: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionSeven: str
        :param _PaymentOptionOther: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionOther: str
        :param _PaymentOptionNine: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionNine: str
        :param _PaymentOptionTen: 支付方式
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionTen: str
        """
        self._PaymentId = None
        self._PaymentType = None
        self._PaymentTag = None
        self._PaymentIcon = None
        self._PaymentName = None
        self._PaymentInternalName = None
        self._PaymentOptionOne = None
        self._PaymentOptionTwo = None
        self._PaymentOptionThree = None
        self._PaymentOptionFour = None
        self._PaymentOptionFive = None
        self._PaymentOptionSix = None
        self._PaymentOptionSeven = None
        self._PaymentOptionOther = None
        self._PaymentOptionNine = None
        self._PaymentOptionTen = None

    @property
    def PaymentId(self):
        return self._PaymentId

    @PaymentId.setter
    def PaymentId(self, PaymentId):
        self._PaymentId = PaymentId

    @property
    def PaymentType(self):
        return self._PaymentType

    @PaymentType.setter
    def PaymentType(self, PaymentType):
        self._PaymentType = PaymentType

    @property
    def PaymentTag(self):
        return self._PaymentTag

    @PaymentTag.setter
    def PaymentTag(self, PaymentTag):
        self._PaymentTag = PaymentTag

    @property
    def PaymentIcon(self):
        return self._PaymentIcon

    @PaymentIcon.setter
    def PaymentIcon(self, PaymentIcon):
        self._PaymentIcon = PaymentIcon

    @property
    def PaymentName(self):
        return self._PaymentName

    @PaymentName.setter
    def PaymentName(self, PaymentName):
        self._PaymentName = PaymentName

    @property
    def PaymentInternalName(self):
        return self._PaymentInternalName

    @PaymentInternalName.setter
    def PaymentInternalName(self, PaymentInternalName):
        self._PaymentInternalName = PaymentInternalName

    @property
    def PaymentOptionOne(self):
        return self._PaymentOptionOne

    @PaymentOptionOne.setter
    def PaymentOptionOne(self, PaymentOptionOne):
        self._PaymentOptionOne = PaymentOptionOne

    @property
    def PaymentOptionTwo(self):
        return self._PaymentOptionTwo

    @PaymentOptionTwo.setter
    def PaymentOptionTwo(self, PaymentOptionTwo):
        self._PaymentOptionTwo = PaymentOptionTwo

    @property
    def PaymentOptionThree(self):
        return self._PaymentOptionThree

    @PaymentOptionThree.setter
    def PaymentOptionThree(self, PaymentOptionThree):
        self._PaymentOptionThree = PaymentOptionThree

    @property
    def PaymentOptionFour(self):
        return self._PaymentOptionFour

    @PaymentOptionFour.setter
    def PaymentOptionFour(self, PaymentOptionFour):
        self._PaymentOptionFour = PaymentOptionFour

    @property
    def PaymentOptionFive(self):
        return self._PaymentOptionFive

    @PaymentOptionFive.setter
    def PaymentOptionFive(self, PaymentOptionFive):
        self._PaymentOptionFive = PaymentOptionFive

    @property
    def PaymentOptionSix(self):
        return self._PaymentOptionSix

    @PaymentOptionSix.setter
    def PaymentOptionSix(self, PaymentOptionSix):
        self._PaymentOptionSix = PaymentOptionSix

    @property
    def PaymentOptionSeven(self):
        return self._PaymentOptionSeven

    @PaymentOptionSeven.setter
    def PaymentOptionSeven(self, PaymentOptionSeven):
        self._PaymentOptionSeven = PaymentOptionSeven

    @property
    def PaymentOptionOther(self):
        return self._PaymentOptionOther

    @PaymentOptionOther.setter
    def PaymentOptionOther(self, PaymentOptionOther):
        self._PaymentOptionOther = PaymentOptionOther

    @property
    def PaymentOptionNine(self):
        return self._PaymentOptionNine

    @PaymentOptionNine.setter
    def PaymentOptionNine(self, PaymentOptionNine):
        self._PaymentOptionNine = PaymentOptionNine

    @property
    def PaymentOptionTen(self):
        return self._PaymentOptionTen

    @PaymentOptionTen.setter
    def PaymentOptionTen(self, PaymentOptionTen):
        self._PaymentOptionTen = PaymentOptionTen


    def _deserialize(self, params):
        self._PaymentId = params.get("PaymentId")
        self._PaymentType = params.get("PaymentType")
        self._PaymentTag = params.get("PaymentTag")
        self._PaymentIcon = params.get("PaymentIcon")
        self._PaymentName = params.get("PaymentName")
        self._PaymentInternalName = params.get("PaymentInternalName")
        self._PaymentOptionOne = params.get("PaymentOptionOne")
        self._PaymentOptionTwo = params.get("PaymentOptionTwo")
        self._PaymentOptionThree = params.get("PaymentOptionThree")
        self._PaymentOptionFour = params.get("PaymentOptionFour")
        self._PaymentOptionFive = params.get("PaymentOptionFive")
        self._PaymentOptionSix = params.get("PaymentOptionSix")
        self._PaymentOptionSeven = params.get("PaymentOptionSeven")
        self._PaymentOptionOther = params.get("PaymentOptionOther")
        self._PaymentOptionNine = params.get("PaymentOptionNine")
        self._PaymentOptionTen = params.get("PaymentOptionTen")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ContractSyncInfo(AbstractModel):
    """签约同步信息

    """

    def __init__(self):
        r"""
        :param _ExternalReturnContractInfo: 第三方渠道合约信息
        :type ExternalReturnContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ExternalReturnContractInfo`
        :param _ExternalContractUserInfo: 第三方渠道用户信息
        :type ExternalContractUserInfo: list of ExternalContractUserInfo
        :param _ContractMethod: 签约方式，枚举值，
<br/>CONTRACT_METHOD_WECHAT_INVALID: 无效
CONTRACT_METHOD_WECHAT_APP: 微信APP
CONTRACT_METHOD_WECHAT_PUBLIC: 微信公众号
CONTRACT_METHOD_WECHAT_MINIPROGRAM: 微信小程序
CONTRACT_METHOD_WECHAT_H5: 微信H5
        :type ContractMethod: str
        :param _ContractSceneId: 在米大师侧分配的场景id
        :type ContractSceneId: str
        :param _ExternalReturnContractData: 调用方从第三方渠道查询到的签约数据，由各个渠道定义
        :type ExternalReturnContractData: str
        """
        self._ExternalReturnContractInfo = None
        self._ExternalContractUserInfo = None
        self._ContractMethod = None
        self._ContractSceneId = None
        self._ExternalReturnContractData = None

    @property
    def ExternalReturnContractInfo(self):
        return self._ExternalReturnContractInfo

    @ExternalReturnContractInfo.setter
    def ExternalReturnContractInfo(self, ExternalReturnContractInfo):
        self._ExternalReturnContractInfo = ExternalReturnContractInfo

    @property
    def ExternalContractUserInfo(self):
        return self._ExternalContractUserInfo

    @ExternalContractUserInfo.setter
    def ExternalContractUserInfo(self, ExternalContractUserInfo):
        self._ExternalContractUserInfo = ExternalContractUserInfo

    @property
    def ContractMethod(self):
        return self._ContractMethod

    @ContractMethod.setter
    def ContractMethod(self, ContractMethod):
        self._ContractMethod = ContractMethod

    @property
    def ContractSceneId(self):
        return self._ContractSceneId

    @ContractSceneId.setter
    def ContractSceneId(self, ContractSceneId):
        self._ContractSceneId = ContractSceneId

    @property
    def ExternalReturnContractData(self):
        return self._ExternalReturnContractData

    @ExternalReturnContractData.setter
    def ExternalReturnContractData(self, ExternalReturnContractData):
        self._ExternalReturnContractData = ExternalReturnContractData


    def _deserialize(self, params):
        if params.get("ExternalReturnContractInfo") is not None:
            self._ExternalReturnContractInfo = ExternalReturnContractInfo()
            self._ExternalReturnContractInfo._deserialize(params.get("ExternalReturnContractInfo"))
        if params.get("ExternalContractUserInfo") is not None:
            self._ExternalContractUserInfo = []
            for item in params.get("ExternalContractUserInfo"):
                obj = ExternalContractUserInfo()
                obj._deserialize(item)
                self._ExternalContractUserInfo.append(obj)
        self._ContractMethod = params.get("ContractMethod")
        self._ContractSceneId = params.get("ContractSceneId")
        self._ExternalReturnContractData = params.get("ExternalReturnContractData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ContractUserInfo(AbstractModel):
    """用户信息

    """

    def __init__(self):
        r"""
        :param _UserType: USER_ID: 用户ID
ANONYMOUS: 匿名类型用户ID
        :type UserType: str
        :param _UserId: 用户类型
        :type UserId: str
        """
        self._UserType = None
        self._UserId = None

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId


    def _deserialize(self, params):
        self._UserType = params.get("UserType")
        self._UserId = params.get("UserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAcctRequest(AbstractModel):
    """CreateAcct请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫平台分配的支付MidasAppId
        :type MidasAppId: str
        :param _SubMchId: 业务平台的子商户ID，唯一
        :type SubMchId: str
        :param _SubMchName: 子商户名称
        :type SubMchName: str
        :param _Address: 子商户地址
        :type Address: str
        :param _Contact: 子商户联系人
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type Contact: str
        :param _Mobile: 联系人手机号
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type Mobile: str
        :param _Email: 邮箱 
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type Email: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _SubMchType: 子商户类型：
个人: personal
企业: enterprise
个体工商户: individual
缺省: enterprise
        :type SubMchType: str
        :param _ShortName: 不填则默认子商户名称
        :type ShortName: str
        :param _SubMerchantMemberType: 子商户会员类型：
general: 普通子账户
merchant: 商户子账户
缺省: general
        :type SubMerchantMemberType: str
        :param _SubMerchantKey: 子商户密钥
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SubMerchantKey: str
        :param _SubMerchantPrivateKey: 子商户私钥
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SubMerchantPrivateKey: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _SubAcctNo: 银行生成的子商户账户，已开户的场景需要录入
        :type SubAcctNo: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _SubMerchantStoreName: 店铺名称
企业、个体工商户必输
        :type SubMerchantStoreName: str
        :param _OrganizationInfo: 公司信息
        :type OrganizationInfo: :class:`tencentcloud.cpdp.v20190820.models.OrganizationInfo`
        :param _SubMerchantIdType: 子商户证件类型
1 - 身份证
3 - 回乡证
4 - 中国护照
5 - 台胞证
19 - 外国护照
52 - 组织机构代码证
68 - 营业执照 
73 - 统一社会信用代码
        :type SubMerchantIdType: str
        :param _SubMerchantIdCode: 子商户证件号码
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SubMerchantIdCode: str
        """
        self._MidasAppId = None
        self._SubMchId = None
        self._SubMchName = None
        self._Address = None
        self._Contact = None
        self._Mobile = None
        self._Email = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._SubMchType = None
        self._ShortName = None
        self._SubMerchantMemberType = None
        self._SubMerchantKey = None
        self._SubMerchantPrivateKey = None
        self._EncryptType = None
        self._SubAcctNo = None
        self._MidasEnvironment = None
        self._SubMerchantStoreName = None
        self._OrganizationInfo = None
        self._SubMerchantIdType = None
        self._SubMerchantIdCode = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def SubMchName(self):
        return self._SubMchName

    @SubMchName.setter
    def SubMchName(self, SubMchName):
        self._SubMchName = SubMchName

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def SubMchType(self):
        return self._SubMchType

    @SubMchType.setter
    def SubMchType(self, SubMchType):
        self._SubMchType = SubMchType

    @property
    def ShortName(self):
        return self._ShortName

    @ShortName.setter
    def ShortName(self, ShortName):
        self._ShortName = ShortName

    @property
    def SubMerchantMemberType(self):
        return self._SubMerchantMemberType

    @SubMerchantMemberType.setter
    def SubMerchantMemberType(self, SubMerchantMemberType):
        self._SubMerchantMemberType = SubMerchantMemberType

    @property
    def SubMerchantKey(self):
        return self._SubMerchantKey

    @SubMerchantKey.setter
    def SubMerchantKey(self, SubMerchantKey):
        self._SubMerchantKey = SubMerchantKey

    @property
    def SubMerchantPrivateKey(self):
        return self._SubMerchantPrivateKey

    @SubMerchantPrivateKey.setter
    def SubMerchantPrivateKey(self, SubMerchantPrivateKey):
        self._SubMerchantPrivateKey = SubMerchantPrivateKey

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def SubMerchantStoreName(self):
        return self._SubMerchantStoreName

    @SubMerchantStoreName.setter
    def SubMerchantStoreName(self, SubMerchantStoreName):
        self._SubMerchantStoreName = SubMerchantStoreName

    @property
    def OrganizationInfo(self):
        return self._OrganizationInfo

    @OrganizationInfo.setter
    def OrganizationInfo(self, OrganizationInfo):
        self._OrganizationInfo = OrganizationInfo

    @property
    def SubMerchantIdType(self):
        return self._SubMerchantIdType

    @SubMerchantIdType.setter
    def SubMerchantIdType(self, SubMerchantIdType):
        self._SubMerchantIdType = SubMerchantIdType

    @property
    def SubMerchantIdCode(self):
        return self._SubMerchantIdCode

    @SubMerchantIdCode.setter
    def SubMerchantIdCode(self, SubMerchantIdCode):
        self._SubMerchantIdCode = SubMerchantIdCode


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubMchId = params.get("SubMchId")
        self._SubMchName = params.get("SubMchName")
        self._Address = params.get("Address")
        self._Contact = params.get("Contact")
        self._Mobile = params.get("Mobile")
        self._Email = params.get("Email")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._SubMchType = params.get("SubMchType")
        self._ShortName = params.get("ShortName")
        self._SubMerchantMemberType = params.get("SubMerchantMemberType")
        self._SubMerchantKey = params.get("SubMerchantKey")
        self._SubMerchantPrivateKey = params.get("SubMerchantPrivateKey")
        self._EncryptType = params.get("EncryptType")
        self._SubAcctNo = params.get("SubAcctNo")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._SubMerchantStoreName = params.get("SubMerchantStoreName")
        if params.get("OrganizationInfo") is not None:
            self._OrganizationInfo = OrganizationInfo()
            self._OrganizationInfo._deserialize(params.get("OrganizationInfo"))
        self._SubMerchantIdType = params.get("SubMerchantIdType")
        self._SubMerchantIdCode = params.get("SubMerchantIdCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAcctResponse(AbstractModel):
    """CreateAcct返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubAcctNo: 银行生成的子商户账户
        :type SubAcctNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SubAppId = None
        self._SubAcctNo = None
        self._RequestId = None

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SubAppId = params.get("SubAppId")
        self._SubAcctNo = params.get("SubAcctNo")
        self._RequestId = params.get("RequestId")


class CreateAgentTaxPaymentInfosRequest(AbstractModel):
    """CreateAgentTaxPaymentInfos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AgentId: 代理商ID
        :type AgentId: str
        :param _Channel: 平台渠道
        :type Channel: int
        :param _Type: 类型。0-视同，1-个体工商户
        :type Type: int
        :param _RawElectronicCertUrl: 源电子凭证下载地址
        :type RawElectronicCertUrl: str
        :param _FileName: 文件名
        :type FileName: str
        :param _AgentTaxPaymentInfos: 完税信息
        :type AgentTaxPaymentInfos: list of AgentTaxPayment
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._AgentId = None
        self._Channel = None
        self._Type = None
        self._RawElectronicCertUrl = None
        self._FileName = None
        self._AgentTaxPaymentInfos = None
        self._Profile = None

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def RawElectronicCertUrl(self):
        return self._RawElectronicCertUrl

    @RawElectronicCertUrl.setter
    def RawElectronicCertUrl(self, RawElectronicCertUrl):
        self._RawElectronicCertUrl = RawElectronicCertUrl

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def AgentTaxPaymentInfos(self):
        return self._AgentTaxPaymentInfos

    @AgentTaxPaymentInfos.setter
    def AgentTaxPaymentInfos(self, AgentTaxPaymentInfos):
        self._AgentTaxPaymentInfos = AgentTaxPaymentInfos

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._AgentId = params.get("AgentId")
        self._Channel = params.get("Channel")
        self._Type = params.get("Type")
        self._RawElectronicCertUrl = params.get("RawElectronicCertUrl")
        self._FileName = params.get("FileName")
        if params.get("AgentTaxPaymentInfos") is not None:
            self._AgentTaxPaymentInfos = []
            for item in params.get("AgentTaxPaymentInfos"):
                obj = AgentTaxPayment()
                obj._deserialize(item)
                self._AgentTaxPaymentInfos.append(obj)
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAgentTaxPaymentInfosResponse(AbstractModel):
    """CreateAgentTaxPaymentInfos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AgentTaxPaymentBatch: 代理商完税证明批次信息
        :type AgentTaxPaymentBatch: :class:`tencentcloud.cpdp.v20190820.models.AgentTaxPaymentBatch`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AgentTaxPaymentBatch = None
        self._RequestId = None

    @property
    def AgentTaxPaymentBatch(self):
        return self._AgentTaxPaymentBatch

    @AgentTaxPaymentBatch.setter
    def AgentTaxPaymentBatch(self, AgentTaxPaymentBatch):
        self._AgentTaxPaymentBatch = AgentTaxPaymentBatch

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AgentTaxPaymentBatch") is not None:
            self._AgentTaxPaymentBatch = AgentTaxPaymentBatch()
            self._AgentTaxPaymentBatch._deserialize(params.get("AgentTaxPaymentBatch"))
        self._RequestId = params.get("RequestId")


class CreateAnchorRequest(AbstractModel):
    """CreateAnchor请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorUid: 主播业务ID，唯一
        :type AnchorUid: str
        :param _AnchorName: 主播姓名
        :type AnchorName: str
        :param _AnchorPhone: 主播电话
_敏感信息_ 使用 __AES128-CBC-PKCS#7__ 加密
        :type AnchorPhone: str
        :param _AnchorEmail: 主播邮箱
_敏感信息_ 使用 __AES128-CBC-PKCS#7__ 加密
        :type AnchorEmail: str
        :param _AnchorAddress: 主播地址
_敏感信息_ 使用 __AES128-CBC-PKCS#7__ 加密
        :type AnchorAddress: str
        :param _AnchorIdNo: 主播身份证号
_敏感信息_ 使用 __AES128-CBC-PKCS#7__ 加密
        :type AnchorIdNo: str
        :param _AnchorType: 主播类型
__KMusic__:全民K歌
__QMusic__:QQ音乐
__WeChat__:微信视频号
        :type AnchorType: str
        :param _AnchorExtendInfo: 主播扩展信息
        :type AnchorExtendInfo: list of AnchorExtendInfo
        """
        self._AnchorUid = None
        self._AnchorName = None
        self._AnchorPhone = None
        self._AnchorEmail = None
        self._AnchorAddress = None
        self._AnchorIdNo = None
        self._AnchorType = None
        self._AnchorExtendInfo = None

    @property
    def AnchorUid(self):
        return self._AnchorUid

    @AnchorUid.setter
    def AnchorUid(self, AnchorUid):
        self._AnchorUid = AnchorUid

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def AnchorPhone(self):
        return self._AnchorPhone

    @AnchorPhone.setter
    def AnchorPhone(self, AnchorPhone):
        self._AnchorPhone = AnchorPhone

    @property
    def AnchorEmail(self):
        return self._AnchorEmail

    @AnchorEmail.setter
    def AnchorEmail(self, AnchorEmail):
        self._AnchorEmail = AnchorEmail

    @property
    def AnchorAddress(self):
        return self._AnchorAddress

    @AnchorAddress.setter
    def AnchorAddress(self, AnchorAddress):
        self._AnchorAddress = AnchorAddress

    @property
    def AnchorIdNo(self):
        return self._AnchorIdNo

    @AnchorIdNo.setter
    def AnchorIdNo(self, AnchorIdNo):
        self._AnchorIdNo = AnchorIdNo

    @property
    def AnchorType(self):
        return self._AnchorType

    @AnchorType.setter
    def AnchorType(self, AnchorType):
        self._AnchorType = AnchorType

    @property
    def AnchorExtendInfo(self):
        return self._AnchorExtendInfo

    @AnchorExtendInfo.setter
    def AnchorExtendInfo(self, AnchorExtendInfo):
        self._AnchorExtendInfo = AnchorExtendInfo


    def _deserialize(self, params):
        self._AnchorUid = params.get("AnchorUid")
        self._AnchorName = params.get("AnchorName")
        self._AnchorPhone = params.get("AnchorPhone")
        self._AnchorEmail = params.get("AnchorEmail")
        self._AnchorAddress = params.get("AnchorAddress")
        self._AnchorIdNo = params.get("AnchorIdNo")
        self._AnchorType = params.get("AnchorType")
        if params.get("AnchorExtendInfo") is not None:
            self._AnchorExtendInfo = []
            for item in params.get("AnchorExtendInfo"):
                obj = AnchorExtendInfo()
                obj._deserialize(item)
                self._AnchorExtendInfo.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateAnchorResponse(AbstractModel):
    """CreateAnchor返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播ID
        :type AnchorId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AnchorId = None
        self._RequestId = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._RequestId = params.get("RequestId")


class CreateBatchPaymentBatchData(AbstractModel):
    """CreateBatchPayment接口BatchInfo对象

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _TradeSerialNo: 交易流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeSerialNo: str
        :param _Status: 交易状态。
0 处理中  
1 预占成功 
2 交易成功 
3 交易失败 
4 未知渠道异常 
5 预占额度失败
6 提交成功
7 提交失败
8 订单重复提交
99 未知系统异常
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _StatusDesc: 状态描述
注意：此字段可能返回 null，表示取不到有效值。
        :type StatusDesc: str
        :param _AgentId: 代理商ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentId: str
        :param _AgentName: 代理商名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        """
        self._OrderId = None
        self._TradeSerialNo = None
        self._Status = None
        self._StatusDesc = None
        self._AgentId = None
        self._AgentName = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBatchPaymentData(AbstractModel):
    """CreateBatchPayment接口返回响应

    """

    def __init__(self):
        r"""
        :param _BatchId: 批次号
        :type BatchId: str
        :param _BatchInfoList: 批次列表详情
注意：此字段可能返回 null，表示取不到有效值。
        :type BatchInfoList: list of CreateBatchPaymentBatchData
        """
        self._BatchId = None
        self._BatchInfoList = None

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def BatchInfoList(self):
        return self._BatchInfoList

    @BatchInfoList.setter
    def BatchInfoList(self, BatchInfoList):
        self._BatchInfoList = BatchInfoList


    def _deserialize(self, params):
        self._BatchId = params.get("BatchId")
        if params.get("BatchInfoList") is not None:
            self._BatchInfoList = []
            for item in params.get("BatchInfoList"):
                obj = CreateBatchPaymentBatchData()
                obj._deserialize(item)
                self._BatchInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBatchPaymentRecipient(AbstractModel):
    """CreateBatchPayment转账明细

    """

    def __init__(self):
        r"""
        :param _TransferAmount: 转账金额
        :type TransferAmount: int
        :param _OrderId: 订单号
        :type OrderId: str
        :param _AnchorId: 主播ID（与主播业务ID不能同时为空，两者都填取主播ID）
        :type AnchorId: str
        :param _Uid: 主播业务ID（与主播业务ID不能同时为空，两者都填取主播ID）
        :type Uid: str
        :param _AnchorName: 主播名称。如果该字段填入，则会对AnchorName和AnchorId/Uid进行校验。
        :type AnchorName: str
        :param _Remark: 业务备注
        :type Remark: str
        :param _ReqReserved: 子单请求预留字段
        :type ReqReserved: str
        """
        self._TransferAmount = None
        self._OrderId = None
        self._AnchorId = None
        self._Uid = None
        self._AnchorName = None
        self._Remark = None
        self._ReqReserved = None

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def Uid(self):
        return self._Uid

    @Uid.setter
    def Uid(self, Uid):
        self._Uid = Uid

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReqReserved(self):
        return self._ReqReserved

    @ReqReserved.setter
    def ReqReserved(self, ReqReserved):
        self._ReqReserved = ReqReserved


    def _deserialize(self, params):
        self._TransferAmount = params.get("TransferAmount")
        self._OrderId = params.get("OrderId")
        self._AnchorId = params.get("AnchorId")
        self._Uid = params.get("Uid")
        self._AnchorName = params.get("AnchorName")
        self._Remark = params.get("Remark")
        self._ReqReserved = params.get("ReqReserved")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBatchPaymentRequest(AbstractModel):
    """CreateBatchPayment请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransferType: 1 微信企业付款 
2 支付宝转账 
3 平安银企直连代发转账
        :type TransferType: int
        :param _RecipientList: 转账详情
        :type RecipientList: list of CreateBatchPaymentRecipient
        :param _ReqReserved: 请求预留字段
        :type ReqReserved: str
        :param _NotifyUrl: 回调Url
        :type NotifyUrl: str
        """
        self._TransferType = None
        self._RecipientList = None
        self._ReqReserved = None
        self._NotifyUrl = None

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def RecipientList(self):
        return self._RecipientList

    @RecipientList.setter
    def RecipientList(self, RecipientList):
        self._RecipientList = RecipientList

    @property
    def ReqReserved(self):
        return self._ReqReserved

    @ReqReserved.setter
    def ReqReserved(self, ReqReserved):
        self._ReqReserved = ReqReserved

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl


    def _deserialize(self, params):
        self._TransferType = params.get("TransferType")
        if params.get("RecipientList") is not None:
            self._RecipientList = []
            for item in params.get("RecipientList"):
                obj = CreateBatchPaymentRecipient()
                obj._deserialize(item)
                self._RecipientList.append(obj)
        self._ReqReserved = params.get("ReqReserved")
        self._NotifyUrl = params.get("NotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateBatchPaymentResponse(AbstractModel):
    """CreateBatchPayment返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 返回响应
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateBatchPaymentData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateBatchPaymentData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateCloudSubMerchantRequest(AbstractModel):
    """CreateCloudSubMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId，根应用Id。
        :type MidasAppId: str
        :param _ParentAppId: 父应用Id。
        :type ParentAppId: str
        :param _SubMchName: 子商户名。
        :type SubMchName: str
        :param _SubMchDescription: 子商户描述。
        :type SubMchDescription: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        :param _SubAppId: 子应用Id，为空则自动创建子应用id。
        :type SubAppId: str
        :param _SubMchShortName: 子商户名缩写。
        :type SubMchShortName: str
        :param _OutSubMerchantId: 业务平台自定义的子商户Id，唯一。
        :type OutSubMerchantId: str
        """
        self._MidasAppId = None
        self._ParentAppId = None
        self._SubMchName = None
        self._SubMchDescription = None
        self._MidasEnvironment = None
        self._SubAppId = None
        self._SubMchShortName = None
        self._OutSubMerchantId = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def ParentAppId(self):
        return self._ParentAppId

    @ParentAppId.setter
    def ParentAppId(self, ParentAppId):
        self._ParentAppId = ParentAppId

    @property
    def SubMchName(self):
        return self._SubMchName

    @SubMchName.setter
    def SubMchName(self, SubMchName):
        self._SubMchName = SubMchName

    @property
    def SubMchDescription(self):
        return self._SubMchDescription

    @SubMchDescription.setter
    def SubMchDescription(self, SubMchDescription):
        self._SubMchDescription = SubMchDescription

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubMchShortName(self):
        return self._SubMchShortName

    @SubMchShortName.setter
    def SubMchShortName(self, SubMchShortName):
        self._SubMchShortName = SubMchShortName

    @property
    def OutSubMerchantId(self):
        return self._OutSubMerchantId

    @OutSubMerchantId.setter
    def OutSubMerchantId(self, OutSubMerchantId):
        self._OutSubMerchantId = OutSubMerchantId


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._ParentAppId = params.get("ParentAppId")
        self._SubMchName = params.get("SubMchName")
        self._SubMchDescription = params.get("SubMchDescription")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._SubAppId = params.get("SubAppId")
        self._SubMchShortName = params.get("SubMchShortName")
        self._OutSubMerchantId = params.get("OutSubMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateCloudSubMerchantResponse(AbstractModel):
    """CreateCloudSubMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SubAppId: 子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAppId: str
        :param _ChannelSubMerchantId: 渠道子商户ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubMerchantId: str
        :param _Level: 层级，从0开始
注意：此字段可能返回 null，表示取不到有效值。
        :type Level: int
        :param _ChannelAppId: 渠道应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelAppId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SubAppId = None
        self._ChannelSubMerchantId = None
        self._Level = None
        self._ChannelAppId = None
        self._RequestId = None

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def Level(self):
        return self._Level

    @Level.setter
    def Level(self, Level):
        self._Level = Level

    @property
    def ChannelAppId(self):
        return self._ChannelAppId

    @ChannelAppId.setter
    def ChannelAppId(self, ChannelAppId):
        self._ChannelAppId = ChannelAppId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SubAppId = params.get("SubAppId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._Level = params.get("Level")
        self._ChannelAppId = params.get("ChannelAppId")
        self._RequestId = params.get("RequestId")


class CreateCustAcctIdRequest(AbstractModel):
    """CreateCustAcctId请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FunctionFlag: STRING(2)，功能标志（1: 开户; 3: 销户）
        :type FunctionFlag: str
        :param _FundSummaryAcctNo: STRING(50)，资金汇总账号（即收单资金归集入账的账号）
        :type FundSummaryAcctNo: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（平台端的用户ID，需要保证唯一性，可数字字母混合，如HY_120）
        :type TranNetMemberCode: str
        :param _MemberProperty: STRING(10)，会员属性（00-普通子账户(默认); SH-商户子账户）
        :type MemberProperty: str
        :param _Mobile: STRING(30)，手机号码
        :type Mobile: str
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _SelfBusiness: String(2)，是否为自营业务（0位非自营，1为自营）
        :type SelfBusiness: bool
        :param _ContactName: String(64)，联系人
        :type ContactName: str
        :param _SubAcctName: String(64)，子账户名称
        :type SubAcctName: str
        :param _SubAcctShortName: String(64)，子账户简称
        :type SubAcctShortName: str
        :param _SubAcctType: String(4)，子账户类型（0: 个人子账户; 1: 企业子账户）
        :type SubAcctType: int
        :param _UserNickname: STRING(150)，用户昵称
        :type UserNickname: str
        :param _Email: STRING(150)，邮箱
        :type Email: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._FunctionFlag = None
        self._FundSummaryAcctNo = None
        self._TranNetMemberCode = None
        self._MemberProperty = None
        self._Mobile = None
        self._MrchCode = None
        self._SelfBusiness = None
        self._ContactName = None
        self._SubAcctName = None
        self._SubAcctShortName = None
        self._SubAcctType = None
        self._UserNickname = None
        self._Email = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def FundSummaryAcctNo(self):
        return self._FundSummaryAcctNo

    @FundSummaryAcctNo.setter
    def FundSummaryAcctNo(self, FundSummaryAcctNo):
        self._FundSummaryAcctNo = FundSummaryAcctNo

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberProperty(self):
        return self._MemberProperty

    @MemberProperty.setter
    def MemberProperty(self, MemberProperty):
        self._MemberProperty = MemberProperty

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def SelfBusiness(self):
        return self._SelfBusiness

    @SelfBusiness.setter
    def SelfBusiness(self, SelfBusiness):
        self._SelfBusiness = SelfBusiness

    @property
    def ContactName(self):
        return self._ContactName

    @ContactName.setter
    def ContactName(self, ContactName):
        self._ContactName = ContactName

    @property
    def SubAcctName(self):
        return self._SubAcctName

    @SubAcctName.setter
    def SubAcctName(self, SubAcctName):
        self._SubAcctName = SubAcctName

    @property
    def SubAcctShortName(self):
        return self._SubAcctShortName

    @SubAcctShortName.setter
    def SubAcctShortName(self, SubAcctShortName):
        self._SubAcctShortName = SubAcctShortName

    @property
    def SubAcctType(self):
        return self._SubAcctType

    @SubAcctType.setter
    def SubAcctType(self, SubAcctType):
        self._SubAcctType = SubAcctType

    @property
    def UserNickname(self):
        return self._UserNickname

    @UserNickname.setter
    def UserNickname(self, UserNickname):
        self._UserNickname = UserNickname

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._FunctionFlag = params.get("FunctionFlag")
        self._FundSummaryAcctNo = params.get("FundSummaryAcctNo")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberProperty = params.get("MemberProperty")
        self._Mobile = params.get("Mobile")
        self._MrchCode = params.get("MrchCode")
        self._SelfBusiness = params.get("SelfBusiness")
        self._ContactName = params.get("ContactName")
        self._SubAcctName = params.get("SubAcctName")
        self._SubAcctShortName = params.get("SubAcctShortName")
        self._SubAcctType = params.get("SubAcctType")
        self._UserNickname = params.get("UserNickname")
        self._Email = params.get("Email")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateCustAcctIdResponse(AbstractModel):
    """CreateCustAcctId返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SubAcctNo: STRING(50)，见证子账户的账号（平台需要记录下来，后续所有接口交互都会用到）
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctNo: str
        :param _ReservedMsg: STRING(1027)，保留域（需要开通智能收款，此处返回智能收款账号，正常情况下返回空）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SubAcctNo = None
        self._ReservedMsg = None
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._RequestId = None

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SubAcctNo = params.get("SubAcctNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._RequestId = params.get("RequestId")


class CreateExternalAccountBookResult(AbstractModel):
    """创建第三方电子记账本返回值

    """

    def __init__(self):
        r"""
        :param _DealStatus: 处理状态。
__SUCCESS__: 成功
__FAILED__: 失败
__PROCESSING__: 进行中。
        :type DealStatus: str
        :param _DealMessage: 处理返回描述，例如失败原因等
注意：此字段可能返回 null，表示取不到有效值。
        :type DealMessage: str
        :param _ChannelAccountBookId: 渠道电子记账本ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelAccountBookId: str
        :param _CollectMoneyAccountInfo: 电子记账本对外收款的账户信息。为JSON格式字符串（成功状态下返回）。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type CollectMoneyAccountInfo: str
        """
        self._DealStatus = None
        self._DealMessage = None
        self._ChannelAccountBookId = None
        self._CollectMoneyAccountInfo = None

    @property
    def DealStatus(self):
        return self._DealStatus

    @DealStatus.setter
    def DealStatus(self, DealStatus):
        self._DealStatus = DealStatus

    @property
    def DealMessage(self):
        return self._DealMessage

    @DealMessage.setter
    def DealMessage(self, DealMessage):
        self._DealMessage = DealMessage

    @property
    def ChannelAccountBookId(self):
        return self._ChannelAccountBookId

    @ChannelAccountBookId.setter
    def ChannelAccountBookId(self, ChannelAccountBookId):
        self._ChannelAccountBookId = ChannelAccountBookId

    @property
    def CollectMoneyAccountInfo(self):
        return self._CollectMoneyAccountInfo

    @CollectMoneyAccountInfo.setter
    def CollectMoneyAccountInfo(self, CollectMoneyAccountInfo):
        self._CollectMoneyAccountInfo = CollectMoneyAccountInfo


    def _deserialize(self, params):
        self._DealStatus = params.get("DealStatus")
        self._DealMessage = params.get("DealMessage")
        self._ChannelAccountBookId = params.get("ChannelAccountBookId")
        self._CollectMoneyAccountInfo = params.get("CollectMoneyAccountInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateExternalAnchorData(AbstractModel):
    """CreateExternalAnchor接口返回参数

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播Id
        :type AnchorId: str
        """
        self._AnchorId = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateExternalAnchorRequest(AbstractModel):
    """CreateExternalAnchor请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Uid: 平台业务系统唯一标示的主播id
        :type Uid: str
        :param _Name: 主播名称
        :type Name: str
        :param _IdNo: 身份证号
        :type IdNo: str
        :param _IdCardFront: 身份证正面图片下载链接
        :type IdCardFront: str
        :param _IdCardReverse: 身份证反面图片下载链接
        :type IdCardReverse: str
        :param _AgentId: 指定分配的代理商ID
        :type AgentId: str
        """
        self._Uid = None
        self._Name = None
        self._IdNo = None
        self._IdCardFront = None
        self._IdCardReverse = None
        self._AgentId = None

    @property
    def Uid(self):
        return self._Uid

    @Uid.setter
    def Uid(self, Uid):
        self._Uid = Uid

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def IdCardFront(self):
        return self._IdCardFront

    @IdCardFront.setter
    def IdCardFront(self, IdCardFront):
        self._IdCardFront = IdCardFront

    @property
    def IdCardReverse(self):
        return self._IdCardReverse

    @IdCardReverse.setter
    def IdCardReverse(self, IdCardReverse):
        self._IdCardReverse = IdCardReverse

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId


    def _deserialize(self, params):
        self._Uid = params.get("Uid")
        self._Name = params.get("Name")
        self._IdNo = params.get("IdNo")
        self._IdCardFront = params.get("IdCardFront")
        self._IdCardReverse = params.get("IdCardReverse")
        self._AgentId = params.get("AgentId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateExternalAnchorResponse(AbstractModel):
    """CreateExternalAnchor返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 返回响应
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateExternalAnchorData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateExternalAnchorData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateFlexPayeeRequest(AbstractModel):
    """CreateFlexPayee请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutUserId: 用户外部业务ID
        :type OutUserId: str
        :param _Name: 姓名
        :type Name: str
        :param _IdNo: 证件号
        :type IdNo: str
        :param _AccountName: 账户名称
        :type AccountName: str
        :param _ServiceProviderId: 服务商ID
        :type ServiceProviderId: str
        :param _TaxInfo: 计税信息
        :type TaxInfo: :class:`tencentcloud.cpdp.v20190820.models.PayeeTaxInfo`
        :param _IdType: 证件类型
0:身份证
1:社会信用代码
        :type IdType: int
        :param _Remark: 备注
        :type Remark: str
        :param _PhoneNo: 手机号码
        :type PhoneNo: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._OutUserId = None
        self._Name = None
        self._IdNo = None
        self._AccountName = None
        self._ServiceProviderId = None
        self._TaxInfo = None
        self._IdType = None
        self._Remark = None
        self._PhoneNo = None
        self._Environment = None

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def ServiceProviderId(self):
        return self._ServiceProviderId

    @ServiceProviderId.setter
    def ServiceProviderId(self, ServiceProviderId):
        self._ServiceProviderId = ServiceProviderId

    @property
    def TaxInfo(self):
        return self._TaxInfo

    @TaxInfo.setter
    def TaxInfo(self, TaxInfo):
        self._TaxInfo = TaxInfo

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def PhoneNo(self):
        return self._PhoneNo

    @PhoneNo.setter
    def PhoneNo(self, PhoneNo):
        self._PhoneNo = PhoneNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutUserId = params.get("OutUserId")
        self._Name = params.get("Name")
        self._IdNo = params.get("IdNo")
        self._AccountName = params.get("AccountName")
        self._ServiceProviderId = params.get("ServiceProviderId")
        if params.get("TaxInfo") is not None:
            self._TaxInfo = PayeeTaxInfo()
            self._TaxInfo._deserialize(params.get("TaxInfo"))
        self._IdType = params.get("IdType")
        self._Remark = params.get("Remark")
        self._PhoneNo = params.get("PhoneNo")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateFlexPayeeResponse(AbstractModel):
    """CreateFlexPayee返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateFlexPayeeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateFlexPayeeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateFlexPayeeResult(AbstractModel):
    """账户开立结果

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        """
        self._PayeeId = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceItem(AbstractModel):
    """发票开具明细

    """

    def __init__(self):
        r"""
        :param _Name: 商品名称
        :type Name: str
        :param _TaxCode: 税收商品编码
        :type TaxCode: str
        :param _TotalPrice: 不含税商品总价（商品含税价总额/（1+税率））。InvoicePlatformId 为1时，该金额为含税总金额。单位为分。
        :type TotalPrice: int
        :param _TaxRate: 商品税率
        :type TaxRate: int
        :param _TaxAmount: 商品税额（不含税商品总价*税率）。单位为分
        :type TaxAmount: int
        :param _TaxType: 税收商品类别
        :type TaxType: str
        :param _Models: 商品规格
        :type Models: str
        :param _Unit: 商品单位
        :type Unit: str
        :param _Total: 商品数量
        :type Total: str
        :param _Price: 不含税商品单价。InvoicePlatformId 为1时，该金额为含税单价。
        :type Price: str
        :param _Discount: 含税折扣总额。单位为分
        :type Discount: int
        :param _PreferentialPolicyFlag: 优惠政策标志。0：不使用优惠政策；1：使用优惠政策。
        :type PreferentialPolicyFlag: str
        :param _ZeroTaxFlag: 零税率标识：
空：非零税率；
0：出口零税率；
1：免税；
2：不征税；
3：普通零税率。
        :type ZeroTaxFlag: str
        :param _VatSpecialManagement: 增值税特殊管理。PreferentialPolicyFlag字段为1时，必填。目前仅支持5%(3%，2%，1.5%)简易征税、免税、不征税。
        :type VatSpecialManagement: str
        """
        self._Name = None
        self._TaxCode = None
        self._TotalPrice = None
        self._TaxRate = None
        self._TaxAmount = None
        self._TaxType = None
        self._Models = None
        self._Unit = None
        self._Total = None
        self._Price = None
        self._Discount = None
        self._PreferentialPolicyFlag = None
        self._ZeroTaxFlag = None
        self._VatSpecialManagement = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def TaxCode(self):
        return self._TaxCode

    @TaxCode.setter
    def TaxCode(self, TaxCode):
        self._TaxCode = TaxCode

    @property
    def TotalPrice(self):
        return self._TotalPrice

    @TotalPrice.setter
    def TotalPrice(self, TotalPrice):
        self._TotalPrice = TotalPrice

    @property
    def TaxRate(self):
        return self._TaxRate

    @TaxRate.setter
    def TaxRate(self, TaxRate):
        self._TaxRate = TaxRate

    @property
    def TaxAmount(self):
        return self._TaxAmount

    @TaxAmount.setter
    def TaxAmount(self, TaxAmount):
        self._TaxAmount = TaxAmount

    @property
    def TaxType(self):
        return self._TaxType

    @TaxType.setter
    def TaxType(self, TaxType):
        self._TaxType = TaxType

    @property
    def Models(self):
        return self._Models

    @Models.setter
    def Models(self, Models):
        self._Models = Models

    @property
    def Unit(self):
        return self._Unit

    @Unit.setter
    def Unit(self, Unit):
        self._Unit = Unit

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def Discount(self):
        return self._Discount

    @Discount.setter
    def Discount(self, Discount):
        self._Discount = Discount

    @property
    def PreferentialPolicyFlag(self):
        return self._PreferentialPolicyFlag

    @PreferentialPolicyFlag.setter
    def PreferentialPolicyFlag(self, PreferentialPolicyFlag):
        self._PreferentialPolicyFlag = PreferentialPolicyFlag

    @property
    def ZeroTaxFlag(self):
        return self._ZeroTaxFlag

    @ZeroTaxFlag.setter
    def ZeroTaxFlag(self, ZeroTaxFlag):
        self._ZeroTaxFlag = ZeroTaxFlag

    @property
    def VatSpecialManagement(self):
        return self._VatSpecialManagement

    @VatSpecialManagement.setter
    def VatSpecialManagement(self, VatSpecialManagement):
        self._VatSpecialManagement = VatSpecialManagement


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._TaxCode = params.get("TaxCode")
        self._TotalPrice = params.get("TotalPrice")
        self._TaxRate = params.get("TaxRate")
        self._TaxAmount = params.get("TaxAmount")
        self._TaxType = params.get("TaxType")
        self._Models = params.get("Models")
        self._Unit = params.get("Unit")
        self._Total = params.get("Total")
        self._Price = params.get("Price")
        self._Discount = params.get("Discount")
        self._PreferentialPolicyFlag = params.get("PreferentialPolicyFlag")
        self._ZeroTaxFlag = params.get("ZeroTaxFlag")
        self._VatSpecialManagement = params.get("VatSpecialManagement")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceRequest(AbstractModel):
    """CreateInvoice请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID。0：高灯，1：票易通
        :type InvoicePlatformId: int
        :param _TitleType: 抬头类型：1：个人/政府事业单位；2：企业
        :type TitleType: int
        :param _BuyerTitle: 购方名称
        :type BuyerTitle: str
        :param _OrderId: 业务开票号
        :type OrderId: str
        :param _AmountHasTax: 含税总金额（单位为分）
        :type AmountHasTax: int
        :param _TaxAmount: 总税额（单位为分）
        :type TaxAmount: int
        :param _AmountWithoutTax: 不含税总金额（单位为分）。InvoicePlatformId 为1时，传默认值-1
        :type AmountWithoutTax: int
        :param _SellerTaxpayerNum: 销方纳税人识别号
        :type SellerTaxpayerNum: str
        :param _SellerName: 销方名称。（不填默认读取商户注册时输入的信息）
        :type SellerName: str
        :param _SellerAddress: 销方地址。（不填默认读取商户注册时输入的信息）
        :type SellerAddress: str
        :param _SellerPhone: 销方电话。（不填默认读取商户注册时输入的信息）
        :type SellerPhone: str
        :param _SellerBankName: 销方银行名称。（不填默认读取商户注册时输入的信息）
        :type SellerBankName: str
        :param _SellerBankAccount: 销方银行账号。（不填默认读取商户注册时输入的信息）
        :type SellerBankAccount: str
        :param _BuyerTaxpayerNum: 购方纳税人识别号（购方票面信息）,若抬头类型为2时，必传
        :type BuyerTaxpayerNum: str
        :param _BuyerAddress: 购方地址。开具专用发票时必填
        :type BuyerAddress: str
        :param _BuyerBankName: 购方银行名称。开具专用发票时必填
        :type BuyerBankName: str
        :param _BuyerBankAccount: 购方银行账号。开具专用发票时必填
        :type BuyerBankAccount: str
        :param _BuyerPhone: 购方电话。开具专用发票时必填
        :type BuyerPhone: str
        :param _BuyerEmail: 收票人邮箱。若填入，会收到发票推送邮件
        :type BuyerEmail: str
        :param _TakerPhone: 收票人手机号。若填入，会收到发票推送短信
        :type TakerPhone: str
        :param _InvoiceType: 开票类型：
1：增值税专用发票；
2：增值税普通发票；
3：增值税电子发票；
4：增值税卷式发票；
5：区块链电子发票。
若该字段不填，或值不为1-5，则认为开具”增值税电子发票”
        :type InvoiceType: int
        :param _CallbackUrl: 发票结果回传地址
        :type CallbackUrl: str
        :param _Drawer: 开票人姓名。（不填默认读取商户注册时输入的信息）
        :type Drawer: str
        :param _Payee: 收款人姓名。（不填默认读取商户注册时输入的信息）
        :type Payee: str
        :param _Checker: 复核人姓名。（不填默认读取商户注册时输入的信息）
        :type Checker: str
        :param _TerminalCode: 税盘号
        :type TerminalCode: str
        :param _LevyMethod: 征收方式。开具差额征税发票时必填2。开具普通征税发票时为空
        :type LevyMethod: str
        :param _Deduction: 差额征税扣除额（单位为分）
        :type Deduction: int
        :param _Remark: 备注（票面信息）
        :type Remark: str
        :param _Items: 项目商品明细
        :type Items: list of CreateInvoiceItem
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        :param _UndoPart: 撤销部分商品。0-不撤销，1-撤销
        :type UndoPart: int
        :param _OrderDate: 订单下单时间（格式 YYYYMMDD）
        :type OrderDate: str
        :param _Discount: 订单级别折扣（单位为分）
        :type Discount: int
        :param _StoreNo: 门店编码
        :type StoreNo: str
        :param _InvoiceChannel: 开票渠道。0：APP渠道，1：线下渠道，2：小程序渠道。不填默认为APP渠道
        :type InvoiceChannel: int
        """
        self._InvoicePlatformId = None
        self._TitleType = None
        self._BuyerTitle = None
        self._OrderId = None
        self._AmountHasTax = None
        self._TaxAmount = None
        self._AmountWithoutTax = None
        self._SellerTaxpayerNum = None
        self._SellerName = None
        self._SellerAddress = None
        self._SellerPhone = None
        self._SellerBankName = None
        self._SellerBankAccount = None
        self._BuyerTaxpayerNum = None
        self._BuyerAddress = None
        self._BuyerBankName = None
        self._BuyerBankAccount = None
        self._BuyerPhone = None
        self._BuyerEmail = None
        self._TakerPhone = None
        self._InvoiceType = None
        self._CallbackUrl = None
        self._Drawer = None
        self._Payee = None
        self._Checker = None
        self._TerminalCode = None
        self._LevyMethod = None
        self._Deduction = None
        self._Remark = None
        self._Items = None
        self._Profile = None
        self._UndoPart = None
        self._OrderDate = None
        self._Discount = None
        self._StoreNo = None
        self._InvoiceChannel = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def TitleType(self):
        return self._TitleType

    @TitleType.setter
    def TitleType(self, TitleType):
        self._TitleType = TitleType

    @property
    def BuyerTitle(self):
        return self._BuyerTitle

    @BuyerTitle.setter
    def BuyerTitle(self, BuyerTitle):
        self._BuyerTitle = BuyerTitle

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AmountHasTax(self):
        return self._AmountHasTax

    @AmountHasTax.setter
    def AmountHasTax(self, AmountHasTax):
        self._AmountHasTax = AmountHasTax

    @property
    def TaxAmount(self):
        return self._TaxAmount

    @TaxAmount.setter
    def TaxAmount(self, TaxAmount):
        self._TaxAmount = TaxAmount

    @property
    def AmountWithoutTax(self):
        return self._AmountWithoutTax

    @AmountWithoutTax.setter
    def AmountWithoutTax(self, AmountWithoutTax):
        self._AmountWithoutTax = AmountWithoutTax

    @property
    def SellerTaxpayerNum(self):
        return self._SellerTaxpayerNum

    @SellerTaxpayerNum.setter
    def SellerTaxpayerNum(self, SellerTaxpayerNum):
        self._SellerTaxpayerNum = SellerTaxpayerNum

    @property
    def SellerName(self):
        return self._SellerName

    @SellerName.setter
    def SellerName(self, SellerName):
        self._SellerName = SellerName

    @property
    def SellerAddress(self):
        return self._SellerAddress

    @SellerAddress.setter
    def SellerAddress(self, SellerAddress):
        self._SellerAddress = SellerAddress

    @property
    def SellerPhone(self):
        return self._SellerPhone

    @SellerPhone.setter
    def SellerPhone(self, SellerPhone):
        self._SellerPhone = SellerPhone

    @property
    def SellerBankName(self):
        return self._SellerBankName

    @SellerBankName.setter
    def SellerBankName(self, SellerBankName):
        self._SellerBankName = SellerBankName

    @property
    def SellerBankAccount(self):
        return self._SellerBankAccount

    @SellerBankAccount.setter
    def SellerBankAccount(self, SellerBankAccount):
        self._SellerBankAccount = SellerBankAccount

    @property
    def BuyerTaxpayerNum(self):
        return self._BuyerTaxpayerNum

    @BuyerTaxpayerNum.setter
    def BuyerTaxpayerNum(self, BuyerTaxpayerNum):
        self._BuyerTaxpayerNum = BuyerTaxpayerNum

    @property
    def BuyerAddress(self):
        return self._BuyerAddress

    @BuyerAddress.setter
    def BuyerAddress(self, BuyerAddress):
        self._BuyerAddress = BuyerAddress

    @property
    def BuyerBankName(self):
        return self._BuyerBankName

    @BuyerBankName.setter
    def BuyerBankName(self, BuyerBankName):
        self._BuyerBankName = BuyerBankName

    @property
    def BuyerBankAccount(self):
        return self._BuyerBankAccount

    @BuyerBankAccount.setter
    def BuyerBankAccount(self, BuyerBankAccount):
        self._BuyerBankAccount = BuyerBankAccount

    @property
    def BuyerPhone(self):
        return self._BuyerPhone

    @BuyerPhone.setter
    def BuyerPhone(self, BuyerPhone):
        self._BuyerPhone = BuyerPhone

    @property
    def BuyerEmail(self):
        return self._BuyerEmail

    @BuyerEmail.setter
    def BuyerEmail(self, BuyerEmail):
        self._BuyerEmail = BuyerEmail

    @property
    def TakerPhone(self):
        return self._TakerPhone

    @TakerPhone.setter
    def TakerPhone(self, TakerPhone):
        self._TakerPhone = TakerPhone

    @property
    def InvoiceType(self):
        return self._InvoiceType

    @InvoiceType.setter
    def InvoiceType(self, InvoiceType):
        self._InvoiceType = InvoiceType

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def Drawer(self):
        return self._Drawer

    @Drawer.setter
    def Drawer(self, Drawer):
        self._Drawer = Drawer

    @property
    def Payee(self):
        return self._Payee

    @Payee.setter
    def Payee(self, Payee):
        self._Payee = Payee

    @property
    def Checker(self):
        return self._Checker

    @Checker.setter
    def Checker(self, Checker):
        self._Checker = Checker

    @property
    def TerminalCode(self):
        return self._TerminalCode

    @TerminalCode.setter
    def TerminalCode(self, TerminalCode):
        self._TerminalCode = TerminalCode

    @property
    def LevyMethod(self):
        return self._LevyMethod

    @LevyMethod.setter
    def LevyMethod(self, LevyMethod):
        self._LevyMethod = LevyMethod

    @property
    def Deduction(self):
        return self._Deduction

    @Deduction.setter
    def Deduction(self, Deduction):
        self._Deduction = Deduction

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Items(self):
        return self._Items

    @Items.setter
    def Items(self, Items):
        self._Items = Items

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def UndoPart(self):
        return self._UndoPart

    @UndoPart.setter
    def UndoPart(self, UndoPart):
        self._UndoPart = UndoPart

    @property
    def OrderDate(self):
        return self._OrderDate

    @OrderDate.setter
    def OrderDate(self, OrderDate):
        self._OrderDate = OrderDate

    @property
    def Discount(self):
        return self._Discount

    @Discount.setter
    def Discount(self, Discount):
        self._Discount = Discount

    @property
    def StoreNo(self):
        return self._StoreNo

    @StoreNo.setter
    def StoreNo(self, StoreNo):
        self._StoreNo = StoreNo

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._TitleType = params.get("TitleType")
        self._BuyerTitle = params.get("BuyerTitle")
        self._OrderId = params.get("OrderId")
        self._AmountHasTax = params.get("AmountHasTax")
        self._TaxAmount = params.get("TaxAmount")
        self._AmountWithoutTax = params.get("AmountWithoutTax")
        self._SellerTaxpayerNum = params.get("SellerTaxpayerNum")
        self._SellerName = params.get("SellerName")
        self._SellerAddress = params.get("SellerAddress")
        self._SellerPhone = params.get("SellerPhone")
        self._SellerBankName = params.get("SellerBankName")
        self._SellerBankAccount = params.get("SellerBankAccount")
        self._BuyerTaxpayerNum = params.get("BuyerTaxpayerNum")
        self._BuyerAddress = params.get("BuyerAddress")
        self._BuyerBankName = params.get("BuyerBankName")
        self._BuyerBankAccount = params.get("BuyerBankAccount")
        self._BuyerPhone = params.get("BuyerPhone")
        self._BuyerEmail = params.get("BuyerEmail")
        self._TakerPhone = params.get("TakerPhone")
        self._InvoiceType = params.get("InvoiceType")
        self._CallbackUrl = params.get("CallbackUrl")
        self._Drawer = params.get("Drawer")
        self._Payee = params.get("Payee")
        self._Checker = params.get("Checker")
        self._TerminalCode = params.get("TerminalCode")
        self._LevyMethod = params.get("LevyMethod")
        self._Deduction = params.get("Deduction")
        self._Remark = params.get("Remark")
        if params.get("Items") is not None:
            self._Items = []
            for item in params.get("Items"):
                obj = CreateInvoiceItem()
                obj._deserialize(item)
                self._Items.append(obj)
        self._Profile = params.get("Profile")
        self._UndoPart = params.get("UndoPart")
        self._OrderDate = params.get("OrderDate")
        self._Discount = params.get("Discount")
        self._StoreNo = params.get("StoreNo")
        self._InvoiceChannel = params.get("InvoiceChannel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceResponse(AbstractModel):
    """CreateInvoice返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 发票开具结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateInvoiceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = CreateInvoiceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateInvoiceResult(AbstractModel):
    """发票结果

    """

    def __init__(self):
        r"""
        :param _Message: 错误消息
        :type Message: str
        :param _Code: 错误码
        :type Code: int
        :param _Data: 数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.CreateInvoiceResultData`
        """
        self._Message = None
        self._Code = None
        self._Data = None

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Message = params.get("Message")
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = CreateInvoiceResultData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceResultData(AbstractModel):
    """蓝票结果数据

    """

    def __init__(self):
        r"""
        :param _State: 开票状态
        :type State: int
        :param _InvoiceId: 发票ID
        :type InvoiceId: str
        :param _OrderSn: 业务开票号
        :type OrderSn: str
        """
        self._State = None
        self._InvoiceId = None
        self._OrderSn = None

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def InvoiceId(self):
        return self._InvoiceId

    @InvoiceId.setter
    def InvoiceId(self, InvoiceId):
        self._InvoiceId = InvoiceId

    @property
    def OrderSn(self):
        return self._OrderSn

    @OrderSn.setter
    def OrderSn(self, OrderSn):
        self._OrderSn = OrderSn


    def _deserialize(self, params):
        self._State = params.get("State")
        self._InvoiceId = params.get("InvoiceId")
        self._OrderSn = params.get("OrderSn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceResultV2(AbstractModel):
    """发票结果V2

    """

    def __init__(self):
        r"""
        :param _InvoiceId: 发票ID
        :type InvoiceId: str
        """
        self._InvoiceId = None

    @property
    def InvoiceId(self):
        return self._InvoiceId

    @InvoiceId.setter
    def InvoiceId(self, InvoiceId):
        self._InvoiceId = InvoiceId


    def _deserialize(self, params):
        self._InvoiceId = params.get("InvoiceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceV2Request(AbstractModel):
    """CreateInvoiceV2请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID。0：高灯，1：票易通
        :type InvoicePlatformId: int
        :param _TitleType: 抬头类型：1：个人/政府事业单位；2：企业
        :type TitleType: int
        :param _BuyerTitle: 购方名称
        :type BuyerTitle: str
        :param _OrderId: 业务开票号
        :type OrderId: str
        :param _AmountHasTax: 含税总金额（单位为分）
        :type AmountHasTax: int
        :param _TaxAmount: 总税额（单位为分）
        :type TaxAmount: int
        :param _AmountWithoutTax: 不含税总金额（单位为分）。InvoicePlatformId 为1时，传默认值-1
        :type AmountWithoutTax: int
        :param _SellerTaxpayerNum: 销方纳税人识别号
        :type SellerTaxpayerNum: str
        :param _SellerName: 销方名称。（不填默认读取商户注册时输入的信息）
        :type SellerName: str
        :param _SellerAddress: 销方地址。（不填默认读取商户注册时输入的信息）
        :type SellerAddress: str
        :param _SellerPhone: 销方电话。（不填默认读取商户注册时输入的信息）
        :type SellerPhone: str
        :param _SellerBankName: 销方银行名称。（不填默认读取商户注册时输入的信息）
        :type SellerBankName: str
        :param _SellerBankAccount: 销方银行账号。（不填默认读取商户注册时输入的信息）
        :type SellerBankAccount: str
        :param _BuyerTaxpayerNum: 购方纳税人识别号（购方票面信息）,若抬头类型为2时，必传
        :type BuyerTaxpayerNum: str
        :param _BuyerAddress: 购方地址。开具专用发票时必填
        :type BuyerAddress: str
        :param _BuyerBankName: 购方银行名称。开具专用发票时必填
        :type BuyerBankName: str
        :param _BuyerBankAccount: 购方银行账号。开具专用发票时必填
        :type BuyerBankAccount: str
        :param _BuyerPhone: 购方电话。开具专用发票时必填
        :type BuyerPhone: str
        :param _BuyerEmail: 收票人邮箱。若填入，会收到发票推送邮件
        :type BuyerEmail: str
        :param _TakerPhone: 收票人手机号。若填入，会收到发票推送短信
        :type TakerPhone: str
        :param _InvoiceType: 开票类型：
1：增值税专用发票；
2：增值税普通发票；
3：增值税电子发票；
4：增值税卷式发票；
5：区块链电子发票。
若该字段不填，或值不为1-5，则认为开具”增值税电子发票”
        :type InvoiceType: int
        :param _CallbackUrl: 发票结果回传地址
        :type CallbackUrl: str
        :param _Drawer: 开票人姓名。（不填默认读取商户注册时输入的信息）
        :type Drawer: str
        :param _Payee: 收款人姓名。（不填默认读取商户注册时输入的信息）
        :type Payee: str
        :param _Checker: 复核人姓名。（不填默认读取商户注册时输入的信息）
        :type Checker: str
        :param _TerminalCode: 税盘号
        :type TerminalCode: str
        :param _LevyMethod: 征收方式。开具差额征税发票时必填2。开具普通征税发票时为空
        :type LevyMethod: str
        :param _Deduction: 差额征税扣除额（单位为分）
        :type Deduction: int
        :param _Remark: 备注（票面信息）
        :type Remark: str
        :param _Items: 项目商品明细
        :type Items: list of CreateInvoiceItem
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        :param _UndoPart: 撤销部分商品。0-不撤销，1-撤销
        :type UndoPart: int
        :param _OrderDate: 订单下单时间（格式 YYYYMMDD）
        :type OrderDate: str
        :param _Discount: 订单级别折扣（单位为分）
        :type Discount: int
        :param _StoreNo: 门店编码
        :type StoreNo: str
        :param _InvoiceChannel: 开票渠道。0：APP渠道，1：线下渠道，2：小程序渠道。不填默认为APP渠道
        :type InvoiceChannel: int
        """
        self._InvoicePlatformId = None
        self._TitleType = None
        self._BuyerTitle = None
        self._OrderId = None
        self._AmountHasTax = None
        self._TaxAmount = None
        self._AmountWithoutTax = None
        self._SellerTaxpayerNum = None
        self._SellerName = None
        self._SellerAddress = None
        self._SellerPhone = None
        self._SellerBankName = None
        self._SellerBankAccount = None
        self._BuyerTaxpayerNum = None
        self._BuyerAddress = None
        self._BuyerBankName = None
        self._BuyerBankAccount = None
        self._BuyerPhone = None
        self._BuyerEmail = None
        self._TakerPhone = None
        self._InvoiceType = None
        self._CallbackUrl = None
        self._Drawer = None
        self._Payee = None
        self._Checker = None
        self._TerminalCode = None
        self._LevyMethod = None
        self._Deduction = None
        self._Remark = None
        self._Items = None
        self._Profile = None
        self._UndoPart = None
        self._OrderDate = None
        self._Discount = None
        self._StoreNo = None
        self._InvoiceChannel = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def TitleType(self):
        return self._TitleType

    @TitleType.setter
    def TitleType(self, TitleType):
        self._TitleType = TitleType

    @property
    def BuyerTitle(self):
        return self._BuyerTitle

    @BuyerTitle.setter
    def BuyerTitle(self, BuyerTitle):
        self._BuyerTitle = BuyerTitle

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AmountHasTax(self):
        return self._AmountHasTax

    @AmountHasTax.setter
    def AmountHasTax(self, AmountHasTax):
        self._AmountHasTax = AmountHasTax

    @property
    def TaxAmount(self):
        return self._TaxAmount

    @TaxAmount.setter
    def TaxAmount(self, TaxAmount):
        self._TaxAmount = TaxAmount

    @property
    def AmountWithoutTax(self):
        return self._AmountWithoutTax

    @AmountWithoutTax.setter
    def AmountWithoutTax(self, AmountWithoutTax):
        self._AmountWithoutTax = AmountWithoutTax

    @property
    def SellerTaxpayerNum(self):
        return self._SellerTaxpayerNum

    @SellerTaxpayerNum.setter
    def SellerTaxpayerNum(self, SellerTaxpayerNum):
        self._SellerTaxpayerNum = SellerTaxpayerNum

    @property
    def SellerName(self):
        return self._SellerName

    @SellerName.setter
    def SellerName(self, SellerName):
        self._SellerName = SellerName

    @property
    def SellerAddress(self):
        return self._SellerAddress

    @SellerAddress.setter
    def SellerAddress(self, SellerAddress):
        self._SellerAddress = SellerAddress

    @property
    def SellerPhone(self):
        return self._SellerPhone

    @SellerPhone.setter
    def SellerPhone(self, SellerPhone):
        self._SellerPhone = SellerPhone

    @property
    def SellerBankName(self):
        return self._SellerBankName

    @SellerBankName.setter
    def SellerBankName(self, SellerBankName):
        self._SellerBankName = SellerBankName

    @property
    def SellerBankAccount(self):
        return self._SellerBankAccount

    @SellerBankAccount.setter
    def SellerBankAccount(self, SellerBankAccount):
        self._SellerBankAccount = SellerBankAccount

    @property
    def BuyerTaxpayerNum(self):
        return self._BuyerTaxpayerNum

    @BuyerTaxpayerNum.setter
    def BuyerTaxpayerNum(self, BuyerTaxpayerNum):
        self._BuyerTaxpayerNum = BuyerTaxpayerNum

    @property
    def BuyerAddress(self):
        return self._BuyerAddress

    @BuyerAddress.setter
    def BuyerAddress(self, BuyerAddress):
        self._BuyerAddress = BuyerAddress

    @property
    def BuyerBankName(self):
        return self._BuyerBankName

    @BuyerBankName.setter
    def BuyerBankName(self, BuyerBankName):
        self._BuyerBankName = BuyerBankName

    @property
    def BuyerBankAccount(self):
        return self._BuyerBankAccount

    @BuyerBankAccount.setter
    def BuyerBankAccount(self, BuyerBankAccount):
        self._BuyerBankAccount = BuyerBankAccount

    @property
    def BuyerPhone(self):
        return self._BuyerPhone

    @BuyerPhone.setter
    def BuyerPhone(self, BuyerPhone):
        self._BuyerPhone = BuyerPhone

    @property
    def BuyerEmail(self):
        return self._BuyerEmail

    @BuyerEmail.setter
    def BuyerEmail(self, BuyerEmail):
        self._BuyerEmail = BuyerEmail

    @property
    def TakerPhone(self):
        return self._TakerPhone

    @TakerPhone.setter
    def TakerPhone(self, TakerPhone):
        self._TakerPhone = TakerPhone

    @property
    def InvoiceType(self):
        return self._InvoiceType

    @InvoiceType.setter
    def InvoiceType(self, InvoiceType):
        self._InvoiceType = InvoiceType

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def Drawer(self):
        return self._Drawer

    @Drawer.setter
    def Drawer(self, Drawer):
        self._Drawer = Drawer

    @property
    def Payee(self):
        return self._Payee

    @Payee.setter
    def Payee(self, Payee):
        self._Payee = Payee

    @property
    def Checker(self):
        return self._Checker

    @Checker.setter
    def Checker(self, Checker):
        self._Checker = Checker

    @property
    def TerminalCode(self):
        return self._TerminalCode

    @TerminalCode.setter
    def TerminalCode(self, TerminalCode):
        self._TerminalCode = TerminalCode

    @property
    def LevyMethod(self):
        return self._LevyMethod

    @LevyMethod.setter
    def LevyMethod(self, LevyMethod):
        self._LevyMethod = LevyMethod

    @property
    def Deduction(self):
        return self._Deduction

    @Deduction.setter
    def Deduction(self, Deduction):
        self._Deduction = Deduction

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Items(self):
        return self._Items

    @Items.setter
    def Items(self, Items):
        self._Items = Items

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def UndoPart(self):
        return self._UndoPart

    @UndoPart.setter
    def UndoPart(self, UndoPart):
        self._UndoPart = UndoPart

    @property
    def OrderDate(self):
        return self._OrderDate

    @OrderDate.setter
    def OrderDate(self, OrderDate):
        self._OrderDate = OrderDate

    @property
    def Discount(self):
        return self._Discount

    @Discount.setter
    def Discount(self, Discount):
        self._Discount = Discount

    @property
    def StoreNo(self):
        return self._StoreNo

    @StoreNo.setter
    def StoreNo(self, StoreNo):
        self._StoreNo = StoreNo

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._TitleType = params.get("TitleType")
        self._BuyerTitle = params.get("BuyerTitle")
        self._OrderId = params.get("OrderId")
        self._AmountHasTax = params.get("AmountHasTax")
        self._TaxAmount = params.get("TaxAmount")
        self._AmountWithoutTax = params.get("AmountWithoutTax")
        self._SellerTaxpayerNum = params.get("SellerTaxpayerNum")
        self._SellerName = params.get("SellerName")
        self._SellerAddress = params.get("SellerAddress")
        self._SellerPhone = params.get("SellerPhone")
        self._SellerBankName = params.get("SellerBankName")
        self._SellerBankAccount = params.get("SellerBankAccount")
        self._BuyerTaxpayerNum = params.get("BuyerTaxpayerNum")
        self._BuyerAddress = params.get("BuyerAddress")
        self._BuyerBankName = params.get("BuyerBankName")
        self._BuyerBankAccount = params.get("BuyerBankAccount")
        self._BuyerPhone = params.get("BuyerPhone")
        self._BuyerEmail = params.get("BuyerEmail")
        self._TakerPhone = params.get("TakerPhone")
        self._InvoiceType = params.get("InvoiceType")
        self._CallbackUrl = params.get("CallbackUrl")
        self._Drawer = params.get("Drawer")
        self._Payee = params.get("Payee")
        self._Checker = params.get("Checker")
        self._TerminalCode = params.get("TerminalCode")
        self._LevyMethod = params.get("LevyMethod")
        self._Deduction = params.get("Deduction")
        self._Remark = params.get("Remark")
        if params.get("Items") is not None:
            self._Items = []
            for item in params.get("Items"):
                obj = CreateInvoiceItem()
                obj._deserialize(item)
                self._Items.append(obj)
        self._Profile = params.get("Profile")
        self._UndoPart = params.get("UndoPart")
        self._OrderDate = params.get("OrderDate")
        self._Discount = params.get("Discount")
        self._StoreNo = params.get("StoreNo")
        self._InvoiceChannel = params.get("InvoiceChannel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateInvoiceV2Response(AbstractModel):
    """CreateInvoiceV2返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 发票开具结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateInvoiceResultV2`
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._ErrCode = None
        self._ErrMessage = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = CreateInvoiceResultV2()
            self._Result._deserialize(params.get("Result"))
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._RequestId = params.get("RequestId")


class CreateMerchantRequest(AbstractModel):
    """CreateMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
        :type InvoicePlatformId: int
        :param _TaxpayerName: 企业名称
        :type TaxpayerName: str
        :param _TaxpayerNum: 销方纳税人识别号
        :type TaxpayerNum: str
        :param _LegalPersonName: 注册企业法定代表人名称
        :type LegalPersonName: str
        :param _ContactsName: 联系人
        :type ContactsName: str
        :param _Phone: 联系人手机号
        :type Phone: str
        :param _Address: 不包含省市名称的地址
        :type Address: str
        :param _RegionCode: 地区编码
        :type RegionCode: int
        :param _CityName: 市（地区）名称
        :type CityName: str
        :param _Drawer: 开票人
        :type Drawer: str
        :param _TaxRegistrationCertificate: 税务登记证图片（Base64）字符串，需小于 3M
        :type TaxRegistrationCertificate: str
        :param _Email: 联系人邮箱地址
        :type Email: str
        :param _BusinessMobile: 企业电话
        :type BusinessMobile: str
        :param _BankName: 银行名称
        :type BankName: str
        :param _BankAccount: 银行账号
        :type BankAccount: str
        :param _Reviewer: 复核人
        :type Reviewer: str
        :param _Payee: 收款人
        :type Payee: str
        :param _RegisterCode: 注册邀请码
        :type RegisterCode: str
        :param _State: 不填默认为1，有效状态
0：表示无效；
1:表示有效；
2:表示禁止开蓝票；
3:表示禁止冲红。
        :type State: str
        :param _CallbackUrl: 接收推送的消息地址
        :type CallbackUrl: str
        :param _Profile: 接入环境。沙箱环境填 sandbox。
        :type Profile: str
        """
        self._InvoicePlatformId = None
        self._TaxpayerName = None
        self._TaxpayerNum = None
        self._LegalPersonName = None
        self._ContactsName = None
        self._Phone = None
        self._Address = None
        self._RegionCode = None
        self._CityName = None
        self._Drawer = None
        self._TaxRegistrationCertificate = None
        self._Email = None
        self._BusinessMobile = None
        self._BankName = None
        self._BankAccount = None
        self._Reviewer = None
        self._Payee = None
        self._RegisterCode = None
        self._State = None
        self._CallbackUrl = None
        self._Profile = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def TaxpayerName(self):
        return self._TaxpayerName

    @TaxpayerName.setter
    def TaxpayerName(self, TaxpayerName):
        self._TaxpayerName = TaxpayerName

    @property
    def TaxpayerNum(self):
        return self._TaxpayerNum

    @TaxpayerNum.setter
    def TaxpayerNum(self, TaxpayerNum):
        self._TaxpayerNum = TaxpayerNum

    @property
    def LegalPersonName(self):
        return self._LegalPersonName

    @LegalPersonName.setter
    def LegalPersonName(self, LegalPersonName):
        self._LegalPersonName = LegalPersonName

    @property
    def ContactsName(self):
        return self._ContactsName

    @ContactsName.setter
    def ContactsName(self, ContactsName):
        self._ContactsName = ContactsName

    @property
    def Phone(self):
        return self._Phone

    @Phone.setter
    def Phone(self, Phone):
        self._Phone = Phone

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def CityName(self):
        return self._CityName

    @CityName.setter
    def CityName(self, CityName):
        self._CityName = CityName

    @property
    def Drawer(self):
        return self._Drawer

    @Drawer.setter
    def Drawer(self, Drawer):
        self._Drawer = Drawer

    @property
    def TaxRegistrationCertificate(self):
        return self._TaxRegistrationCertificate

    @TaxRegistrationCertificate.setter
    def TaxRegistrationCertificate(self, TaxRegistrationCertificate):
        self._TaxRegistrationCertificate = TaxRegistrationCertificate

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def BusinessMobile(self):
        return self._BusinessMobile

    @BusinessMobile.setter
    def BusinessMobile(self, BusinessMobile):
        self._BusinessMobile = BusinessMobile

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def BankAccount(self):
        return self._BankAccount

    @BankAccount.setter
    def BankAccount(self, BankAccount):
        self._BankAccount = BankAccount

    @property
    def Reviewer(self):
        return self._Reviewer

    @Reviewer.setter
    def Reviewer(self, Reviewer):
        self._Reviewer = Reviewer

    @property
    def Payee(self):
        return self._Payee

    @Payee.setter
    def Payee(self, Payee):
        self._Payee = Payee

    @property
    def RegisterCode(self):
        return self._RegisterCode

    @RegisterCode.setter
    def RegisterCode(self, RegisterCode):
        self._RegisterCode = RegisterCode

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._TaxpayerName = params.get("TaxpayerName")
        self._TaxpayerNum = params.get("TaxpayerNum")
        self._LegalPersonName = params.get("LegalPersonName")
        self._ContactsName = params.get("ContactsName")
        self._Phone = params.get("Phone")
        self._Address = params.get("Address")
        self._RegionCode = params.get("RegionCode")
        self._CityName = params.get("CityName")
        self._Drawer = params.get("Drawer")
        self._TaxRegistrationCertificate = params.get("TaxRegistrationCertificate")
        self._Email = params.get("Email")
        self._BusinessMobile = params.get("BusinessMobile")
        self._BankName = params.get("BankName")
        self._BankAccount = params.get("BankAccount")
        self._Reviewer = params.get("Reviewer")
        self._Payee = params.get("Payee")
        self._RegisterCode = params.get("RegisterCode")
        self._State = params.get("State")
        self._CallbackUrl = params.get("CallbackUrl")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateMerchantResponse(AbstractModel):
    """CreateMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 商户注册结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateMerchantResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = CreateMerchantResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateMerchantResult(AbstractModel):
    """创建商户结果

    """

    def __init__(self):
        r"""
        :param _Code: 状态码
        :type Code: int
        :param _Message: 响应消息
        :type Message: str
        :param _Data: 创建商户结果数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.CreateMerchantResultData`
        """
        self._Code = None
        self._Message = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        self._Message = params.get("Message")
        if params.get("Data") is not None:
            self._Data = CreateMerchantResultData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateMerchantResultData(AbstractModel):
    """创建商户结果数据

    """

    def __init__(self):
        r"""
        :param _TaxpayerName: 企业名称
        :type TaxpayerName: str
        :param _SerialNo: 请求流水号
        :type SerialNo: str
        :param _TaxpayerNum: 纳税号
        :type TaxpayerNum: str
        """
        self._TaxpayerName = None
        self._SerialNo = None
        self._TaxpayerNum = None

    @property
    def TaxpayerName(self):
        return self._TaxpayerName

    @TaxpayerName.setter
    def TaxpayerName(self, TaxpayerName):
        self._TaxpayerName = TaxpayerName

    @property
    def SerialNo(self):
        return self._SerialNo

    @SerialNo.setter
    def SerialNo(self, SerialNo):
        self._SerialNo = SerialNo

    @property
    def TaxpayerNum(self):
        return self._TaxpayerNum

    @TaxpayerNum.setter
    def TaxpayerNum(self, TaxpayerNum):
        self._TaxpayerNum = TaxpayerNum


    def _deserialize(self, params):
        self._TaxpayerName = params.get("TaxpayerName")
        self._SerialNo = params.get("SerialNo")
        self._TaxpayerNum = params.get("TaxpayerNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankAggregatedSubMerchantRegistrationRequest(AbstractModel):
    """CreateOpenBankAggregatedSubMerchantRegistration请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutRegistrationNo: 外部进件序列号。
        :type OutRegistrationNo: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _OutSubMerchantId: 外部子商户ID。
        :type OutSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
TENPAY: 商企付
WECHAT: 微信支付
ALIPAY: 支付宝
HELIPAY:合利宝
        :type ChannelName: str
        :param _OutSubMerchantType: 外部子商户类型。
ENTERPRISE：企业商户 
INSTITUTION：事业单位商户 
INDIVIDUALBISS：个体工商户 
PERSON：个人商户(小微商户) 
SUBJECT_TYPE_OTHERS：其他组织
        :type OutSubMerchantType: str
        :param _OutSubMerchantName: 外部子商户名称。
HELIPAY渠道(长度不能小于5大于150)。
        :type OutSubMerchantName: str
        :param _LegalPersonInfo: 商户法人代表信息。
        :type LegalPersonInfo: :class:`tencentcloud.cpdp.v20190820.models.LegalPersonInfo`
        :param _BusinessLicenseInfo: 营业证件信息。
        :type BusinessLicenseInfo: :class:`tencentcloud.cpdp.v20190820.models.BusinessLicenseInfo`
        :param _InterConnectionSubMerchantData: 支付渠道子商户进件信息。
json字符串，详情见附录-复杂类型-InterConnectionSubMerchantData。
        :type InterConnectionSubMerchantData: str
        :param _PaymentMethod: 支付方式。详见附录-云企付枚举类说明-PaymentMethod。
合利宝渠道不需要传。
        :type PaymentMethod: str
        :param _OutSubMerchantShortName: 外部子商户简称。
HELIPAY渠道必传(长度不能小于2大于20)。
        :type OutSubMerchantShortName: str
        :param _OutSubMerchantDescription: 外部子商户描述。
        :type OutSubMerchantDescription: str
        :param _NotifyUrl: 通知地址。
        :type NotifyUrl: str
        :param _NaturalPersonList: 相关自然人信息列表。
HELIPAY渠道必传业务联系人。
        :type NaturalPersonList: list of NaturalPersonInfo
        :param _SettleInfo: 商户结算信息。
HELIPAY渠道必传。
        :type SettleInfo: :class:`tencentcloud.cpdp.v20190820.models.SettleInfo`
        :param _OutSubMerchantExtensionInfo: 外部子商户其他公用扩展信息。
HELIPAY渠道必传。
        :type OutSubMerchantExtensionInfo: :class:`tencentcloud.cpdp.v20190820.models.OutSubMerchantExtensionInfo`
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._OutRegistrationNo = None
        self._ChannelMerchantId = None
        self._OutSubMerchantId = None
        self._ChannelName = None
        self._OutSubMerchantType = None
        self._OutSubMerchantName = None
        self._LegalPersonInfo = None
        self._BusinessLicenseInfo = None
        self._InterConnectionSubMerchantData = None
        self._PaymentMethod = None
        self._OutSubMerchantShortName = None
        self._OutSubMerchantDescription = None
        self._NotifyUrl = None
        self._NaturalPersonList = None
        self._SettleInfo = None
        self._OutSubMerchantExtensionInfo = None
        self._Environment = None

    @property
    def OutRegistrationNo(self):
        return self._OutRegistrationNo

    @OutRegistrationNo.setter
    def OutRegistrationNo(self, OutRegistrationNo):
        self._OutRegistrationNo = OutRegistrationNo

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutSubMerchantId(self):
        return self._OutSubMerchantId

    @OutSubMerchantId.setter
    def OutSubMerchantId(self, OutSubMerchantId):
        self._OutSubMerchantId = OutSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def OutSubMerchantType(self):
        return self._OutSubMerchantType

    @OutSubMerchantType.setter
    def OutSubMerchantType(self, OutSubMerchantType):
        self._OutSubMerchantType = OutSubMerchantType

    @property
    def OutSubMerchantName(self):
        return self._OutSubMerchantName

    @OutSubMerchantName.setter
    def OutSubMerchantName(self, OutSubMerchantName):
        self._OutSubMerchantName = OutSubMerchantName

    @property
    def LegalPersonInfo(self):
        return self._LegalPersonInfo

    @LegalPersonInfo.setter
    def LegalPersonInfo(self, LegalPersonInfo):
        self._LegalPersonInfo = LegalPersonInfo

    @property
    def BusinessLicenseInfo(self):
        return self._BusinessLicenseInfo

    @BusinessLicenseInfo.setter
    def BusinessLicenseInfo(self, BusinessLicenseInfo):
        self._BusinessLicenseInfo = BusinessLicenseInfo

    @property
    def InterConnectionSubMerchantData(self):
        return self._InterConnectionSubMerchantData

    @InterConnectionSubMerchantData.setter
    def InterConnectionSubMerchantData(self, InterConnectionSubMerchantData):
        self._InterConnectionSubMerchantData = InterConnectionSubMerchantData

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def OutSubMerchantShortName(self):
        return self._OutSubMerchantShortName

    @OutSubMerchantShortName.setter
    def OutSubMerchantShortName(self, OutSubMerchantShortName):
        self._OutSubMerchantShortName = OutSubMerchantShortName

    @property
    def OutSubMerchantDescription(self):
        return self._OutSubMerchantDescription

    @OutSubMerchantDescription.setter
    def OutSubMerchantDescription(self, OutSubMerchantDescription):
        self._OutSubMerchantDescription = OutSubMerchantDescription

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def NaturalPersonList(self):
        return self._NaturalPersonList

    @NaturalPersonList.setter
    def NaturalPersonList(self, NaturalPersonList):
        self._NaturalPersonList = NaturalPersonList

    @property
    def SettleInfo(self):
        return self._SettleInfo

    @SettleInfo.setter
    def SettleInfo(self, SettleInfo):
        self._SettleInfo = SettleInfo

    @property
    def OutSubMerchantExtensionInfo(self):
        return self._OutSubMerchantExtensionInfo

    @OutSubMerchantExtensionInfo.setter
    def OutSubMerchantExtensionInfo(self, OutSubMerchantExtensionInfo):
        self._OutSubMerchantExtensionInfo = OutSubMerchantExtensionInfo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutRegistrationNo = params.get("OutRegistrationNo")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutSubMerchantId = params.get("OutSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._OutSubMerchantType = params.get("OutSubMerchantType")
        self._OutSubMerchantName = params.get("OutSubMerchantName")
        if params.get("LegalPersonInfo") is not None:
            self._LegalPersonInfo = LegalPersonInfo()
            self._LegalPersonInfo._deserialize(params.get("LegalPersonInfo"))
        if params.get("BusinessLicenseInfo") is not None:
            self._BusinessLicenseInfo = BusinessLicenseInfo()
            self._BusinessLicenseInfo._deserialize(params.get("BusinessLicenseInfo"))
        self._InterConnectionSubMerchantData = params.get("InterConnectionSubMerchantData")
        self._PaymentMethod = params.get("PaymentMethod")
        self._OutSubMerchantShortName = params.get("OutSubMerchantShortName")
        self._OutSubMerchantDescription = params.get("OutSubMerchantDescription")
        self._NotifyUrl = params.get("NotifyUrl")
        if params.get("NaturalPersonList") is not None:
            self._NaturalPersonList = []
            for item in params.get("NaturalPersonList"):
                obj = NaturalPersonInfo()
                obj._deserialize(item)
                self._NaturalPersonList.append(obj)
        if params.get("SettleInfo") is not None:
            self._SettleInfo = SettleInfo()
            self._SettleInfo._deserialize(params.get("SettleInfo"))
        if params.get("OutSubMerchantExtensionInfo") is not None:
            self._OutSubMerchantExtensionInfo = OutSubMerchantExtensionInfo()
            self._OutSubMerchantExtensionInfo._deserialize(params.get("OutSubMerchantExtensionInfo"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankAggregatedSubMerchantRegistrationResponse(AbstractModel):
    """CreateOpenBankAggregatedSubMerchantRegistration返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankExternalAggregatedSubMerchantRegistrationResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankExternalAggregatedSubMerchantRegistrationResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankExternalAggregatedSubMerchantRegistrationResult(AbstractModel):
    """聚合支付子商户线上入驻结果

    """

    def __init__(self):
        r"""
        :param _RegistrationStatus: 进件状态 
SUCCESS: 进件成功 
FAILED: 进件失败
PROCESSING: 进件中 
注意：若返回进件中，需要再次调用进件结果查询接口，查询结果。
        :type RegistrationStatus: str
        :param _RegistrationMessage: 进件返回描述
注意：此字段可能返回 null，表示取不到有效值。
        :type RegistrationMessage: str
        :param _ChannelRegistrationNo: 渠道进件序列号
        :type ChannelRegistrationNo: str
        :param _ChannelSubMerchantId: 渠道子商户ID
        :type ChannelSubMerchantId: str
        """
        self._RegistrationStatus = None
        self._RegistrationMessage = None
        self._ChannelRegistrationNo = None
        self._ChannelSubMerchantId = None

    @property
    def RegistrationStatus(self):
        return self._RegistrationStatus

    @RegistrationStatus.setter
    def RegistrationStatus(self, RegistrationStatus):
        self._RegistrationStatus = RegistrationStatus

    @property
    def RegistrationMessage(self):
        return self._RegistrationMessage

    @RegistrationMessage.setter
    def RegistrationMessage(self, RegistrationMessage):
        self._RegistrationMessage = RegistrationMessage

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId


    def _deserialize(self, params):
        self._RegistrationStatus = params.get("RegistrationStatus")
        self._RegistrationMessage = params.get("RegistrationMessage")
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankExternalSubMerchantAccountBookRequest(AbstractModel):
    """CreateOpenBankExternalSubMerchantAccountBook请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutAccountBookId: 外部账本ID
        :type OutAccountBookId: str
        :param _ChannelMerchantId: 渠道商户ID
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。目前只支持支付宝
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。目前只支持安心发支付
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
__SAFT_ISV__: 安心发支付
        :type PaymentMethod: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._OutAccountBookId = None
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._Environment = None

    @property
    def OutAccountBookId(self):
        return self._OutAccountBookId

    @OutAccountBookId.setter
    def OutAccountBookId(self, OutAccountBookId):
        self._OutAccountBookId = OutAccountBookId

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutAccountBookId = params.get("OutAccountBookId")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankExternalSubMerchantAccountBookResponse(AbstractModel):
    """CreateOpenBankExternalSubMerchantAccountBook返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateExternalAccountBookResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateExternalAccountBookResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankExternalSubMerchantRegistrationRequest(AbstractModel):
    """CreateOpenBankExternalSubMerchantRegistration请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutRegistrationNo: 外部进件序列号。
        :type OutRegistrationNo: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _OutSubMerchantId: 外部子商户ID,平台侧商户唯一ID。
        :type OutSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。详见附录-云企付枚举类说明-PaymentMethod。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
        :type PaymentMethod: str
        :param _BusinessLicenseNumber: 社会信用代码。
        :type BusinessLicenseNumber: str
        :param _OutSubMerchantName: 外部子商户名称。
        :type OutSubMerchantName: str
        :param _LegalName: 法人姓名。
        :type LegalName: str
        :param _OutSubMerchantShortName: 外部子商户简称。
        :type OutSubMerchantShortName: str
        :param _OutSubMerchantDescription: 外部子商户描述。
        :type OutSubMerchantDescription: str
        :param _ExternalSubMerchantRegistrationData: 第三方子商户进件信息，为JSON格式字符串。详情见附录-复杂类型。
        :type ExternalSubMerchantRegistrationData: str
        :param _NotifyUrl: 通知地址。
        :type NotifyUrl: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._OutRegistrationNo = None
        self._ChannelMerchantId = None
        self._OutSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BusinessLicenseNumber = None
        self._OutSubMerchantName = None
        self._LegalName = None
        self._OutSubMerchantShortName = None
        self._OutSubMerchantDescription = None
        self._ExternalSubMerchantRegistrationData = None
        self._NotifyUrl = None
        self._Environment = None

    @property
    def OutRegistrationNo(self):
        return self._OutRegistrationNo

    @OutRegistrationNo.setter
    def OutRegistrationNo(self, OutRegistrationNo):
        self._OutRegistrationNo = OutRegistrationNo

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutSubMerchantId(self):
        return self._OutSubMerchantId

    @OutSubMerchantId.setter
    def OutSubMerchantId(self, OutSubMerchantId):
        self._OutSubMerchantId = OutSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BusinessLicenseNumber(self):
        return self._BusinessLicenseNumber

    @BusinessLicenseNumber.setter
    def BusinessLicenseNumber(self, BusinessLicenseNumber):
        self._BusinessLicenseNumber = BusinessLicenseNumber

    @property
    def OutSubMerchantName(self):
        return self._OutSubMerchantName

    @OutSubMerchantName.setter
    def OutSubMerchantName(self, OutSubMerchantName):
        self._OutSubMerchantName = OutSubMerchantName

    @property
    def LegalName(self):
        return self._LegalName

    @LegalName.setter
    def LegalName(self, LegalName):
        self._LegalName = LegalName

    @property
    def OutSubMerchantShortName(self):
        return self._OutSubMerchantShortName

    @OutSubMerchantShortName.setter
    def OutSubMerchantShortName(self, OutSubMerchantShortName):
        self._OutSubMerchantShortName = OutSubMerchantShortName

    @property
    def OutSubMerchantDescription(self):
        return self._OutSubMerchantDescription

    @OutSubMerchantDescription.setter
    def OutSubMerchantDescription(self, OutSubMerchantDescription):
        self._OutSubMerchantDescription = OutSubMerchantDescription

    @property
    def ExternalSubMerchantRegistrationData(self):
        return self._ExternalSubMerchantRegistrationData

    @ExternalSubMerchantRegistrationData.setter
    def ExternalSubMerchantRegistrationData(self, ExternalSubMerchantRegistrationData):
        self._ExternalSubMerchantRegistrationData = ExternalSubMerchantRegistrationData

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutRegistrationNo = params.get("OutRegistrationNo")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutSubMerchantId = params.get("OutSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BusinessLicenseNumber = params.get("BusinessLicenseNumber")
        self._OutSubMerchantName = params.get("OutSubMerchantName")
        self._LegalName = params.get("LegalName")
        self._OutSubMerchantShortName = params.get("OutSubMerchantShortName")
        self._OutSubMerchantDescription = params.get("OutSubMerchantDescription")
        self._ExternalSubMerchantRegistrationData = params.get("ExternalSubMerchantRegistrationData")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankExternalSubMerchantRegistrationResponse(AbstractModel):
    """CreateOpenBankExternalSubMerchantRegistration返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankExternalSubMerchantRegistrationResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankExternalSubMerchantRegistrationResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankExternalSubMerchantRegistrationResult(AbstractModel):
    """子商户进件返回结果

    """

    def __init__(self):
        r"""
        :param _RegistrationStatus: 进件状态。
__SUCCESS__: 进件成功
__FAILED__: 进件失败
__PROCESSING__: 进件中
注意：若返回进件中，需要再次调用进件结果查询接口，查询结果。
        :type RegistrationStatus: str
        :param _RegistrationMessage: 进件返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type RegistrationMessage: str
        :param _ChannelRegistrationNo: 渠道进件序列号。
        :type ChannelRegistrationNo: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ExternalReturnData: 第三方渠道返回信息, 为JSON格式字符串。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        """
        self._RegistrationStatus = None
        self._RegistrationMessage = None
        self._ChannelRegistrationNo = None
        self._ChannelSubMerchantId = None
        self._ExternalReturnData = None

    @property
    def RegistrationStatus(self):
        return self._RegistrationStatus

    @RegistrationStatus.setter
    def RegistrationStatus(self, RegistrationStatus):
        self._RegistrationStatus = RegistrationStatus

    @property
    def RegistrationMessage(self):
        return self._RegistrationMessage

    @RegistrationMessage.setter
    def RegistrationMessage(self, RegistrationMessage):
        self._RegistrationMessage = RegistrationMessage

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData


    def _deserialize(self, params):
        self._RegistrationStatus = params.get("RegistrationStatus")
        self._RegistrationMessage = params.get("RegistrationMessage")
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ExternalReturnData = params.get("ExternalReturnData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankGlobalPaymentOrderRequest(AbstractModel):
    """CreateOpenBankGlobalPaymentOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称
        :type ChannelName: str
        :param _PayType: 付款方式
        :type PayType: str
        :param _OutOrderId: 外部商户订单号,只能是数字、大小写字母，且在同一个接入平台下唯一
        :type OutOrderId: str
        :param _TotalAmount: 付款金额，单位分
        :type TotalAmount: int
        :param _Currency: 支付币种，参考附录：货币代码
        :type Currency: str
        :param _ChannelSubMerchantId: 渠道子商户号
        :type ChannelSubMerchantId: str
        :param _NotifyUrl: 支付成功回调地址。
        :type NotifyUrl: str
        :param _FrontUrl: 前端跳转地址。通联支付成功后，支付网关跳回商户的地址
        :type FrontUrl: str
        :param _FrontLanguage: 网站语言。收银台显示语言，见附录网站语言
        :type FrontLanguage: str
        :param _Remark: 付款备注
        :type Remark: str
        :param _ExternalPaymentData: 第三方拓展信息信息
        :type ExternalPaymentData: str
        :param _GoodsInfos: 商品信息
        :type GoodsInfos: list of OpenBankGoodsInfo
        :param _ShippingInfo: 邮寄信息
        :type ShippingInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankShippingInfo`
        :param _BillingInfo: 账单信息
        :type BillingInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankBillingInfo`
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
缺省默认为生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PayType = None
        self._OutOrderId = None
        self._TotalAmount = None
        self._Currency = None
        self._ChannelSubMerchantId = None
        self._NotifyUrl = None
        self._FrontUrl = None
        self._FrontLanguage = None
        self._Remark = None
        self._ExternalPaymentData = None
        self._GoodsInfos = None
        self._ShippingInfo = None
        self._BillingInfo = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PayType(self):
        return self._PayType

    @PayType.setter
    def PayType(self, PayType):
        self._PayType = PayType

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def FrontUrl(self):
        return self._FrontUrl

    @FrontUrl.setter
    def FrontUrl(self, FrontUrl):
        self._FrontUrl = FrontUrl

    @property
    def FrontLanguage(self):
        return self._FrontLanguage

    @FrontLanguage.setter
    def FrontLanguage(self, FrontLanguage):
        self._FrontLanguage = FrontLanguage

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ExternalPaymentData(self):
        return self._ExternalPaymentData

    @ExternalPaymentData.setter
    def ExternalPaymentData(self, ExternalPaymentData):
        self._ExternalPaymentData = ExternalPaymentData

    @property
    def GoodsInfos(self):
        return self._GoodsInfos

    @GoodsInfos.setter
    def GoodsInfos(self, GoodsInfos):
        self._GoodsInfos = GoodsInfos

    @property
    def ShippingInfo(self):
        return self._ShippingInfo

    @ShippingInfo.setter
    def ShippingInfo(self, ShippingInfo):
        self._ShippingInfo = ShippingInfo

    @property
    def BillingInfo(self):
        return self._BillingInfo

    @BillingInfo.setter
    def BillingInfo(self, BillingInfo):
        self._BillingInfo = BillingInfo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PayType = params.get("PayType")
        self._OutOrderId = params.get("OutOrderId")
        self._TotalAmount = params.get("TotalAmount")
        self._Currency = params.get("Currency")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._FrontUrl = params.get("FrontUrl")
        self._FrontLanguage = params.get("FrontLanguage")
        self._Remark = params.get("Remark")
        self._ExternalPaymentData = params.get("ExternalPaymentData")
        if params.get("GoodsInfos") is not None:
            self._GoodsInfos = []
            for item in params.get("GoodsInfos"):
                obj = OpenBankGoodsInfo()
                obj._deserialize(item)
                self._GoodsInfos.append(obj)
        if params.get("ShippingInfo") is not None:
            self._ShippingInfo = OpenBankShippingInfo()
            self._ShippingInfo._deserialize(params.get("ShippingInfo"))
        if params.get("BillingInfo") is not None:
            self._BillingInfo = OpenBankBillingInfo()
            self._BillingInfo._deserialize(params.get("BillingInfo"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankGlobalPaymentOrderResponse(AbstractModel):
    """CreateOpenBankGlobalPaymentOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 统一下单响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankUnifiedOrderPaymentResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankUnifiedOrderPaymentResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankMerchantRequest(AbstractModel):
    """CreateOpenBankMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutMerchantId: 外部商户ID。
        :type OutMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
        :type ChannelName: str
        :param _OutMerchantName: 外部商户名称。
        :type OutMerchantName: str
        :param _ExternalMerchantInfo: 第三方渠道商户信息。详情见附录-复杂类型。
        :type ExternalMerchantInfo: str
        :param _OutMerchantShortName: 外部商户简称。
        :type OutMerchantShortName: str
        :param _OutMerchantDescription: 外部商户描述
        :type OutMerchantDescription: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._OutMerchantId = None
        self._ChannelName = None
        self._OutMerchantName = None
        self._ExternalMerchantInfo = None
        self._OutMerchantShortName = None
        self._OutMerchantDescription = None
        self._Environment = None

    @property
    def OutMerchantId(self):
        return self._OutMerchantId

    @OutMerchantId.setter
    def OutMerchantId(self, OutMerchantId):
        self._OutMerchantId = OutMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def OutMerchantName(self):
        return self._OutMerchantName

    @OutMerchantName.setter
    def OutMerchantName(self, OutMerchantName):
        self._OutMerchantName = OutMerchantName

    @property
    def ExternalMerchantInfo(self):
        return self._ExternalMerchantInfo

    @ExternalMerchantInfo.setter
    def ExternalMerchantInfo(self, ExternalMerchantInfo):
        self._ExternalMerchantInfo = ExternalMerchantInfo

    @property
    def OutMerchantShortName(self):
        return self._OutMerchantShortName

    @OutMerchantShortName.setter
    def OutMerchantShortName(self, OutMerchantShortName):
        self._OutMerchantShortName = OutMerchantShortName

    @property
    def OutMerchantDescription(self):
        return self._OutMerchantDescription

    @OutMerchantDescription.setter
    def OutMerchantDescription(self, OutMerchantDescription):
        self._OutMerchantDescription = OutMerchantDescription

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutMerchantId = params.get("OutMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._OutMerchantName = params.get("OutMerchantName")
        self._ExternalMerchantInfo = params.get("ExternalMerchantInfo")
        self._OutMerchantShortName = params.get("OutMerchantShortName")
        self._OutMerchantDescription = params.get("OutMerchantDescription")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankMerchantResponse(AbstractModel):
    """CreateOpenBankMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankMerchantResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankMerchantResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankMerchantResult(AbstractModel):
    """创建渠道商户返回结果

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        """
        self._ChannelMerchantId = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankOrderPaymentResult(AbstractModel):
    """云企付-支付下单返回响应

    """

    def __init__(self):
        r"""
        :param _ChannelOrderId: 云企付平台订单号。
        :type ChannelOrderId: str
        :param _ThirdPayOrderId: 第三方支付平台返回支付订单号。
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdPayOrderId: str
        :param _RedirectInfo: 跳转参数渠道为TENPAY，付款方式为EBANK_PAYMENT时必选。
注意：此字段可能返回 null，表示取不到有效值。
        :type RedirectInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRedirectInfo`
        :param _OutOrderId: 外部商户订单号，只能是数字、大小写字母，且在同一个接入平台下唯一。
        :type OutOrderId: str
        :param _PayInfo: 渠道扩展支付信息
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInfo: str
        :param _PayInfoType: 渠道扩展支付信息类型
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInfoType: str
        """
        self._ChannelOrderId = None
        self._ThirdPayOrderId = None
        self._RedirectInfo = None
        self._OutOrderId = None
        self._PayInfo = None
        self._PayInfoType = None

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ThirdPayOrderId(self):
        return self._ThirdPayOrderId

    @ThirdPayOrderId.setter
    def ThirdPayOrderId(self, ThirdPayOrderId):
        self._ThirdPayOrderId = ThirdPayOrderId

    @property
    def RedirectInfo(self):
        return self._RedirectInfo

    @RedirectInfo.setter
    def RedirectInfo(self, RedirectInfo):
        self._RedirectInfo = RedirectInfo

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def PayInfo(self):
        return self._PayInfo

    @PayInfo.setter
    def PayInfo(self, PayInfo):
        self._PayInfo = PayInfo

    @property
    def PayInfoType(self):
        return self._PayInfoType

    @PayInfoType.setter
    def PayInfoType(self, PayInfoType):
        self._PayInfoType = PayInfoType


    def _deserialize(self, params):
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ThirdPayOrderId = params.get("ThirdPayOrderId")
        if params.get("RedirectInfo") is not None:
            self._RedirectInfo = OpenBankRedirectInfo()
            self._RedirectInfo._deserialize(params.get("RedirectInfo"))
        self._OutOrderId = params.get("OutOrderId")
        self._PayInfo = params.get("PayInfo")
        self._PayInfoType = params.get("PayInfoType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankOrderRechargeResult(AbstractModel):
    """云企付-充值下单返回响应

    """

    def __init__(self):
        r"""
        :param _ChannelOrderId: 云企付平台订单号。
        :type ChannelOrderId: str
        :param _ThirdPayOrderId: 第三方支付平台返回支付订单号。
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdPayOrderId: str
        :param _RedirectInfo: 跳转参数
注意：此字段可能返回 null，表示取不到有效值。
        :type RedirectInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRechargeRedirectInfo`
        :param _OutOrderId: 外部商户订单号，只能是数字、大小写字母，且在同一个接入平台下唯一。
        :type OutOrderId: str
        :param _DealStatus: 充值状态
注意：此字段可能返回 null，表示取不到有效值。
        :type DealStatus: str
        :param _DealMessage: 充值返回描述
注意：此字段可能返回 null，表示取不到有效值。
        :type DealMessage: str
        :param _PcWebUrl: PC web端跳转链接
注意：此字段可能返回 null，表示取不到有效值。
        :type PcWebUrl: str
        """
        self._ChannelOrderId = None
        self._ThirdPayOrderId = None
        self._RedirectInfo = None
        self._OutOrderId = None
        self._DealStatus = None
        self._DealMessage = None
        self._PcWebUrl = None

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ThirdPayOrderId(self):
        return self._ThirdPayOrderId

    @ThirdPayOrderId.setter
    def ThirdPayOrderId(self, ThirdPayOrderId):
        self._ThirdPayOrderId = ThirdPayOrderId

    @property
    def RedirectInfo(self):
        return self._RedirectInfo

    @RedirectInfo.setter
    def RedirectInfo(self, RedirectInfo):
        self._RedirectInfo = RedirectInfo

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def DealStatus(self):
        return self._DealStatus

    @DealStatus.setter
    def DealStatus(self, DealStatus):
        self._DealStatus = DealStatus

    @property
    def DealMessage(self):
        return self._DealMessage

    @DealMessage.setter
    def DealMessage(self, DealMessage):
        self._DealMessage = DealMessage

    @property
    def PcWebUrl(self):
        return self._PcWebUrl

    @PcWebUrl.setter
    def PcWebUrl(self, PcWebUrl):
        self._PcWebUrl = PcWebUrl


    def _deserialize(self, params):
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ThirdPayOrderId = params.get("ThirdPayOrderId")
        if params.get("RedirectInfo") is not None:
            self._RedirectInfo = OpenBankRechargeRedirectInfo()
            self._RedirectInfo._deserialize(params.get("RedirectInfo"))
        self._OutOrderId = params.get("OutOrderId")
        self._DealStatus = params.get("DealStatus")
        self._DealMessage = params.get("DealMessage")
        self._PcWebUrl = params.get("PcWebUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankPaymentOrderRequest(AbstractModel):
    """CreateOpenBankPaymentOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
__HUIFU__: 汇付斗拱
        :type ChannelName: str
        :param _PaymentMethod: 付款方式。详见附录-云企付枚举类说明-PaymentMethod。
__EBANK_PAYMENT__:B2B EBank付款
__OPENBANK_PAYMENT__:B2C  openbank付款
__SAFT_ISV__:支付宝安心发
__TRANS_TO_CHANGE__: 微信支付转账到零钱v2
__TRANS_TO_CHANGE_V3__: 微信支付转账到零钱v3
__ONLINEBANK__: 汇付网银
        :type PaymentMethod: str
        :param _PaymentMode: 付款模式。默认直接支付，如
__DIRECT__:直接支付
__FREEZE__:担保支付
        :type PaymentMode: str
        :param _OutOrderId: 外部订单号,只能是数字、大小写字母，且在同一个接入平台下唯一，限定长度40位。
        :type OutOrderId: str
        :param _TotalAmount: 付款金额，单位分。
        :type TotalAmount: int
        :param _Currency: 固定值CNY。
        :type Currency: str
        :param _PayerInfo: 付款方信息。
        :type PayerInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankPayerInfo`
        :param _PayeeInfo: 收款方信息。
        :type PayeeInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankPayeeInfo`
        :param _NotifyUrl: 通知地址，如www.test.com。
        :type NotifyUrl: str
        :param _ExpireTime: 订单过期时间，yyyy-MM-dd HH:mm:ss格式。
        :type ExpireTime: str
        :param _FrontUrl: 前端成功回调URL。条件可选。
        :type FrontUrl: str
        :param _RefreshUrl: 前端刷新 URL。条件可选。
        :type RefreshUrl: str
        :param _SceneInfo: 设备信息，条件可选。
        :type SceneInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankSceneInfo`
        :param _GoodsInfo: 商品信息，条件可选。
        :type GoodsInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankGoodsInfo`
        :param _Attachment: 附加信息，查询时原样返回。
        :type Attachment: str
        :param _ProfitShareFlag: 若不上传，即使用默认值无需分润
__NO_NEED_SHARE__：无需分润；
__SHARE_BY_INFO__：分润时指定金额，此时如果分润信息 ProfitShareInfo为空，只冻结，不分账给其他商户；需要调用解冻接口。
__SHARE_BY_API__：后续调用分润接口决定分润金额
        :type ProfitShareFlag: str
        :param _ProfitShareInfoList: 分润信息，配合ProfitShareFlag使用。
        :type ProfitShareInfoList: list of OpenBankProfitShareInfo
        :param _SettlementRulesInfo: 商企付-担保支付（PaymentMode为 FREEZE ）时需设置该参数
        :type SettlementRulesInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankSettlementRulesInfo`
        :param _ExternalPaymentData: 底层支付渠道特殊字段，若无特殊说明时，可以为空
        :type ExternalPaymentData: str
        :param _Remark: 备注信息。
        :type Remark: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
缺省默认为生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._PaymentMode = None
        self._OutOrderId = None
        self._TotalAmount = None
        self._Currency = None
        self._PayerInfo = None
        self._PayeeInfo = None
        self._NotifyUrl = None
        self._ExpireTime = None
        self._FrontUrl = None
        self._RefreshUrl = None
        self._SceneInfo = None
        self._GoodsInfo = None
        self._Attachment = None
        self._ProfitShareFlag = None
        self._ProfitShareInfoList = None
        self._SettlementRulesInfo = None
        self._ExternalPaymentData = None
        self._Remark = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def PaymentMode(self):
        return self._PaymentMode

    @PaymentMode.setter
    def PaymentMode(self, PaymentMode):
        self._PaymentMode = PaymentMode

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def PayerInfo(self):
        return self._PayerInfo

    @PayerInfo.setter
    def PayerInfo(self, PayerInfo):
        self._PayerInfo = PayerInfo

    @property
    def PayeeInfo(self):
        return self._PayeeInfo

    @PayeeInfo.setter
    def PayeeInfo(self, PayeeInfo):
        self._PayeeInfo = PayeeInfo

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def FrontUrl(self):
        return self._FrontUrl

    @FrontUrl.setter
    def FrontUrl(self, FrontUrl):
        self._FrontUrl = FrontUrl

    @property
    def RefreshUrl(self):
        return self._RefreshUrl

    @RefreshUrl.setter
    def RefreshUrl(self, RefreshUrl):
        self._RefreshUrl = RefreshUrl

    @property
    def SceneInfo(self):
        return self._SceneInfo

    @SceneInfo.setter
    def SceneInfo(self, SceneInfo):
        self._SceneInfo = SceneInfo

    @property
    def GoodsInfo(self):
        return self._GoodsInfo

    @GoodsInfo.setter
    def GoodsInfo(self, GoodsInfo):
        self._GoodsInfo = GoodsInfo

    @property
    def Attachment(self):
        return self._Attachment

    @Attachment.setter
    def Attachment(self, Attachment):
        self._Attachment = Attachment

    @property
    def ProfitShareFlag(self):
        return self._ProfitShareFlag

    @ProfitShareFlag.setter
    def ProfitShareFlag(self, ProfitShareFlag):
        self._ProfitShareFlag = ProfitShareFlag

    @property
    def ProfitShareInfoList(self):
        return self._ProfitShareInfoList

    @ProfitShareInfoList.setter
    def ProfitShareInfoList(self, ProfitShareInfoList):
        self._ProfitShareInfoList = ProfitShareInfoList

    @property
    def SettlementRulesInfo(self):
        return self._SettlementRulesInfo

    @SettlementRulesInfo.setter
    def SettlementRulesInfo(self, SettlementRulesInfo):
        self._SettlementRulesInfo = SettlementRulesInfo

    @property
    def ExternalPaymentData(self):
        return self._ExternalPaymentData

    @ExternalPaymentData.setter
    def ExternalPaymentData(self, ExternalPaymentData):
        self._ExternalPaymentData = ExternalPaymentData

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._PaymentMode = params.get("PaymentMode")
        self._OutOrderId = params.get("OutOrderId")
        self._TotalAmount = params.get("TotalAmount")
        self._Currency = params.get("Currency")
        if params.get("PayerInfo") is not None:
            self._PayerInfo = OpenBankPayerInfo()
            self._PayerInfo._deserialize(params.get("PayerInfo"))
        if params.get("PayeeInfo") is not None:
            self._PayeeInfo = OpenBankPayeeInfo()
            self._PayeeInfo._deserialize(params.get("PayeeInfo"))
        self._NotifyUrl = params.get("NotifyUrl")
        self._ExpireTime = params.get("ExpireTime")
        self._FrontUrl = params.get("FrontUrl")
        self._RefreshUrl = params.get("RefreshUrl")
        if params.get("SceneInfo") is not None:
            self._SceneInfo = OpenBankSceneInfo()
            self._SceneInfo._deserialize(params.get("SceneInfo"))
        if params.get("GoodsInfo") is not None:
            self._GoodsInfo = OpenBankGoodsInfo()
            self._GoodsInfo._deserialize(params.get("GoodsInfo"))
        self._Attachment = params.get("Attachment")
        self._ProfitShareFlag = params.get("ProfitShareFlag")
        if params.get("ProfitShareInfoList") is not None:
            self._ProfitShareInfoList = []
            for item in params.get("ProfitShareInfoList"):
                obj = OpenBankProfitShareInfo()
                obj._deserialize(item)
                self._ProfitShareInfoList.append(obj)
        if params.get("SettlementRulesInfo") is not None:
            self._SettlementRulesInfo = OpenBankSettlementRulesInfo()
            self._SettlementRulesInfo._deserialize(params.get("SettlementRulesInfo"))
        self._ExternalPaymentData = params.get("ExternalPaymentData")
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankPaymentOrderResponse(AbstractModel):
    """CreateOpenBankPaymentOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 统一下单响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankOrderPaymentResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankOrderPaymentResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankRechargeOrderRequest(AbstractModel):
    """CreateOpenBankRechargeOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _OutOrderId: 外部订单号,只能是数字、大小写字母，且在同一个接入平台下唯一，限定长度40位。
        :type OutOrderId: str
        :param _TotalAmount: 付款金额，单位分。
        :type TotalAmount: int
        :param _Currency: 固定值CNY。
        :type Currency: str
        :param _ExpireTime: 订单过期时间，yyyy-MM-dd HH:mm:ss格式。
        :type ExpireTime: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type PaymentMethod: str
        :param _PayeeInfo: 收款方信息。
        :type PayeeInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRechargePayeeInfo`
        :param _ChannelSubMerchantId: 渠道子商户号
        :type ChannelSubMerchantId: str
        :param _NotifyUrl: 通知地址，如www.test.com。
        :type NotifyUrl: str
        :param _Remark: 备注信息。限制200个字符。
        :type Remark: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutOrderId = None
        self._TotalAmount = None
        self._Currency = None
        self._ExpireTime = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._PayeeInfo = None
        self._ChannelSubMerchantId = None
        self._NotifyUrl = None
        self._Remark = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def PayeeInfo(self):
        return self._PayeeInfo

    @PayeeInfo.setter
    def PayeeInfo(self, PayeeInfo):
        self._PayeeInfo = PayeeInfo

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutOrderId = params.get("OutOrderId")
        self._TotalAmount = params.get("TotalAmount")
        self._Currency = params.get("Currency")
        self._ExpireTime = params.get("ExpireTime")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        if params.get("PayeeInfo") is not None:
            self._PayeeInfo = OpenBankRechargePayeeInfo()
            self._PayeeInfo._deserialize(params.get("PayeeInfo"))
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankRechargeOrderResponse(AbstractModel):
    """CreateOpenBankRechargeOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 充值响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankOrderRechargeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankOrderRechargeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankSubMerchantRateConfigureRequest(AbstractModel):
    """CreateOpenBankSubMerchantRateConfigure请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelRegistrationNo: 渠道进件序列号。
填写子商户进件返回的渠道进件编号。
        :type ChannelRegistrationNo: str
        :param _OutProductFeeNo: 外部产品费率申请序列号。
        :type OutProductFeeNo: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
        :type ChannelName: str
        :param _PayType: 支付类型。
SWIPE:刷卡
SCAN:扫码
WAP:WAP
PUBLIC:公众号支付
SDK:SDK
MINI_PROGRAM:小程序
注意：HELIPAY渠道传SDK。
        :type PayType: str
        :param _PayChannel: 支付渠道。
ALIPAY：支付宝 
WXPAY：微信支付 
UNIONPAY：银联
        :type PayChannel: str
        :param _FeeMode: 计费模式。
SINGLE：按单笔金额计费
RATIO：按单笔费率计费 
RANGE：按分段区间计费
        :type FeeMode: str
        :param _FeeValue: 费用值，单位（0.01%或分）。
        :type FeeValue: int
        :param _PaymentMethod: 支付方式。详见附录-云企付枚举类说明-PaymentMethod。
HELIPAY渠道不需要传入。
        :type PaymentMethod: str
        :param _MinFee: 最低收费金额，单位（分）。
        :type MinFee: int
        :param _MaxFee: 最高收费金额，单位（分）。
        :type MaxFee: int
        :param _NotifyUrl: 通知地址。
        :type NotifyUrl: str
        :param _FeeRangeList: 分段计费区间列表。
        :type FeeRangeList: list of FeeRangInfo
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelRegistrationNo = None
        self._OutProductFeeNo = None
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PayType = None
        self._PayChannel = None
        self._FeeMode = None
        self._FeeValue = None
        self._PaymentMethod = None
        self._MinFee = None
        self._MaxFee = None
        self._NotifyUrl = None
        self._FeeRangeList = None
        self._Environment = None

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def OutProductFeeNo(self):
        return self._OutProductFeeNo

    @OutProductFeeNo.setter
    def OutProductFeeNo(self, OutProductFeeNo):
        self._OutProductFeeNo = OutProductFeeNo

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PayType(self):
        return self._PayType

    @PayType.setter
    def PayType(self, PayType):
        self._PayType = PayType

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def FeeMode(self):
        return self._FeeMode

    @FeeMode.setter
    def FeeMode(self, FeeMode):
        self._FeeMode = FeeMode

    @property
    def FeeValue(self):
        return self._FeeValue

    @FeeValue.setter
    def FeeValue(self, FeeValue):
        self._FeeValue = FeeValue

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def MinFee(self):
        return self._MinFee

    @MinFee.setter
    def MinFee(self, MinFee):
        self._MinFee = MinFee

    @property
    def MaxFee(self):
        return self._MaxFee

    @MaxFee.setter
    def MaxFee(self, MaxFee):
        self._MaxFee = MaxFee

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def FeeRangeList(self):
        return self._FeeRangeList

    @FeeRangeList.setter
    def FeeRangeList(self, FeeRangeList):
        self._FeeRangeList = FeeRangeList

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._OutProductFeeNo = params.get("OutProductFeeNo")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PayType = params.get("PayType")
        self._PayChannel = params.get("PayChannel")
        self._FeeMode = params.get("FeeMode")
        self._FeeValue = params.get("FeeValue")
        self._PaymentMethod = params.get("PaymentMethod")
        self._MinFee = params.get("MinFee")
        self._MaxFee = params.get("MaxFee")
        self._NotifyUrl = params.get("NotifyUrl")
        if params.get("FeeRangeList") is not None:
            self._FeeRangeList = []
            for item in params.get("FeeRangeList"):
                obj = FeeRangInfo()
                obj._deserialize(item)
                self._FeeRangeList.append(obj)
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankSubMerchantRateConfigureResponse(AbstractModel):
    """CreateOpenBankSubMerchantRateConfigure返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankSubMerchantRateConfigureResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankSubMerchantRateConfigureResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankSubMerchantRateConfigureResult(AbstractModel):
    """聚合支付子商户费率配置结果

    """

    def __init__(self):
        r"""
        :param _DealStatus: 处理状态 
SUCCESS: 开通成功 
FAILED: 开通失败
PROCESSING: 开通中 
注意：若返回开通中，需要再次调用费率配置结果查询接口，查询结果。
        :type DealStatus: str
        :param _DealMessage: 处理描述
注意：此字段可能返回 null，表示取不到有效值。
        :type DealMessage: str
        :param _ChannelProductFeeNo: 渠道产品费率序列号
        :type ChannelProductFeeNo: str
        """
        self._DealStatus = None
        self._DealMessage = None
        self._ChannelProductFeeNo = None

    @property
    def DealStatus(self):
        return self._DealStatus

    @DealStatus.setter
    def DealStatus(self, DealStatus):
        self._DealStatus = DealStatus

    @property
    def DealMessage(self):
        return self._DealMessage

    @DealMessage.setter
    def DealMessage(self, DealMessage):
        self._DealMessage = DealMessage

    @property
    def ChannelProductFeeNo(self):
        return self._ChannelProductFeeNo

    @ChannelProductFeeNo.setter
    def ChannelProductFeeNo(self, ChannelProductFeeNo):
        self._ChannelProductFeeNo = ChannelProductFeeNo


    def _deserialize(self, params):
        self._DealStatus = params.get("DealStatus")
        self._DealMessage = params.get("DealMessage")
        self._ChannelProductFeeNo = params.get("ChannelProductFeeNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankUnifiedOrderPaymentResult(AbstractModel):
    """云企付-支付下单返回响应

    """

    def __init__(self):
        r"""
        :param _ChannelOrderId: 云企付平台订单号。
        :type ChannelOrderId: str
        :param _ThirdPayOrderId: 第三方支付平台返回支付订单号。
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdPayOrderId: str
        :param _RedirectInfo: 跳转参数渠道为TENPAY，付款方式为EBANK_PAYMENT时必选。
注意：此字段可能返回 null，表示取不到有效值。
        :type RedirectInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankOrderRedirectInfo`
        :param _OutOrderId: 外部商户订单号，只能是数字、大小写字母，且在同一个接入平台下唯一。
        :type OutOrderId: str
        :param _PayInfo: 渠道扩展支付信息
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInfo: str
        :param _PayInfoType: 渠道扩展支付信息类型
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInfoType: str
        """
        self._ChannelOrderId = None
        self._ThirdPayOrderId = None
        self._RedirectInfo = None
        self._OutOrderId = None
        self._PayInfo = None
        self._PayInfoType = None

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ThirdPayOrderId(self):
        return self._ThirdPayOrderId

    @ThirdPayOrderId.setter
    def ThirdPayOrderId(self, ThirdPayOrderId):
        self._ThirdPayOrderId = ThirdPayOrderId

    @property
    def RedirectInfo(self):
        return self._RedirectInfo

    @RedirectInfo.setter
    def RedirectInfo(self, RedirectInfo):
        self._RedirectInfo = RedirectInfo

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def PayInfo(self):
        return self._PayInfo

    @PayInfo.setter
    def PayInfo(self, PayInfo):
        self._PayInfo = PayInfo

    @property
    def PayInfoType(self):
        return self._PayInfoType

    @PayInfoType.setter
    def PayInfoType(self, PayInfoType):
        self._PayInfoType = PayInfoType


    def _deserialize(self, params):
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ThirdPayOrderId = params.get("ThirdPayOrderId")
        if params.get("RedirectInfo") is not None:
            self._RedirectInfo = OpenBankOrderRedirectInfo()
            self._RedirectInfo._deserialize(params.get("RedirectInfo"))
        self._OutOrderId = params.get("OutOrderId")
        self._PayInfo = params.get("PayInfo")
        self._PayInfoType = params.get("PayInfoType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankUnifiedOrderRequest(AbstractModel):
    """CreateOpenBankUnifiedOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。
        :type ChannelName: str
        :param _PayType: 支付产品类型。
被扫（扫码）：SWIPE, 主扫（刷卡）：SCAN, 
H5：WAP, 公众号：PUBLIC, 
APP-SDK：SDK, 小程序：MINI_PROGRAM, 
快捷支付：QUICK, 网银支付：ONLINE_BANK。
        :type PayType: str
        :param _OutOrderId: 外部商户订单号。
只能是数字、大小写字母，且在同一个接入平台下唯一。
        :type OutOrderId: str
        :param _TotalAmount: 交易金额，单位分。
        :type TotalAmount: int
        :param _Currency: 币种。固定：CNY。
        :type Currency: str
        :param _ChannelSubMerchantId: 渠道子商户号。
        :type ChannelSubMerchantId: str
        :param _PayChannel: 实际支付渠道。没有则无需填写。如
支付宝 ALIPAY
微信支付 WXPAY
银联 UNIONPAY
一般在间连模式下使用。
        :type PayChannel: str
        :param _SceneInfo: 设备信息。
        :type SceneInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankSceneInfo`
        :param _ProfitShareInfoList: 分账信息列表。
        :type ProfitShareInfoList: list of OpenBankProfitShareInfo
        :param _OrderSubject: 订单标题。
        :type OrderSubject: str
        :param _GoodsDetail: 商品信息。
        :type GoodsDetail: str
        :param _ExpireTime: 超时时间。
        :type ExpireTime: str
        :param _NotifyUrl: 支付成功回调地址。
        :type NotifyUrl: str
        :param _FrontUrl: 支付成功前端跳转URL。
        :type FrontUrl: str
        :param _Attachment: 订单附加信息，查询或者回调的时候原样返回。
        :type Attachment: str
        :param _ExternalPaymentData: 第三方渠道扩展字段。见附录-复杂类型。
未作特殊说明，则无需传入。
        :type ExternalPaymentData: str
        :param _Remark: 备注。
        :type Remark: str
        :param _StoreInfo: 门店信息。
        :type StoreInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankStoreInfo`
        :param _PayLimitInfo: 支付限制。
        :type PayLimitInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankPayLimitInfo`
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PayType = None
        self._OutOrderId = None
        self._TotalAmount = None
        self._Currency = None
        self._ChannelSubMerchantId = None
        self._PayChannel = None
        self._SceneInfo = None
        self._ProfitShareInfoList = None
        self._OrderSubject = None
        self._GoodsDetail = None
        self._ExpireTime = None
        self._NotifyUrl = None
        self._FrontUrl = None
        self._Attachment = None
        self._ExternalPaymentData = None
        self._Remark = None
        self._StoreInfo = None
        self._PayLimitInfo = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PayType(self):
        return self._PayType

    @PayType.setter
    def PayType(self, PayType):
        self._PayType = PayType

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def SceneInfo(self):
        return self._SceneInfo

    @SceneInfo.setter
    def SceneInfo(self, SceneInfo):
        self._SceneInfo = SceneInfo

    @property
    def ProfitShareInfoList(self):
        return self._ProfitShareInfoList

    @ProfitShareInfoList.setter
    def ProfitShareInfoList(self, ProfitShareInfoList):
        self._ProfitShareInfoList = ProfitShareInfoList

    @property
    def OrderSubject(self):
        return self._OrderSubject

    @OrderSubject.setter
    def OrderSubject(self, OrderSubject):
        self._OrderSubject = OrderSubject

    @property
    def GoodsDetail(self):
        return self._GoodsDetail

    @GoodsDetail.setter
    def GoodsDetail(self, GoodsDetail):
        self._GoodsDetail = GoodsDetail

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def FrontUrl(self):
        return self._FrontUrl

    @FrontUrl.setter
    def FrontUrl(self, FrontUrl):
        self._FrontUrl = FrontUrl

    @property
    def Attachment(self):
        return self._Attachment

    @Attachment.setter
    def Attachment(self, Attachment):
        self._Attachment = Attachment

    @property
    def ExternalPaymentData(self):
        return self._ExternalPaymentData

    @ExternalPaymentData.setter
    def ExternalPaymentData(self, ExternalPaymentData):
        self._ExternalPaymentData = ExternalPaymentData

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def StoreInfo(self):
        return self._StoreInfo

    @StoreInfo.setter
    def StoreInfo(self, StoreInfo):
        self._StoreInfo = StoreInfo

    @property
    def PayLimitInfo(self):
        return self._PayLimitInfo

    @PayLimitInfo.setter
    def PayLimitInfo(self, PayLimitInfo):
        self._PayLimitInfo = PayLimitInfo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PayType = params.get("PayType")
        self._OutOrderId = params.get("OutOrderId")
        self._TotalAmount = params.get("TotalAmount")
        self._Currency = params.get("Currency")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._PayChannel = params.get("PayChannel")
        if params.get("SceneInfo") is not None:
            self._SceneInfo = OpenBankSceneInfo()
            self._SceneInfo._deserialize(params.get("SceneInfo"))
        if params.get("ProfitShareInfoList") is not None:
            self._ProfitShareInfoList = []
            for item in params.get("ProfitShareInfoList"):
                obj = OpenBankProfitShareInfo()
                obj._deserialize(item)
                self._ProfitShareInfoList.append(obj)
        self._OrderSubject = params.get("OrderSubject")
        self._GoodsDetail = params.get("GoodsDetail")
        self._ExpireTime = params.get("ExpireTime")
        self._NotifyUrl = params.get("NotifyUrl")
        self._FrontUrl = params.get("FrontUrl")
        self._Attachment = params.get("Attachment")
        self._ExternalPaymentData = params.get("ExternalPaymentData")
        self._Remark = params.get("Remark")
        if params.get("StoreInfo") is not None:
            self._StoreInfo = OpenBankStoreInfo()
            self._StoreInfo._deserialize(params.get("StoreInfo"))
        if params.get("PayLimitInfo") is not None:
            self._PayLimitInfo = OpenBankPayLimitInfo()
            self._PayLimitInfo._deserialize(params.get("PayLimitInfo"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankUnifiedOrderResponse(AbstractModel):
    """CreateOpenBankUnifiedOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 统一下单响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankOrderPaymentResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankOrderPaymentResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankVerificationOrderRequest(AbstractModel):
    """CreateOpenBankVerificationOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _OutVerificationId: 外部核销申请订单号
        :type OutVerificationId: str
        :param _VerificationAmount: 核销金额，单位分
        :type VerificationAmount: int
        :param _OutOrderId: 外部支付订单号。调用创建支付订单时，下单支付时的外部订单号。与ChannelOrderId不能同时为空。
        :type OutOrderId: str
        :param _ChannelOrderId: 云企付渠道订单号。调用创建支付订单时，下单支付时的云企付渠道订单号。与OutOrderId不能同时为空。
        :type ChannelOrderId: str
        :param _NotifyUrl: 核销成功回调地址。若不上送，则不回调通知。
        :type NotifyUrl: str
        :param _Remark: 备注。
        :type Remark: str
        :param _ExternalVerificationData: 第三方支付渠道需要额外上送字段。详情见附录描述。
        :type ExternalVerificationData: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutVerificationId = None
        self._VerificationAmount = None
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._NotifyUrl = None
        self._Remark = None
        self._ExternalVerificationData = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutVerificationId(self):
        return self._OutVerificationId

    @OutVerificationId.setter
    def OutVerificationId(self, OutVerificationId):
        self._OutVerificationId = OutVerificationId

    @property
    def VerificationAmount(self):
        return self._VerificationAmount

    @VerificationAmount.setter
    def VerificationAmount(self, VerificationAmount):
        self._VerificationAmount = VerificationAmount

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ExternalVerificationData(self):
        return self._ExternalVerificationData

    @ExternalVerificationData.setter
    def ExternalVerificationData(self, ExternalVerificationData):
        self._ExternalVerificationData = ExternalVerificationData

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutVerificationId = params.get("OutVerificationId")
        self._VerificationAmount = params.get("VerificationAmount")
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Remark = params.get("Remark")
        self._ExternalVerificationData = params.get("ExternalVerificationData")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOpenBankVerificationOrderResponse(AbstractModel):
    """CreateOpenBankVerificationOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 核销申请响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateOpenBankVerificationResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateOpenBankVerificationResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateOpenBankVerificationResult(AbstractModel):
    """云企付-核销确认收货申请响应结果

    """

    def __init__(self):
        r"""
        :param _ChannelVerificationId: 云企付渠道核销订单号
        :type ChannelVerificationId: str
        :param _ThirdVerificationId: 第三方支付渠道核销订单号
        :type ThirdVerificationId: str
        :param _VerificationStatus: 核销状态
INIT("INIT","初始化"),
SUCCESS("SUCCESS","核销成功"),
FAILED("FAILED","核销失败"),
PROCESSING("PROCESSING","核销中");
        :type VerificationStatus: str
        :param _VerificationAmount: 核销金额，单位分
        :type VerificationAmount: int
        :param _ThirdVerificationReturnInfo: 渠道附加返回信息，一般情况可以不关注
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdVerificationReturnInfo: str
        """
        self._ChannelVerificationId = None
        self._ThirdVerificationId = None
        self._VerificationStatus = None
        self._VerificationAmount = None
        self._ThirdVerificationReturnInfo = None

    @property
    def ChannelVerificationId(self):
        return self._ChannelVerificationId

    @ChannelVerificationId.setter
    def ChannelVerificationId(self, ChannelVerificationId):
        self._ChannelVerificationId = ChannelVerificationId

    @property
    def ThirdVerificationId(self):
        return self._ThirdVerificationId

    @ThirdVerificationId.setter
    def ThirdVerificationId(self, ThirdVerificationId):
        self._ThirdVerificationId = ThirdVerificationId

    @property
    def VerificationStatus(self):
        return self._VerificationStatus

    @VerificationStatus.setter
    def VerificationStatus(self, VerificationStatus):
        self._VerificationStatus = VerificationStatus

    @property
    def VerificationAmount(self):
        return self._VerificationAmount

    @VerificationAmount.setter
    def VerificationAmount(self, VerificationAmount):
        self._VerificationAmount = VerificationAmount

    @property
    def ThirdVerificationReturnInfo(self):
        return self._ThirdVerificationReturnInfo

    @ThirdVerificationReturnInfo.setter
    def ThirdVerificationReturnInfo(self, ThirdVerificationReturnInfo):
        self._ThirdVerificationReturnInfo = ThirdVerificationReturnInfo


    def _deserialize(self, params):
        self._ChannelVerificationId = params.get("ChannelVerificationId")
        self._ThirdVerificationId = params.get("ThirdVerificationId")
        self._VerificationStatus = params.get("VerificationStatus")
        self._VerificationAmount = params.get("VerificationAmount")
        self._ThirdVerificationReturnInfo = params.get("ThirdVerificationReturnInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOrderRequest(AbstractModel):
    """CreateOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelCode: 渠道编号。ZSB2B：招商银行B2B。
        :type ChannelCode: str
        :param _MerchantAppId: 进件成功后返给商户方的 AppId。
        :type MerchantAppId: str
        :param _Amount: 交易金额。单位：元
        :type Amount: str
        :param _TraceNo: 商户流水号。商户唯一订单号由字母或数字组成。
        :type TraceNo: str
        :param _NotifyUrl: 通知地址。商户接收交易结果的通知地址。
        :type NotifyUrl: str
        :param _ReturnUrl: 返回地址。支付成功后，页面将跳 转返回到商户的该地址。
        :type ReturnUrl: str
        """
        self._ChannelCode = None
        self._MerchantAppId = None
        self._Amount = None
        self._TraceNo = None
        self._NotifyUrl = None
        self._ReturnUrl = None

    @property
    def ChannelCode(self):
        return self._ChannelCode

    @ChannelCode.setter
    def ChannelCode(self, ChannelCode):
        self._ChannelCode = ChannelCode

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def TraceNo(self):
        return self._TraceNo

    @TraceNo.setter
    def TraceNo(self, TraceNo):
        self._TraceNo = TraceNo

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def ReturnUrl(self):
        return self._ReturnUrl

    @ReturnUrl.setter
    def ReturnUrl(self, ReturnUrl):
        self._ReturnUrl = ReturnUrl


    def _deserialize(self, params):
        self._ChannelCode = params.get("ChannelCode")
        self._MerchantAppId = params.get("MerchantAppId")
        self._Amount = params.get("Amount")
        self._TraceNo = params.get("TraceNo")
        self._NotifyUrl = params.get("NotifyUrl")
        self._ReturnUrl = params.get("ReturnUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateOrderResponse(AbstractModel):
    """CreateOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的AppId。
        :type MerchantAppId: str
        :param _TraceNo: 商户流水号，商户唯一订单号由字母或数字组成。
        :type TraceNo: str
        :param _OrderNo: 平台流水号，若下单成功则返回。
        :type OrderNo: str
        :param _PayUrl: 支付页面跳转地址，若下单成功则返回。
        :type PayUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._TraceNo = None
        self._OrderNo = None
        self._PayUrl = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def TraceNo(self):
        return self._TraceNo

    @TraceNo.setter
    def TraceNo(self, TraceNo):
        self._TraceNo = TraceNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def PayUrl(self):
        return self._PayUrl

    @PayUrl.setter
    def PayUrl(self, PayUrl):
        self._PayUrl = PayUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._TraceNo = params.get("TraceNo")
        self._OrderNo = params.get("OrderNo")
        self._PayUrl = params.get("PayUrl")
        self._RequestId = params.get("RequestId")


class CreatePayMerchantRequest(AbstractModel):
    """CreatePayMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PlatformCode: 平台编号
        :type PlatformCode: str
        :param _ChannelMerchantNo: 渠道方收款商户编号，由渠道方(银行)提 供。
        :type ChannelMerchantNo: str
        :param _ChannelCheckFlag: 是否需要向渠道进行 商户信息验证 1:验证
0:不验证
        :type ChannelCheckFlag: str
        :param _MerchantName: 收款商户名称
        :type MerchantName: str
        :param _BusinessPayFlag: 是否开通 B2B 支付 1:开通 0:不开通 缺省:1
        :type BusinessPayFlag: str
        """
        self._PlatformCode = None
        self._ChannelMerchantNo = None
        self._ChannelCheckFlag = None
        self._MerchantName = None
        self._BusinessPayFlag = None

    @property
    def PlatformCode(self):
        return self._PlatformCode

    @PlatformCode.setter
    def PlatformCode(self, PlatformCode):
        self._PlatformCode = PlatformCode

    @property
    def ChannelMerchantNo(self):
        return self._ChannelMerchantNo

    @ChannelMerchantNo.setter
    def ChannelMerchantNo(self, ChannelMerchantNo):
        self._ChannelMerchantNo = ChannelMerchantNo

    @property
    def ChannelCheckFlag(self):
        return self._ChannelCheckFlag

    @ChannelCheckFlag.setter
    def ChannelCheckFlag(self, ChannelCheckFlag):
        self._ChannelCheckFlag = ChannelCheckFlag

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def BusinessPayFlag(self):
        return self._BusinessPayFlag

    @BusinessPayFlag.setter
    def BusinessPayFlag(self, BusinessPayFlag):
        self._BusinessPayFlag = BusinessPayFlag


    def _deserialize(self, params):
        self._PlatformCode = params.get("PlatformCode")
        self._ChannelMerchantNo = params.get("ChannelMerchantNo")
        self._ChannelCheckFlag = params.get("ChannelCheckFlag")
        self._MerchantName = params.get("MerchantName")
        self._BusinessPayFlag = params.get("BusinessPayFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreatePayMerchantResponse(AbstractModel):
    """CreatePayMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的 AppId。该 AppId 为后续各项 交易的商户标识。
        :type MerchantAppId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._RequestId = params.get("RequestId")


class CreatePayRollPreOrderRequest(AbstractModel):
    """CreatePayRollPreOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _ProjectName: 该劳务活动的项目名称
        :type ProjectName: str
        :param _CompanyName: 该工人所属的用工企业
        :type CompanyName: str
        :param _WechatAppId: 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID（与服务商主体一致）
当输入服务商Appid时，会校验其与服务商商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatAppId: str
        :param _WechatSubAppId: 特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID（与特约商户主体一致）
当输入特约商户Appid时，会校验其与特约商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatSubAppId: str
        """
        self._OpenId = None
        self._SubMerchantId = None
        self._AuthNumber = None
        self._ProjectName = None
        self._CompanyName = None
        self._WechatAppId = None
        self._WechatSubAppId = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def CompanyName(self):
        return self._CompanyName

    @CompanyName.setter
    def CompanyName(self, CompanyName):
        self._CompanyName = CompanyName

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatSubAppId(self):
        return self._WechatSubAppId

    @WechatSubAppId.setter
    def WechatSubAppId(self, WechatSubAppId):
        self._WechatSubAppId = WechatSubAppId


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._AuthNumber = params.get("AuthNumber")
        self._ProjectName = params.get("ProjectName")
        self._CompanyName = params.get("CompanyName")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatSubAppId = params.get("WechatSubAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreatePayRollPreOrderResponse(AbstractModel):
    """CreatePayRollPreOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _ExpireTime: Token有效时间，单位秒
        :type ExpireTime: int
        :param _MerchantId: 微信服务商商户的商户号，由微信支付生成并下发
        :type MerchantId: str
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _Token: Token值
        :type Token: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AuthNumber = None
        self._ExpireTime = None
        self._MerchantId = None
        self._OpenId = None
        self._SubMerchantId = None
        self._Token = None
        self._RequestId = None

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AuthNumber = params.get("AuthNumber")
        self._ExpireTime = params.get("ExpireTime")
        self._MerchantId = params.get("MerchantId")
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._Token = params.get("Token")
        self._RequestId = params.get("RequestId")


class CreatePayRollPreOrderWithAuthRequest(AbstractModel):
    """CreatePayRollPreOrderWithAuth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _ProjectName: 该劳务活动的项目名称
        :type ProjectName: str
        :param _CompanyName: 该工人所属的用工企业
        :type CompanyName: str
        :param _UserName: 用户实名信息，该字段需进行加密处理，加密方法详见[敏感信息加密说明](https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay4_3.shtml)
        :type UserName: str
        :param _IdNo: 用户证件号，该字段需进行加密处理，加密方法详见[敏感信息加密说明](https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay4_3.shtml)
        :type IdNo: str
        :param _EmploymentType: 微工卡服务仅支持用于与商户有用工关系的用户，需明确用工类型；参考值：
LONG_TERM_EMPLOYMENT：长期用工，
SHORT_TERM_EMPLOYMENT： 短期用工，
COOPERATION_EMPLOYMENT：合作关系
        :type EmploymentType: str
        :param _WechatAppId: 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID（与服务商主体一致）
当输入服务商Appid时，会校验其与服务商商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatAppId: str
        :param _WechatSubAppId: 特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID（与特约商户主体一致）
当输入特约商户Appid时，会校验其与特约商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatSubAppId: str
        """
        self._OpenId = None
        self._SubMerchantId = None
        self._AuthNumber = None
        self._ProjectName = None
        self._CompanyName = None
        self._UserName = None
        self._IdNo = None
        self._EmploymentType = None
        self._WechatAppId = None
        self._WechatSubAppId = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def CompanyName(self):
        return self._CompanyName

    @CompanyName.setter
    def CompanyName(self, CompanyName):
        self._CompanyName = CompanyName

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def EmploymentType(self):
        return self._EmploymentType

    @EmploymentType.setter
    def EmploymentType(self, EmploymentType):
        self._EmploymentType = EmploymentType

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatSubAppId(self):
        return self._WechatSubAppId

    @WechatSubAppId.setter
    def WechatSubAppId(self, WechatSubAppId):
        self._WechatSubAppId = WechatSubAppId


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._AuthNumber = params.get("AuthNumber")
        self._ProjectName = params.get("ProjectName")
        self._CompanyName = params.get("CompanyName")
        self._UserName = params.get("UserName")
        self._IdNo = params.get("IdNo")
        self._EmploymentType = params.get("EmploymentType")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatSubAppId = params.get("WechatSubAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreatePayRollPreOrderWithAuthResponse(AbstractModel):
    """CreatePayRollPreOrderWithAuth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _ExpireTime: Token有效时间，单位秒
        :type ExpireTime: int
        :param _MerchantId: 微信服务商商户的商户号，由微信支付生成并下发
        :type MerchantId: str
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _Token: Token值
        :type Token: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AuthNumber = None
        self._ExpireTime = None
        self._MerchantId = None
        self._OpenId = None
        self._SubMerchantId = None
        self._Token = None
        self._RequestId = None

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AuthNumber = params.get("AuthNumber")
        self._ExpireTime = params.get("ExpireTime")
        self._MerchantId = params.get("MerchantId")
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._Token = params.get("Token")
        self._RequestId = params.get("RequestId")


class CreatePayRollTokenRequest(AbstractModel):
    """CreatePayRollToken请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _UserName: 用户实名信息，该字段需进行加密处理，加密方法详见[敏感信息加密说明](https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay4_3.shtml)
        :type UserName: str
        :param _IdNo: 用户证件号，该字段需进行加密处理，加密方法详见[敏感信息加密说明](https://pay.weixin.qq.com/wiki/doc/apiv3_partner/wechatpay/wechatpay4_3.shtml)
        :type IdNo: str
        :param _EmploymentType: 微工卡服务仅支持用于与商户有用工关系的用户，需明确用工类型；参考值：
LONG_TERM_EMPLOYMENT：长期用工，
SHORT_TERM_EMPLOYMENT： 短期用工，
COOPERATION_EMPLOYMENT：合作关系
        :type EmploymentType: str
        :param _WechatAppId: 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID（与服务商主体一致）
当输入服务商Appid时，会校验其与服务商商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatAppId: str
        :param _WechatSubAppId: 特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID（与特约商户主体一致）
当输入特约商户Appid时，会校验其与特约商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatSubAppId: str
        """
        self._OpenId = None
        self._SubMerchantId = None
        self._UserName = None
        self._IdNo = None
        self._EmploymentType = None
        self._WechatAppId = None
        self._WechatSubAppId = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def EmploymentType(self):
        return self._EmploymentType

    @EmploymentType.setter
    def EmploymentType(self, EmploymentType):
        self._EmploymentType = EmploymentType

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatSubAppId(self):
        return self._WechatSubAppId

    @WechatSubAppId.setter
    def WechatSubAppId(self, WechatSubAppId):
        self._WechatSubAppId = WechatSubAppId


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._UserName = params.get("UserName")
        self._IdNo = params.get("IdNo")
        self._EmploymentType = params.get("EmploymentType")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatSubAppId = params.get("WechatSubAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreatePayRollTokenResponse(AbstractModel):
    """CreatePayRollToken返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ExpireTime: Token有效时间，单位秒
        :type ExpireTime: int
        :param _MerchantId: 微信服务商商户的商户号，由微信支付生成并下发
        :type MerchantId: str
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _Token: Token值
        :type Token: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ExpireTime = None
        self._MerchantId = None
        self._OpenId = None
        self._SubMerchantId = None
        self._Token = None
        self._RequestId = None

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ExpireTime = params.get("ExpireTime")
        self._MerchantId = params.get("MerchantId")
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._Token = params.get("Token")
        self._RequestId = params.get("RequestId")


class CreateRedInvoiceItem(AbstractModel):
    """创建红票明细

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单号
        :type OrderId: str
        :param _CallbackUrl: 发票结果回传地址
        :type CallbackUrl: str
        :param _OrderSn: 业务开票号
        :type OrderSn: str
        :param _RedSerialNo: 红字信息表编码
        :type RedSerialNo: str
        :param _StoreNo: 门店编号
        :type StoreNo: str
        """
        self._OrderId = None
        self._CallbackUrl = None
        self._OrderSn = None
        self._RedSerialNo = None
        self._StoreNo = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def OrderSn(self):
        return self._OrderSn

    @OrderSn.setter
    def OrderSn(self, OrderSn):
        self._OrderSn = OrderSn

    @property
    def RedSerialNo(self):
        return self._RedSerialNo

    @RedSerialNo.setter
    def RedSerialNo(self, RedSerialNo):
        self._RedSerialNo = RedSerialNo

    @property
    def StoreNo(self):
        return self._StoreNo

    @StoreNo.setter
    def StoreNo(self, StoreNo):
        self._StoreNo = StoreNo


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._CallbackUrl = params.get("CallbackUrl")
        self._OrderSn = params.get("OrderSn")
        self._RedSerialNo = params.get("RedSerialNo")
        self._StoreNo = params.get("StoreNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceRequest(AbstractModel):
    """CreateRedInvoice请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
0 : 高灯
1 : 票易通
        :type InvoicePlatformId: int
        :param _Invoices: 红冲明细
        :type Invoices: list of CreateRedInvoiceItem
        :param _Profile: 接入环境。沙箱环境填 sandbox。
        :type Profile: str
        :param _InvoiceChannel: 开票渠道。0：线上渠道，1：线下渠道。不填默认为线上渠道
        :type InvoiceChannel: int
        """
        self._InvoicePlatformId = None
        self._Invoices = None
        self._Profile = None
        self._InvoiceChannel = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def Invoices(self):
        return self._Invoices

    @Invoices.setter
    def Invoices(self, Invoices):
        self._Invoices = Invoices

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        if params.get("Invoices") is not None:
            self._Invoices = []
            for item in params.get("Invoices"):
                obj = CreateRedInvoiceItem()
                obj._deserialize(item)
                self._Invoices.append(obj)
        self._Profile = params.get("Profile")
        self._InvoiceChannel = params.get("InvoiceChannel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceResponse(AbstractModel):
    """CreateRedInvoice返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 红冲结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateRedInvoiceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = CreateRedInvoiceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateRedInvoiceResult(AbstractModel):
    """红票结果

    """

    def __init__(self):
        r"""
        :param _Message: 错误消息
        :type Message: str
        :param _Code: 错误码
        :type Code: int
        :param _Data: 红票数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Data: list of CreateRedInvoiceResultData
        """
        self._Message = None
        self._Code = None
        self._Data = None

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Message = params.get("Message")
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = CreateRedInvoiceResultData()
                obj._deserialize(item)
                self._Data.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceResultData(AbstractModel):
    """红票结果数据

    """

    def __init__(self):
        r"""
        :param _Code: 红冲状态码
        :type Code: int
        :param _Message: 红冲状态消息
        :type Message: str
        :param _InvoiceId: 发票ID
        :type InvoiceId: str
        :param _OrderSn: 业务开票号
        :type OrderSn: str
        """
        self._Code = None
        self._Message = None
        self._InvoiceId = None
        self._OrderSn = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def InvoiceId(self):
        return self._InvoiceId

    @InvoiceId.setter
    def InvoiceId(self, InvoiceId):
        self._InvoiceId = InvoiceId

    @property
    def OrderSn(self):
        return self._OrderSn

    @OrderSn.setter
    def OrderSn(self, OrderSn):
        self._OrderSn = OrderSn


    def _deserialize(self, params):
        self._Code = params.get("Code")
        self._Message = params.get("Message")
        self._InvoiceId = params.get("InvoiceId")
        self._OrderSn = params.get("OrderSn")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceResultV2(AbstractModel):
    """红票结果V2

    """

    def __init__(self):
        r"""
        :param _InvoiceId: 红票ID
        :type InvoiceId: str
        """
        self._InvoiceId = None

    @property
    def InvoiceId(self):
        return self._InvoiceId

    @InvoiceId.setter
    def InvoiceId(self, InvoiceId):
        self._InvoiceId = InvoiceId


    def _deserialize(self, params):
        self._InvoiceId = params.get("InvoiceId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceV2Request(AbstractModel):
    """CreateRedInvoiceV2请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
0 : 高灯
1 : 票易通
        :type InvoicePlatformId: int
        :param _OrderId: 订单号
        :type OrderId: str
        :param _Profile: 接入环境。沙箱环境填 sandbox。
        :type Profile: str
        :param _InvoiceChannel: 开票渠道。0：线上渠道，1：线下渠道。不填默认为线上渠道
        :type InvoiceChannel: int
        """
        self._InvoicePlatformId = None
        self._OrderId = None
        self._Profile = None
        self._InvoiceChannel = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._OrderId = params.get("OrderId")
        self._Profile = params.get("Profile")
        self._InvoiceChannel = params.get("InvoiceChannel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateRedInvoiceV2Response(AbstractModel):
    """CreateRedInvoiceV2返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 红冲结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateRedInvoiceResultV2`
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._ErrCode = None
        self._ErrMessage = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = CreateRedInvoiceResultV2()
            self._Result._deserialize(params.get("Result"))
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._RequestId = params.get("RequestId")


class CreateSinglePaymentData(AbstractModel):
    """CreateSinglePayment接口返回响应

    """

    def __init__(self):
        r"""
        :param _TradeSerialNo: 平台交易流水号，唯一
        :type TradeSerialNo: str
        :param _AgentId: 代理商ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentId: str
        :param _AgentName: 代理商名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        """
        self._TradeSerialNo = None
        self._AgentId = None
        self._AgentName = None

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName


    def _deserialize(self, params):
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSinglePaymentRequest(AbstractModel):
    """CreateSinglePayment请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransferType: 转账类型
1 微信企业付款 
2 支付宝转账 
3 平安银企直连代发转账
        :type TransferType: int
        :param _OrderId: 订单流水号
        :type OrderId: str
        :param _TransferAmount: 转账金额
        :type TransferAmount: int
        :param _AnchorId: 主播ID（与主播业务ID不能同时为空，两者都填取主播ID）
        :type AnchorId: str
        :param _ReqReserved: 请求预留字段，原样透传返回
        :type ReqReserved: str
        :param _Remark: 业务备注
        :type Remark: str
        :param _AnchorName: 主播名称。如果该字段填入，则会对AnchorName和AnchorId/Uid进行校验。
        :type AnchorName: str
        :param _Uid: 主播业务ID（与主播ID不能同时为空，两者都填取主播ID）
        :type Uid: str
        :param _NotifyUrl: 转账结果回调通知URL。若不填，则不进行回调。
        :type NotifyUrl: str
        """
        self._TransferType = None
        self._OrderId = None
        self._TransferAmount = None
        self._AnchorId = None
        self._ReqReserved = None
        self._Remark = None
        self._AnchorName = None
        self._Uid = None
        self._NotifyUrl = None

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def ReqReserved(self):
        return self._ReqReserved

    @ReqReserved.setter
    def ReqReserved(self, ReqReserved):
        self._ReqReserved = ReqReserved

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def Uid(self):
        return self._Uid

    @Uid.setter
    def Uid(self, Uid):
        self._Uid = Uid

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl


    def _deserialize(self, params):
        self._TransferType = params.get("TransferType")
        self._OrderId = params.get("OrderId")
        self._TransferAmount = params.get("TransferAmount")
        self._AnchorId = params.get("AnchorId")
        self._ReqReserved = params.get("ReqReserved")
        self._Remark = params.get("Remark")
        self._AnchorName = params.get("AnchorName")
        self._Uid = params.get("Uid")
        self._NotifyUrl = params.get("NotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateSinglePaymentResponse(AbstractModel):
    """CreateSinglePayment返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 响应消息
        :type ErrMessage: str
        :param _Result: 返回数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.CreateSinglePaymentData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = CreateSinglePaymentData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class CreateTransferBatchRequest(AbstractModel):
    """CreateTransferBatch请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号。
示例值：129284394
        :type MerchantId: str
        :param _TransferDetails: 转账明细列表。
发起批量转账的明细列表，最多三千笔
        :type TransferDetails: list of TransferDetailRequest
        :param _MerchantAppId: 直连商户appId。
即商户号绑定的appid。
示例值：wxf636efh567hg4356
        :type MerchantAppId: str
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _BatchName: 批次名称。
批量转账的名称。
示例值：2019年1月深圳分部报销单
        :type BatchName: str
        :param _BatchRemark: 转账说明。
UTF8编码，最多32个字符。
示例值：2019年深圳分部报销单
        :type BatchRemark: str
        :param _TotalAmount: 转账总金额。
转账金额，单位为分。
示例值：4000000
        :type TotalAmount: int
        :param _TotalNum: 转账总笔数。
一个转账批次最多允许发起三千笔转账。
示例值：200
        :type TotalNum: int
        :param _Profile: 环境名。
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type Profile: str
        """
        self._MerchantId = None
        self._TransferDetails = None
        self._MerchantAppId = None
        self._MerchantBatchNo = None
        self._BatchName = None
        self._BatchRemark = None
        self._TotalAmount = None
        self._TotalNum = None
        self._Profile = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransferDetails(self):
        return self._TransferDetails

    @TransferDetails.setter
    def TransferDetails(self, TransferDetails):
        self._TransferDetails = TransferDetails

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def BatchName(self):
        return self._BatchName

    @BatchName.setter
    def BatchName(self, BatchName):
        self._BatchName = BatchName

    @property
    def BatchRemark(self):
        return self._BatchRemark

    @BatchRemark.setter
    def BatchRemark(self, BatchRemark):
        self._BatchRemark = BatchRemark

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        if params.get("TransferDetails") is not None:
            self._TransferDetails = []
            for item in params.get("TransferDetails"):
                obj = TransferDetailRequest()
                obj._deserialize(item)
                self._TransferDetails.append(obj)
        self._MerchantAppId = params.get("MerchantAppId")
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._BatchName = params.get("BatchName")
        self._BatchRemark = params.get("BatchRemark")
        self._TotalAmount = params.get("TotalAmount")
        self._TotalNum = params.get("TotalNum")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class CreateTransferBatchResponse(AbstractModel):
    """CreateTransferBatch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _BatchId: 微信批次单号。
微信商家转账系统返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type BatchId: str
        :param _CreateTime: 批次受理成功时返回，遵循rfc3339标准格式。格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss.sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。
示例值：2015-05-20T13:29:35.120+08:00
        :type CreateTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantBatchNo = None
        self._BatchId = None
        self._CreateTime = None
        self._RequestId = None

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._BatchId = params.get("BatchId")
        self._CreateTime = params.get("CreateTime")
        self._RequestId = params.get("RequestId")


class DeduceQuotaRequest(AbstractModel):
    """DeduceQuota请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播ID
        :type AnchorId: str
        :param _Amount: 提现金额，单位为"分"
        :type Amount: int
        :param _OrderId: 外部业务订单号
        :type OrderId: str
        """
        self._AnchorId = None
        self._Amount = None
        self._OrderId = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._Amount = params.get("Amount")
        self._OrderId = params.get("OrderId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeduceQuotaResponse(AbstractModel):
    """DeduceQuota返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMsg: 响应消息
        :type ErrMsg: str
        :param _Result: 返回响应
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AssignmentData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        if params.get("Result") is not None:
            self._Result = AssignmentData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DeleteAgentTaxPaymentInfoRequest(AbstractModel):
    """DeleteAgentTaxPaymentInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BatchNum: 批次号
        :type BatchNum: int
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._BatchNum = None
        self._Profile = None

    @property
    def BatchNum(self):
        return self._BatchNum

    @BatchNum.setter
    def BatchNum(self, BatchNum):
        self._BatchNum = BatchNum

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._BatchNum = params.get("BatchNum")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAgentTaxPaymentInfoResponse(AbstractModel):
    """DeleteAgentTaxPaymentInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DeleteAgentTaxPaymentInfosRequest(AbstractModel):
    """DeleteAgentTaxPaymentInfos请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BatchNum: 批次号
        :type BatchNum: int
        """
        self._BatchNum = None

    @property
    def BatchNum(self):
        return self._BatchNum

    @BatchNum.setter
    def BatchNum(self, BatchNum):
        self._BatchNum = BatchNum


    def _deserialize(self, params):
        self._BatchNum = params.get("BatchNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DeleteAgentTaxPaymentInfosResponse(AbstractModel):
    """DeleteAgentTaxPaymentInfos返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class DescribeChargeDetailRequest(AbstractModel):
    """DescribeChargeDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _MerchantCode: 商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OrderId: 原始交易订单号或者流水号
        :type OrderId: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _AcquiringChannelType: 收单渠道类型
        :type AcquiringChannelType: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _TransSequenceNumber: 交易流水号
        :type TransSequenceNumber: str
        :param _MidasEnvironment: Midas环境参数
        :type MidasEnvironment: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OrderId = None
        self._BankAccountNumber = None
        self._AcquiringChannelType = None
        self._PlatformShortNumber = None
        self._MidasSecretId = None
        self._MidasAppId = None
        self._MidasSignature = None
        self._TransSequenceNumber = None
        self._MidasEnvironment = None
        self._ReservedMessage = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def AcquiringChannelType(self):
        return self._AcquiringChannelType

    @AcquiringChannelType.setter
    def AcquiringChannelType(self, AcquiringChannelType):
        self._AcquiringChannelType = AcquiringChannelType

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OrderId = params.get("OrderId")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._AcquiringChannelType = params.get("AcquiringChannelType")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSignature = params.get("MidasSignature")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._ReservedMessage = params.get("ReservedMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeChargeDetailResponse(AbstractModel):
    """DescribeChargeDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OrderStatus: 交易状态 （0：成功，1：失败，2：异常,3:冲正，5：待处理）
        :type OrderStatus: str
        :param _OrderAmount: 交易金额
        :type OrderAmount: str
        :param _CommissionAmount: 佣金费
        :type CommissionAmount: str
        :param _PayMode: 支付方式  0-冻结支付 1-普通支付
        :type PayMode: str
        :param _OrderDate: 交易日期
        :type OrderDate: str
        :param _OrderTime: 交易时间
        :type OrderTime: str
        :param _OrderActualInSubAccountName: 订单实际转入见证子账户的名称
        :type OrderActualInSubAccountName: str
        :param _OrderActualInSubAccountNumber: 订单实际转入见证子账户的帐号
        :type OrderActualInSubAccountNumber: str
        :param _OrderInSubAccountName: 订单实际转入见证子账户的帐号
        :type OrderInSubAccountName: str
        :param _OrderInSubAccountNumber: 订单转入见证子账户的帐号
        :type OrderInSubAccountNumber: str
        :param _FrontSequenceNumber: 银行流水号
        :type FrontSequenceNumber: str
        :param _FailMessage: 当充值失败时，返回交易失败原因
        :type FailMessage: str
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OrderStatus = None
        self._OrderAmount = None
        self._CommissionAmount = None
        self._PayMode = None
        self._OrderDate = None
        self._OrderTime = None
        self._OrderActualInSubAccountName = None
        self._OrderActualInSubAccountNumber = None
        self._OrderInSubAccountName = None
        self._OrderInSubAccountNumber = None
        self._FrontSequenceNumber = None
        self._FailMessage = None
        self._RequestType = None
        self._RequestId = None

    @property
    def OrderStatus(self):
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus

    @property
    def OrderAmount(self):
        return self._OrderAmount

    @OrderAmount.setter
    def OrderAmount(self, OrderAmount):
        self._OrderAmount = OrderAmount

    @property
    def CommissionAmount(self):
        return self._CommissionAmount

    @CommissionAmount.setter
    def CommissionAmount(self, CommissionAmount):
        self._CommissionAmount = CommissionAmount

    @property
    def PayMode(self):
        return self._PayMode

    @PayMode.setter
    def PayMode(self, PayMode):
        self._PayMode = PayMode

    @property
    def OrderDate(self):
        return self._OrderDate

    @OrderDate.setter
    def OrderDate(self, OrderDate):
        self._OrderDate = OrderDate

    @property
    def OrderTime(self):
        return self._OrderTime

    @OrderTime.setter
    def OrderTime(self, OrderTime):
        self._OrderTime = OrderTime

    @property
    def OrderActualInSubAccountName(self):
        return self._OrderActualInSubAccountName

    @OrderActualInSubAccountName.setter
    def OrderActualInSubAccountName(self, OrderActualInSubAccountName):
        self._OrderActualInSubAccountName = OrderActualInSubAccountName

    @property
    def OrderActualInSubAccountNumber(self):
        return self._OrderActualInSubAccountNumber

    @OrderActualInSubAccountNumber.setter
    def OrderActualInSubAccountNumber(self, OrderActualInSubAccountNumber):
        self._OrderActualInSubAccountNumber = OrderActualInSubAccountNumber

    @property
    def OrderInSubAccountName(self):
        return self._OrderInSubAccountName

    @OrderInSubAccountName.setter
    def OrderInSubAccountName(self, OrderInSubAccountName):
        self._OrderInSubAccountName = OrderInSubAccountName

    @property
    def OrderInSubAccountNumber(self):
        return self._OrderInSubAccountNumber

    @OrderInSubAccountNumber.setter
    def OrderInSubAccountNumber(self, OrderInSubAccountNumber):
        self._OrderInSubAccountNumber = OrderInSubAccountNumber

    @property
    def FrontSequenceNumber(self):
        return self._FrontSequenceNumber

    @FrontSequenceNumber.setter
    def FrontSequenceNumber(self, FrontSequenceNumber):
        self._FrontSequenceNumber = FrontSequenceNumber

    @property
    def FailMessage(self):
        return self._FailMessage

    @FailMessage.setter
    def FailMessage(self, FailMessage):
        self._FailMessage = FailMessage

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._OrderStatus = params.get("OrderStatus")
        self._OrderAmount = params.get("OrderAmount")
        self._CommissionAmount = params.get("CommissionAmount")
        self._PayMode = params.get("PayMode")
        self._OrderDate = params.get("OrderDate")
        self._OrderTime = params.get("OrderTime")
        self._OrderActualInSubAccountName = params.get("OrderActualInSubAccountName")
        self._OrderActualInSubAccountNumber = params.get("OrderActualInSubAccountNumber")
        self._OrderInSubAccountName = params.get("OrderInSubAccountName")
        self._OrderInSubAccountNumber = params.get("OrderInSubAccountNumber")
        self._FrontSequenceNumber = params.get("FrontSequenceNumber")
        self._FailMessage = params.get("FailMessage")
        self._RequestType = params.get("RequestType")
        self._RequestId = params.get("RequestId")


class DescribeOrderStatusRequest(AbstractModel):
    """DescribeOrderStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型，此接口固定填：QueryOrderStatusReq
        :type RequestType: str
        :param _MerchantCode: 商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OrderId: 交易订单号或流水号，提现，充值或会员交易请求时的CnsmrSeqNo值
        :type OrderId: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _QueryType: 功能标志 0：会员间交易 1：提现 2：充值
        :type QueryType: str
        :param _TransSequenceNumber: 银行流水号
        :type TransSequenceNumber: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasEnvironment: Midas环境参数
        :type MidasEnvironment: str
        :param _ReservedMessage: 保留字段
        :type ReservedMessage: str
        :param _BankSubAccountNumber: 子账户账号 暂未使用
        :type BankSubAccountNumber: str
        :param _TransDate: 交易日期 暂未使用
        :type TransDate: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OrderId = None
        self._BankAccountNumber = None
        self._PlatformShortNumber = None
        self._QueryType = None
        self._TransSequenceNumber = None
        self._MidasSignature = None
        self._MidasAppId = None
        self._MidasSecretId = None
        self._MidasEnvironment = None
        self._ReservedMessage = None
        self._BankSubAccountNumber = None
        self._TransDate = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def QueryType(self):
        return self._QueryType

    @QueryType.setter
    def QueryType(self, QueryType):
        self._QueryType = QueryType

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def BankSubAccountNumber(self):
        return self._BankSubAccountNumber

    @BankSubAccountNumber.setter
    def BankSubAccountNumber(self, BankSubAccountNumber):
        self._BankSubAccountNumber = BankSubAccountNumber

    @property
    def TransDate(self):
        return self._TransDate

    @TransDate.setter
    def TransDate(self, TransDate):
        self._TransDate = TransDate


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OrderId = params.get("OrderId")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._QueryType = params.get("QueryType")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._MidasSignature = params.get("MidasSignature")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._ReservedMessage = params.get("ReservedMessage")
        self._BankSubAccountNumber = params.get("BankSubAccountNumber")
        self._TransDate = params.get("TransDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DescribeOrderStatusResponse(AbstractModel):
    """DescribeOrderStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OrderStatus: 交易状态 （0：成功，1：失败，2：待确认, 5：待处理，6：处理中）
        :type OrderStatus: str
        :param _OrderAmount: 交易金额
        :type OrderAmount: str
        :param _OrderDate: 交易日期
        :type OrderDate: str
        :param _OrderTime: 交易时间
        :type OrderTime: str
        :param _OutSubAccountNumber: 转出子账户账号
        :type OutSubAccountNumber: str
        :param _InSubAccountNumber: 转入子账户账号
        :type InSubAccountNumber: str
        :param _BookingFlag: 记账标志（1：登记挂账 2：支付 3：提现 4：清分5:下单预支付 6：确认并付款 7：退款 8：支付到平台 N:其他）
        :type BookingFlag: str
        :param _FailMessage: 当交易失败时，返回交易失败原因
        :type FailMessage: str
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OrderStatus = None
        self._OrderAmount = None
        self._OrderDate = None
        self._OrderTime = None
        self._OutSubAccountNumber = None
        self._InSubAccountNumber = None
        self._BookingFlag = None
        self._FailMessage = None
        self._RequestType = None
        self._RequestId = None

    @property
    def OrderStatus(self):
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus

    @property
    def OrderAmount(self):
        return self._OrderAmount

    @OrderAmount.setter
    def OrderAmount(self, OrderAmount):
        self._OrderAmount = OrderAmount

    @property
    def OrderDate(self):
        return self._OrderDate

    @OrderDate.setter
    def OrderDate(self, OrderDate):
        self._OrderDate = OrderDate

    @property
    def OrderTime(self):
        return self._OrderTime

    @OrderTime.setter
    def OrderTime(self, OrderTime):
        self._OrderTime = OrderTime

    @property
    def OutSubAccountNumber(self):
        return self._OutSubAccountNumber

    @OutSubAccountNumber.setter
    def OutSubAccountNumber(self, OutSubAccountNumber):
        self._OutSubAccountNumber = OutSubAccountNumber

    @property
    def InSubAccountNumber(self):
        return self._InSubAccountNumber

    @InSubAccountNumber.setter
    def InSubAccountNumber(self, InSubAccountNumber):
        self._InSubAccountNumber = InSubAccountNumber

    @property
    def BookingFlag(self):
        return self._BookingFlag

    @BookingFlag.setter
    def BookingFlag(self, BookingFlag):
        self._BookingFlag = BookingFlag

    @property
    def FailMessage(self):
        return self._FailMessage

    @FailMessage.setter
    def FailMessage(self, FailMessage):
        self._FailMessage = FailMessage

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._OrderStatus = params.get("OrderStatus")
        self._OrderAmount = params.get("OrderAmount")
        self._OrderDate = params.get("OrderDate")
        self._OrderTime = params.get("OrderTime")
        self._OutSubAccountNumber = params.get("OutSubAccountNumber")
        self._InSubAccountNumber = params.get("InSubAccountNumber")
        self._BookingFlag = params.get("BookingFlag")
        self._FailMessage = params.get("FailMessage")
        self._RequestType = params.get("RequestType")
        self._RequestId = params.get("RequestId")


class DistributeAccreditQueryRequest(AbstractModel):
    """DistributeAccreditQuery请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeAccreditQueryResponse(AbstractModel):
    """DistributeAccreditQuery返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询授权申请结果响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeAccreditQueryResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeAccreditQueryResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeAccreditQueryResult(AbstractModel):
    """分账授权申请查询响应对象

    """

    def __init__(self):
        r"""
        :param _Status: 状态（0-未开通，1-已开通，2-商户主动关闭，3-待审核，4-冻结，5-注销，6-待签合同）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _ContractUrl: 合同h5地址
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractUrl: str
        :param _Remark: 说明
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._Status = None
        self._ContractUrl = None
        self._Remark = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def ContractUrl(self):
        return self._ContractUrl

    @ContractUrl.setter
    def ContractUrl(self, ContractUrl):
        self._ContractUrl = ContractUrl

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._ContractUrl = params.get("ContractUrl")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeAccreditResult(AbstractModel):
    """授权申请响应对象

    """

    def __init__(self):
        r"""
        :param _ContractUrl: 合同h5地址
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractUrl: str
        :param _MerchantNo: 系统商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        """
        self._ContractUrl = None
        self._MerchantNo = None

    @property
    def ContractUrl(self):
        return self._ContractUrl

    @ContractUrl.setter
    def ContractUrl(self, ContractUrl):
        self._ContractUrl = ContractUrl

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo


    def _deserialize(self, params):
        self._ContractUrl = params.get("ContractUrl")
        self._MerchantNo = params.get("MerchantNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeAccreditTlinxRequest(AbstractModel):
    """DistributeAccreditTlinx请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _AuthType: 验证方式，传1手机验证(验证码时效60S)传2结算卡验证(时效6小时)，多种方式用逗号隔开
        :type AuthType: str
        :param _Percent: 分账比例（500=5%）不传默认百分之10
        :type Percent: str
        :param _FullName: 营业执照商户全称
        :type FullName: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._AuthType = None
        self._Percent = None
        self._FullName = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def AuthType(self):
        return self._AuthType

    @AuthType.setter
    def AuthType(self, AuthType):
        self._AuthType = AuthType

    @property
    def Percent(self):
        return self._Percent

    @Percent.setter
    def Percent(self, Percent):
        self._Percent = Percent

    @property
    def FullName(self):
        return self._FullName

    @FullName.setter
    def FullName(self, FullName):
        self._FullName = FullName

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._AuthType = params.get("AuthType")
        self._Percent = params.get("Percent")
        self._FullName = params.get("FullName")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeAccreditTlinxResponse(AbstractModel):
    """DistributeAccreditTlinx返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 授权申请响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeAccreditResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeAccreditResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeAddReceiverRequest(AbstractModel):
    """DistributeAddReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _MerchantNo: 商户编号
        :type MerchantNo: str
        :param _Remark: 备注
        :type Remark: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._MerchantNo = None
        self._Remark = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._MerchantNo = params.get("MerchantNo")
        self._Remark = params.get("Remark")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeAddReceiverResponse(AbstractModel):
    """DistributeAddReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 添加分账接收方响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeReceiverResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeReceiverResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeApplyRequest(AbstractModel):
    """DistributeApply请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _OutDistributeNo: 商户分账单号
        :type OutDistributeNo: str
        :param _Details: 分账明细
        :type Details: list of MultiApplyDetail
        :param _DeveloperNo: 商户交易订单号，和OrderNo二者传其一
        :type DeveloperNo: str
        :param _OrderNo: 平台交易订单号，和DeveloperNo二者传其一
        :type OrderNo: str
        :param _Remark: 说明
        :type Remark: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutDistributeNo = None
        self._Details = None
        self._DeveloperNo = None
        self._OrderNo = None
        self._Remark = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def Details(self):
        return self._Details

    @Details.setter
    def Details(self, Details):
        self._Details = Details

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutDistributeNo = params.get("OutDistributeNo")
        if params.get("Details") is not None:
            self._Details = []
            for item in params.get("Details"):
                obj = MultiApplyDetail()
                obj._deserialize(item)
                self._Details.append(obj)
        self._DeveloperNo = params.get("DeveloperNo")
        self._OrderNo = params.get("OrderNo")
        self._Remark = params.get("Remark")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeApplyResponse(AbstractModel):
    """DistributeApply返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 分账申请响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeMultiApplyResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeMultiApplyResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeCancelRequest(AbstractModel):
    """DistributeCancel请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _OrderNo: 平台交易订单号
        :type OrderNo: str
        :param _OutDistributeNo: 商户分账单号，type为2时，和DistributeNo二者传其一
        :type OutDistributeNo: str
        :param _DistributeNo: 平台分账单号，type为2时，和OutDistributeNo二者传其一
        :type DistributeNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OrderNo = None
        self._OutDistributeNo = None
        self._DistributeNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def DistributeNo(self):
        return self._DistributeNo

    @DistributeNo.setter
    def DistributeNo(self, DistributeNo):
        self._DistributeNo = DistributeNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OrderNo = params.get("OrderNo")
        self._OutDistributeNo = params.get("OutDistributeNo")
        self._DistributeNo = params.get("DistributeNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeCancelResponse(AbstractModel):
    """DistributeCancel返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 分账撤销响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeCancelResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeCancelResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeCancelResult(AbstractModel):
    """分账撤销响应对象

    """

    def __init__(self):
        r"""
        :param _Status: 分账订单状态（0初始1成功2失败3撤销）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _OrderNo: 平台交易订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        :param _OutDistributeNo: 商户分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutDistributeNo: str
        :param _DistributeNo: 平台分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type DistributeNo: str
        """
        self._Status = None
        self._OrderNo = None
        self._OutDistributeNo = None
        self._DistributeNo = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def DistributeNo(self):
        return self._DistributeNo

    @DistributeNo.setter
    def DistributeNo(self, DistributeNo):
        self._DistributeNo = DistributeNo


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._OrderNo = params.get("OrderNo")
        self._OutDistributeNo = params.get("OutDistributeNo")
        self._DistributeNo = params.get("DistributeNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeMultiApplyResult(AbstractModel):
    """分账申请响应对象

    """

    def __init__(self):
        r"""
        :param _Status: 分账状态（0分账初始 1分账成功 2分账失败）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _DistributeNo: 平台分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type DistributeNo: str
        :param _InDate: 入账日期，yyyy-MM-dd格式
注意：此字段可能返回 null，表示取不到有效值。
        :type InDate: str
        :param _Amount: 分账金额
注意：此字段可能返回 null，表示取不到有效值。
        :type Amount: str
        :param _OutDistributeNo: 商户分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutDistributeNo: str
        :param _OrderNo: 平台支付单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        """
        self._Status = None
        self._DistributeNo = None
        self._InDate = None
        self._Amount = None
        self._OutDistributeNo = None
        self._OrderNo = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def DistributeNo(self):
        return self._DistributeNo

    @DistributeNo.setter
    def DistributeNo(self, DistributeNo):
        self._DistributeNo = DistributeNo

    @property
    def InDate(self):
        return self._InDate

    @InDate.setter
    def InDate(self, InDate):
        self._InDate = InDate

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._DistributeNo = params.get("DistributeNo")
        self._InDate = params.get("InDate")
        self._Amount = params.get("Amount")
        self._OutDistributeNo = params.get("OutDistributeNo")
        self._OrderNo = params.get("OrderNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeQueryReceiverRequest(AbstractModel):
    """DistributeQueryReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeQueryReceiverResponse(AbstractModel):
    """DistributeQueryReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询询已添加分账接收方响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeReceiverResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeReceiverResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeQueryRequest(AbstractModel):
    """DistributeQuery请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _Type: 查询类型（1-全部，2-单笔）
        :type Type: str
        :param _OutDistributeNo: 商户分账单号，type为2时，和DistributeNo二者传其一
        :type OutDistributeNo: str
        :param _DistributeNo: 平台分账单号，type为2时，和OutDistributeNo二者传其一
        :type DistributeNo: str
        :param _OrderNo: 平台交易订单号
        :type OrderNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Type = None
        self._OutDistributeNo = None
        self._DistributeNo = None
        self._OrderNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def DistributeNo(self):
        return self._DistributeNo

    @DistributeNo.setter
    def DistributeNo(self, DistributeNo):
        self._DistributeNo = DistributeNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Type = params.get("Type")
        self._OutDistributeNo = params.get("OutDistributeNo")
        self._DistributeNo = params.get("DistributeNo")
        self._OrderNo = params.get("OrderNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeQueryResponse(AbstractModel):
    """DistributeQuery返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 分账结果响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeQueryResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeQueryResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DistributeQueryResult(AbstractModel):
    """分账结果响应对象

    """

    def __init__(self):
        r"""
        :param _Orders: 分账订单列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Orders: list of MultiApplyOrder
        """
        self._Orders = None

    @property
    def Orders(self):
        return self._Orders

    @Orders.setter
    def Orders(self, Orders):
        self._Orders = Orders


    def _deserialize(self, params):
        if params.get("Orders") is not None:
            self._Orders = []
            for item in params.get("Orders"):
                obj = MultiApplyOrder()
                obj._deserialize(item)
                self._Orders.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeReceiverResult(AbstractModel):
    """分账接收方响应对象

    """

    def __init__(self):
        r"""
        :param _MerchantNo: 商户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        """
        self._MerchantNo = None

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo


    def _deserialize(self, params):
        self._MerchantNo = params.get("MerchantNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeRemoveReceiverRequest(AbstractModel):
    """DistributeRemoveReceiver请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _MerchantNo: 商户编号
        :type MerchantNo: str
        :param _Remark: 备注
        :type Remark: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._MerchantNo = None
        self._Remark = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._MerchantNo = params.get("MerchantNo")
        self._Remark = params.get("Remark")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DistributeRemoveReceiverResponse(AbstractModel):
    """DistributeRemoveReceiver返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 解除分账接收方响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DistributeReceiverResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DistributeReceiverResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DownloadBillRequest(AbstractModel):
    """DownloadBill请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StateDate: 请求下载对账单日期
        :type StateDate: str
        :param _MidasAppId: 聚鑫分配的MidasAppId
        :type MidasAppId: str
        :param _MidasSecretId: 聚鑫分配的SecretId
        :type MidasSecretId: str
        :param _MidasSignature: 使用聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._StateDate = None
        self._MidasAppId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._MidasEnvironment = None

    @property
    def StateDate(self):
        return self._StateDate

    @StateDate.setter
    def StateDate(self, StateDate):
        self._StateDate = StateDate

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._StateDate = params.get("StateDate")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadBillResponse(AbstractModel):
    """DownloadBill返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileName: 账单文件名
        :type FileName: str
        :param _FileMD5: 账单文件的MD5值
        :type FileMD5: str
        :param _DownloadUrl: 账单文件的真实下载地址
        :type DownloadUrl: str
        :param _StateType: 账单类型
TRADE，对账单
FUND，资金账单
注意：此字段可能返回 null，表示取不到有效值。
        :type StateType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileName = None
        self._FileMD5 = None
        self._DownloadUrl = None
        self._StateType = None
        self._RequestId = None

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileMD5(self):
        return self._FileMD5

    @FileMD5.setter
    def FileMD5(self, FileMD5):
        self._FileMD5 = FileMD5

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def StateType(self):
        return self._StateType

    @StateType.setter
    def StateType(self, StateType):
        self._StateType = StateType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FileName = params.get("FileName")
        self._FileMD5 = params.get("FileMD5")
        self._DownloadUrl = params.get("DownloadUrl")
        self._StateType = params.get("StateType")
        self._RequestId = params.get("RequestId")


class DownloadFileResult(AbstractModel):
    """上传下载响应对象

    """

    def __init__(self):
        r"""
        :param _Content: 文件内容（base64加密的二进制内容）
注意：此字段可能返回 null，表示取不到有效值。
        :type Content: str
        :param _Storage: 存储区域（0私密区，1公共区），请严格按文件要求，上传到不同的区域
注意：此字段可能返回 null，表示取不到有效值。
        :type Storage: str
        """
        self._Content = None
        self._Storage = None

    @property
    def Content(self):
        return self._Content

    @Content.setter
    def Content(self, Content):
        self._Content = Content

    @property
    def Storage(self):
        return self._Storage

    @Storage.setter
    def Storage(self, Storage):
        self._Storage = Storage


    def _deserialize(self, params):
        self._Content = params.get("Content")
        self._Storage = params.get("Storage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadOrgFileRequest(AbstractModel):
    """DownloadOrgFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Storage: 存储区域（0私密区，1公共区），请严格按文件要求，上传到不同的区域
        :type Storage: str
        :param _FilePath: 文件路径
        :type FilePath: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Storage = None
        self._FilePath = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Storage(self):
        return self._Storage

    @Storage.setter
    def Storage(self, Storage):
        self._Storage = Storage

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Storage = params.get("Storage")
        self._FilePath = params.get("FilePath")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadOrgFileResponse(AbstractModel):
    """DownloadOrgFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 下载机构文件响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.DownloadFileResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = DownloadFileResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class DownloadReconciliationUrlRequest(AbstractModel):
    """DownloadReconciliationUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MainAppId: 平台应用ID
        :type MainAppId: str
        :param _AppCode: 平台代码
        :type AppCode: str
        :param _BillDate: 账单日期，yyyy-MM-dd
        :type BillDate: str
        :param _SubAppId: 商户或者代理商ID
        :type SubAppId: str
        """
        self._MainAppId = None
        self._AppCode = None
        self._BillDate = None
        self._SubAppId = None

    @property
    def MainAppId(self):
        return self._MainAppId

    @MainAppId.setter
    def MainAppId(self, MainAppId):
        self._MainAppId = MainAppId

    @property
    def AppCode(self):
        return self._AppCode

    @AppCode.setter
    def AppCode(self, AppCode):
        self._AppCode = AppCode

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId


    def _deserialize(self, params):
        self._MainAppId = params.get("MainAppId")
        self._AppCode = params.get("AppCode")
        self._BillDate = params.get("BillDate")
        self._SubAppId = params.get("SubAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class DownloadReconciliationUrlResponse(AbstractModel):
    """DownloadReconciliationUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 下载地址
        :type DownloadUrl: str
        :param _HashType: hash类型
注意：此字段可能返回 null，表示取不到有效值。
        :type HashType: str
        :param _HashValue: hash值
        :type HashValue: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._DownloadUrl = None
        self._HashType = None
        self._HashValue = None
        self._RequestId = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def HashType(self):
        return self._HashType

    @HashType.setter
    def HashType(self, HashType):
        self._HashType = HashType

    @property
    def HashValue(self):
        return self._HashValue

    @HashValue.setter
    def HashValue(self, HashValue):
        self._HashValue = HashValue

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._HashType = params.get("HashType")
        self._HashValue = params.get("HashValue")
        self._RequestId = params.get("RequestId")


class ExecuteMemberTransactionRequest(AbstractModel):
    """ExecuteMemberTransaction请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型此接口固定填：MemberTransactionReq
        :type RequestType: str
        :param _MerchantCode: 银行注册商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OutTransNetMemberCode: 转出交易网会员代码
        :type OutTransNetMemberCode: str
        :param _OutSubAccountName: 转出见证子账户的户名
        :type OutSubAccountName: str
        :param _InSubAccountName: 转入见证子账户的户名
        :type InSubAccountName: str
        :param _OutSubAccountNumber: 转出子账户账号
        :type OutSubAccountNumber: str
        :param _InSubAccountNumber: 转入子账户账号
        :type InSubAccountNumber: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _CurrencyUnit: 货币单位 单位，1：元，2：角，3：分
        :type CurrencyUnit: str
        :param _CurrencyType: 币种
        :type CurrencyType: str
        :param _CurrencyAmount: 交易金额
        :type CurrencyAmount: str
        :param _OrderId: 订单号
        :type OrderId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _TransSequenceNumber: 交易流水号 
生成方式：用户短号+日期（6位）+ 随机编号（10位）例如：F088722005120904930798
短号：F08872  日期： 200512   随机编号：0904930798
        :type TransSequenceNumber: str
        :param _InTransNetMemberCode: 转入交易网会员代码
        :type InTransNetMemberCode: str
        :param _MidasEnvironment: Midas环境标识 release 现网环境 sandbox 沙箱环境
development 开发环境
        :type MidasEnvironment: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _TransType: 1：下单预支付 
2：确认并付款
3：退款
6：直接支付T+1
9：直接支付T+0
        :type TransType: str
        :param _TransFee: 交易手续费
        :type TransFee: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OutTransNetMemberCode = None
        self._OutSubAccountName = None
        self._InSubAccountName = None
        self._OutSubAccountNumber = None
        self._InSubAccountNumber = None
        self._BankAccountNumber = None
        self._CurrencyUnit = None
        self._CurrencyType = None
        self._CurrencyAmount = None
        self._OrderId = None
        self._MidasAppId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._TransSequenceNumber = None
        self._InTransNetMemberCode = None
        self._MidasEnvironment = None
        self._PlatformShortNumber = None
        self._TransType = None
        self._TransFee = None
        self._ReservedMessage = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OutTransNetMemberCode(self):
        return self._OutTransNetMemberCode

    @OutTransNetMemberCode.setter
    def OutTransNetMemberCode(self, OutTransNetMemberCode):
        self._OutTransNetMemberCode = OutTransNetMemberCode

    @property
    def OutSubAccountName(self):
        return self._OutSubAccountName

    @OutSubAccountName.setter
    def OutSubAccountName(self, OutSubAccountName):
        self._OutSubAccountName = OutSubAccountName

    @property
    def InSubAccountName(self):
        return self._InSubAccountName

    @InSubAccountName.setter
    def InSubAccountName(self, InSubAccountName):
        self._InSubAccountName = InSubAccountName

    @property
    def OutSubAccountNumber(self):
        return self._OutSubAccountNumber

    @OutSubAccountNumber.setter
    def OutSubAccountNumber(self, OutSubAccountNumber):
        self._OutSubAccountNumber = OutSubAccountNumber

    @property
    def InSubAccountNumber(self):
        return self._InSubAccountNumber

    @InSubAccountNumber.setter
    def InSubAccountNumber(self, InSubAccountNumber):
        self._InSubAccountNumber = InSubAccountNumber

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def CurrencyUnit(self):
        return self._CurrencyUnit

    @CurrencyUnit.setter
    def CurrencyUnit(self, CurrencyUnit):
        self._CurrencyUnit = CurrencyUnit

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def CurrencyAmount(self):
        return self._CurrencyAmount

    @CurrencyAmount.setter
    def CurrencyAmount(self, CurrencyAmount):
        self._CurrencyAmount = CurrencyAmount

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def InTransNetMemberCode(self):
        return self._InTransNetMemberCode

    @InTransNetMemberCode.setter
    def InTransNetMemberCode(self, InTransNetMemberCode):
        self._InTransNetMemberCode = InTransNetMemberCode

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def TransType(self):
        return self._TransType

    @TransType.setter
    def TransType(self, TransType):
        self._TransType = TransType

    @property
    def TransFee(self):
        return self._TransFee

    @TransFee.setter
    def TransFee(self, TransFee):
        self._TransFee = TransFee

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OutTransNetMemberCode = params.get("OutTransNetMemberCode")
        self._OutSubAccountName = params.get("OutSubAccountName")
        self._InSubAccountName = params.get("InSubAccountName")
        self._OutSubAccountNumber = params.get("OutSubAccountNumber")
        self._InSubAccountNumber = params.get("InSubAccountNumber")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._CurrencyUnit = params.get("CurrencyUnit")
        self._CurrencyType = params.get("CurrencyType")
        self._CurrencyAmount = params.get("CurrencyAmount")
        self._OrderId = params.get("OrderId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._InTransNetMemberCode = params.get("InTransNetMemberCode")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._TransType = params.get("TransType")
        self._TransFee = params.get("TransFee")
        self._ReservedMessage = params.get("ReservedMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExecuteMemberTransactionResponse(AbstractModel):
    """ExecuteMemberTransaction返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _FrontSequenceNumber: 银行流水号
        :type FrontSequenceNumber: str
        :param _ReservedMessage: 保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMessage: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestType = None
        self._FrontSequenceNumber = None
        self._ReservedMessage = None
        self._RequestId = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def FrontSequenceNumber(self):
        return self._FrontSequenceNumber

    @FrontSequenceNumber.setter
    def FrontSequenceNumber(self, FrontSequenceNumber):
        self._FrontSequenceNumber = FrontSequenceNumber

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._FrontSequenceNumber = params.get("FrontSequenceNumber")
        self._ReservedMessage = params.get("ReservedMessage")
        self._RequestId = params.get("RequestId")


class ExternalContractUserInfo(AbstractModel):
    """第三方渠道用户信息

    """

    def __init__(self):
        r"""
        :param _ExternalUserType: 第三方用户类型，例如:  WX_OPENID, WX_SUB_OPENID,WX_PAYER_OPENID
        :type ExternalUserType: str
        :param _ExternalUserId: 第三方用户ID
        :type ExternalUserId: str
        """
        self._ExternalUserType = None
        self._ExternalUserId = None

    @property
    def ExternalUserType(self):
        return self._ExternalUserType

    @ExternalUserType.setter
    def ExternalUserType(self, ExternalUserType):
        self._ExternalUserType = ExternalUserType

    @property
    def ExternalUserId(self):
        return self._ExternalUserId

    @ExternalUserId.setter
    def ExternalUserId(self, ExternalUserId):
        self._ExternalUserId = ExternalUserId


    def _deserialize(self, params):
        self._ExternalUserType = params.get("ExternalUserType")
        self._ExternalUserId = params.get("ExternalUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ExternalReturnContractInfo(AbstractModel):
    """第三方渠道合约信息

    """

    def __init__(self):
        r"""
        :param _ExternalReturnAgreementId: 第三方渠道协议id
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnAgreementId: str
        :param _ExternalReturnContractEffectiveTimestamp: 第三方渠道协议生效时间戳
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractEffectiveTimestamp: str
        :param _ExternalReturnContractTerminationTimestamp: 第三方渠道协议解约时间戳
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractTerminationTimestamp: str
        :param _ExternalReturnContractStatus: 平台合约状态
协议状态，枚举值：
CONTRACT_STATUS_SIGNED：已签约
CONTRACT_STATUS_TERMINATED：未签约
CONTRACT_STATUS_PENDING：签约进行中
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractStatus: str
        :param _ExternalReturnRequestId: 第三方渠道请求序列号
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnRequestId: str
        :param _ExternalReturnContractSignedTimestamp: 第三方渠道协议签署时间戳
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractSignedTimestamp: str
        :param _ExternalReturnContractExpiredTimestamp: 第三方渠道协议到期时间戳
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractExpiredTimestamp: str
        :param _ExternalReturnContractData: 第三方渠道返回的合约数据
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractData: str
        :param _ExternalReturnContractTerminationRemark: 第三方渠道解约备注
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractTerminationRemark: str
        :param _ExternalReturnContractTerminationMode: 第三方渠道协议解约方式
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnContractTerminationMode: str
        """
        self._ExternalReturnAgreementId = None
        self._ExternalReturnContractEffectiveTimestamp = None
        self._ExternalReturnContractTerminationTimestamp = None
        self._ExternalReturnContractStatus = None
        self._ExternalReturnRequestId = None
        self._ExternalReturnContractSignedTimestamp = None
        self._ExternalReturnContractExpiredTimestamp = None
        self._ExternalReturnContractData = None
        self._ExternalReturnContractTerminationRemark = None
        self._ExternalReturnContractTerminationMode = None

    @property
    def ExternalReturnAgreementId(self):
        return self._ExternalReturnAgreementId

    @ExternalReturnAgreementId.setter
    def ExternalReturnAgreementId(self, ExternalReturnAgreementId):
        self._ExternalReturnAgreementId = ExternalReturnAgreementId

    @property
    def ExternalReturnContractEffectiveTimestamp(self):
        return self._ExternalReturnContractEffectiveTimestamp

    @ExternalReturnContractEffectiveTimestamp.setter
    def ExternalReturnContractEffectiveTimestamp(self, ExternalReturnContractEffectiveTimestamp):
        self._ExternalReturnContractEffectiveTimestamp = ExternalReturnContractEffectiveTimestamp

    @property
    def ExternalReturnContractTerminationTimestamp(self):
        return self._ExternalReturnContractTerminationTimestamp

    @ExternalReturnContractTerminationTimestamp.setter
    def ExternalReturnContractTerminationTimestamp(self, ExternalReturnContractTerminationTimestamp):
        self._ExternalReturnContractTerminationTimestamp = ExternalReturnContractTerminationTimestamp

    @property
    def ExternalReturnContractStatus(self):
        return self._ExternalReturnContractStatus

    @ExternalReturnContractStatus.setter
    def ExternalReturnContractStatus(self, ExternalReturnContractStatus):
        self._ExternalReturnContractStatus = ExternalReturnContractStatus

    @property
    def ExternalReturnRequestId(self):
        return self._ExternalReturnRequestId

    @ExternalReturnRequestId.setter
    def ExternalReturnRequestId(self, ExternalReturnRequestId):
        self._ExternalReturnRequestId = ExternalReturnRequestId

    @property
    def ExternalReturnContractSignedTimestamp(self):
        return self._ExternalReturnContractSignedTimestamp

    @ExternalReturnContractSignedTimestamp.setter
    def ExternalReturnContractSignedTimestamp(self, ExternalReturnContractSignedTimestamp):
        self._ExternalReturnContractSignedTimestamp = ExternalReturnContractSignedTimestamp

    @property
    def ExternalReturnContractExpiredTimestamp(self):
        return self._ExternalReturnContractExpiredTimestamp

    @ExternalReturnContractExpiredTimestamp.setter
    def ExternalReturnContractExpiredTimestamp(self, ExternalReturnContractExpiredTimestamp):
        self._ExternalReturnContractExpiredTimestamp = ExternalReturnContractExpiredTimestamp

    @property
    def ExternalReturnContractData(self):
        return self._ExternalReturnContractData

    @ExternalReturnContractData.setter
    def ExternalReturnContractData(self, ExternalReturnContractData):
        self._ExternalReturnContractData = ExternalReturnContractData

    @property
    def ExternalReturnContractTerminationRemark(self):
        return self._ExternalReturnContractTerminationRemark

    @ExternalReturnContractTerminationRemark.setter
    def ExternalReturnContractTerminationRemark(self, ExternalReturnContractTerminationRemark):
        self._ExternalReturnContractTerminationRemark = ExternalReturnContractTerminationRemark

    @property
    def ExternalReturnContractTerminationMode(self):
        return self._ExternalReturnContractTerminationMode

    @ExternalReturnContractTerminationMode.setter
    def ExternalReturnContractTerminationMode(self, ExternalReturnContractTerminationMode):
        self._ExternalReturnContractTerminationMode = ExternalReturnContractTerminationMode


    def _deserialize(self, params):
        self._ExternalReturnAgreementId = params.get("ExternalReturnAgreementId")
        self._ExternalReturnContractEffectiveTimestamp = params.get("ExternalReturnContractEffectiveTimestamp")
        self._ExternalReturnContractTerminationTimestamp = params.get("ExternalReturnContractTerminationTimestamp")
        self._ExternalReturnContractStatus = params.get("ExternalReturnContractStatus")
        self._ExternalReturnRequestId = params.get("ExternalReturnRequestId")
        self._ExternalReturnContractSignedTimestamp = params.get("ExternalReturnContractSignedTimestamp")
        self._ExternalReturnContractExpiredTimestamp = params.get("ExternalReturnContractExpiredTimestamp")
        self._ExternalReturnContractData = params.get("ExternalReturnContractData")
        self._ExternalReturnContractTerminationRemark = params.get("ExternalReturnContractTerminationRemark")
        self._ExternalReturnContractTerminationMode = params.get("ExternalReturnContractTerminationMode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FeeRangInfo(AbstractModel):
    """分段计费区间信息

    """

    def __init__(self):
        r"""
        :param _CardType: 卡类型，银联产品使用 
DEBIT：借记卡 
CREDIT：贷记卡
        :type CardType: str
        :param _RangeStartValue: 区间起始金额，单位（分）
        :type RangeStartValue: int
        :param _RangeEndValue: 区间结束金额，单位（分）
        :type RangeEndValue: int
        :param _RangeFeeMode: 分段计费模式 
SINGLE：按金额计费 
RATIO：按费率计费
        :type RangeFeeMode: str
        :param _FeeValue: 费用值，单位（0.01%或分）
        :type FeeValue: int
        :param _MinFee: 最低收费金额，单位（分）
        :type MinFee: int
        :param _MaxFee: 最高收费金额，单位（分）
        :type MaxFee: int
        """
        self._CardType = None
        self._RangeStartValue = None
        self._RangeEndValue = None
        self._RangeFeeMode = None
        self._FeeValue = None
        self._MinFee = None
        self._MaxFee = None

    @property
    def CardType(self):
        return self._CardType

    @CardType.setter
    def CardType(self, CardType):
        self._CardType = CardType

    @property
    def RangeStartValue(self):
        return self._RangeStartValue

    @RangeStartValue.setter
    def RangeStartValue(self, RangeStartValue):
        self._RangeStartValue = RangeStartValue

    @property
    def RangeEndValue(self):
        return self._RangeEndValue

    @RangeEndValue.setter
    def RangeEndValue(self, RangeEndValue):
        self._RangeEndValue = RangeEndValue

    @property
    def RangeFeeMode(self):
        return self._RangeFeeMode

    @RangeFeeMode.setter
    def RangeFeeMode(self, RangeFeeMode):
        self._RangeFeeMode = RangeFeeMode

    @property
    def FeeValue(self):
        return self._FeeValue

    @FeeValue.setter
    def FeeValue(self, FeeValue):
        self._FeeValue = FeeValue

    @property
    def MinFee(self):
        return self._MinFee

    @MinFee.setter
    def MinFee(self, MinFee):
        self._MinFee = MinFee

    @property
    def MaxFee(self):
        return self._MaxFee

    @MaxFee.setter
    def MaxFee(self, MaxFee):
        self._MaxFee = MaxFee


    def _deserialize(self, params):
        self._CardType = params.get("CardType")
        self._RangeStartValue = params.get("RangeStartValue")
        self._RangeEndValue = params.get("RangeEndValue")
        self._RangeFeeMode = params.get("RangeFeeMode")
        self._FeeValue = params.get("FeeValue")
        self._MinFee = params.get("MinFee")
        self._MaxFee = params.get("MaxFee")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FileItem(AbstractModel):
    """对账文件信息

    """

    def __init__(self):
        r"""
        :param _FileName: STRING(256)，文件名称
注意：此字段可能返回 null，表示取不到有效值。
        :type FileName: str
        :param _RandomPassword: STRING(120)，随机密码
注意：此字段可能返回 null，表示取不到有效值。
        :type RandomPassword: str
        :param _FilePath: STRING(512)，文件路径
注意：此字段可能返回 null，表示取不到有效值。
        :type FilePath: str
        :param _DrawCode: STRING(64)，提取码
注意：此字段可能返回 null，表示取不到有效值。
        :type DrawCode: str
        """
        self._FileName = None
        self._RandomPassword = None
        self._FilePath = None
        self._DrawCode = None

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def RandomPassword(self):
        return self._RandomPassword

    @RandomPassword.setter
    def RandomPassword(self, RandomPassword):
        self._RandomPassword = RandomPassword

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath

    @property
    def DrawCode(self):
        return self._DrawCode

    @DrawCode.setter
    def DrawCode(self, DrawCode):
        self._DrawCode = DrawCode


    def _deserialize(self, params):
        self._FileName = params.get("FileName")
        self._RandomPassword = params.get("RandomPassword")
        self._FilePath = params.get("FilePath")
        self._DrawCode = params.get("DrawCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FlexBillDownloadUrlResult(AbstractModel):
    """对账单文件下载链接

    """

    def __init__(self):
        r"""
        :param _Url: 对账单文件下载链接
        :type Url: str
        :param _ExpireTime: 下载链接过期时间
        :type ExpireTime: str
        """
        self._Url = None
        self._ExpireTime = None

    @property
    def Url(self):
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime


    def _deserialize(self, params):
        self._Url = params.get("Url")
        self._ExpireTime = params.get("ExpireTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FlexFundingAccountInfo(AbstractModel):
    """灵云V2-银行信息

    """

    def __init__(self):
        r"""
        :param _FundingAccountNo: 资金账户号
        :type FundingAccountNo: str
        :param _FundingAccountType: 资金账户类型
        :type FundingAccountType: str
        :param _FundingAccountBindSerialNo: 资金账户绑定序列号
        :type FundingAccountBindSerialNo: str
        :param _FundingAccountName: 资金账户名称
        :type FundingAccountName: str
        """
        self._FundingAccountNo = None
        self._FundingAccountType = None
        self._FundingAccountBindSerialNo = None
        self._FundingAccountName = None

    @property
    def FundingAccountNo(self):
        return self._FundingAccountNo

    @FundingAccountNo.setter
    def FundingAccountNo(self, FundingAccountNo):
        self._FundingAccountNo = FundingAccountNo

    @property
    def FundingAccountType(self):
        return self._FundingAccountType

    @FundingAccountType.setter
    def FundingAccountType(self, FundingAccountType):
        self._FundingAccountType = FundingAccountType

    @property
    def FundingAccountBindSerialNo(self):
        return self._FundingAccountBindSerialNo

    @FundingAccountBindSerialNo.setter
    def FundingAccountBindSerialNo(self, FundingAccountBindSerialNo):
        self._FundingAccountBindSerialNo = FundingAccountBindSerialNo

    @property
    def FundingAccountName(self):
        return self._FundingAccountName

    @FundingAccountName.setter
    def FundingAccountName(self, FundingAccountName):
        self._FundingAccountName = FundingAccountName


    def _deserialize(self, params):
        self._FundingAccountNo = params.get("FundingAccountNo")
        self._FundingAccountType = params.get("FundingAccountType")
        self._FundingAccountBindSerialNo = params.get("FundingAccountBindSerialNo")
        self._FundingAccountName = params.get("FundingAccountName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FreezeFlexBalanceRequest(AbstractModel):
    """FreezeFlexBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _OperationType: 操作类型
FREEZE:冻结
UNFREEZE:解冻
        :type OperationType: str
        :param _Remark: 冻结备注
        :type Remark: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._AmountBeforeTax = None
        self._IncomeType = None
        self._OutOrderId = None
        self._OperationType = None
        self._Remark = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def OperationType(self):
        return self._OperationType

    @OperationType.setter
    def OperationType(self, OperationType):
        self._OperationType = OperationType

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._IncomeType = params.get("IncomeType")
        self._OutOrderId = params.get("OutOrderId")
        self._OperationType = params.get("OperationType")
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FreezeFlexBalanceResponse(AbstractModel):
    """FreezeFlexBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.FreezeFlexBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = FreezeFlexBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class FreezeFlexBalanceResult(AbstractModel):
    """冻结余额结果

    """

    def __init__(self):
        r"""
        :param _OrderId: 冻结订单ID
        :type OrderId: str
        """
        self._OrderId = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FreezeOrderResult(AbstractModel):
    """冻结单结果

    """

    def __init__(self):
        r"""
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _OperationType: 操作类型
FREEZE:冻结
UNFREEZE:解冻
        :type OperationType: str
        :param _InitiateTime: 发起时间
        :type InitiateTime: str
        :param _FinishTime: 完成时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FinishTime: str
        :param _Status: 状态
ACCEPTED:已受理
ACCOUNTED:已记账
SUCCEED:已成功
FAILED:已失败
        :type Status: str
        :param _StatusDesc: 状态描述
        :type StatusDesc: str
        :param _Remark: 冻结备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        """
        self._AmountBeforeTax = None
        self._IncomeType = None
        self._OutOrderId = None
        self._OrderId = None
        self._OperationType = None
        self._InitiateTime = None
        self._FinishTime = None
        self._Status = None
        self._StatusDesc = None
        self._Remark = None
        self._PayeeId = None
        self._OutUserId = None

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def OperationType(self):
        return self._OperationType

    @OperationType.setter
    def OperationType(self, OperationType):
        self._OperationType = OperationType

    @property
    def InitiateTime(self):
        return self._InitiateTime

    @InitiateTime.setter
    def InitiateTime(self, InitiateTime):
        self._InitiateTime = InitiateTime

    @property
    def FinishTime(self):
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId


    def _deserialize(self, params):
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._IncomeType = params.get("IncomeType")
        self._OutOrderId = params.get("OutOrderId")
        self._OrderId = params.get("OrderId")
        self._OperationType = params.get("OperationType")
        self._InitiateTime = params.get("InitiateTime")
        self._FinishTime = params.get("FinishTime")
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._Remark = params.get("Remark")
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FreezeOrders(AbstractModel):
    """冻结订单列表

    """

    def __init__(self):
        r"""
        :param _List: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of FreezeOrderResult
        :param _Count: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        """
        self._List = None
        self._Count = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = FreezeOrderResult()
                obj._deserialize(item)
                self._List.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class FundsTransactionItem(AbstractModel):
    """会员资金交易明细信息

    """

    def __init__(self):
        r"""
        :param _TransType: 资金交易类型。
__1__：提现/退款
__2__：清分/充值
        :type TransType: str
        :param _BankBookingMessage: 银行记账说明。
注意：此字段可能返回 null，表示取不到有效值。
        :type BankBookingMessage: str
        :param _TranStatus: 交易状态。
__0__：成功
        :type TranStatus: str
        :param _TransNetMemberCode: 业务方会员标识。
_平安渠道为交易网会员代码_
注意：此字段可能返回 null，表示取不到有效值。
        :type TransNetMemberCode: str
        :param _SubAccountNumber: 子账户账号。
_平安渠道为见证子账户的账号_
        :type SubAccountNumber: str
        :param _SubAccountName: 子账户名称。
_平安渠道为见证子账户的户名_
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAccountName: str
        :param _TransAmount: 交易金额。
        :type TransAmount: str
        :param _TransFee: 交易手续费。
注意：此字段可能返回 null，表示取不到有效值。
        :type TransFee: str
        :param _TransDate: 交易日期，格式：yyyyMMdd。
        :type TransDate: str
        :param _TransTime: 交易时间，格式：HHmmss。
注意：此字段可能返回 null，表示取不到有效值。
        :type TransTime: str
        :param _BankSequenceNumber: 银行系统流水号。
_平安渠道为见证系统流水号_
        :type BankSequenceNumber: str
        :param _Remark: 备注。
_平安渠道，如果是见证+收单的交易，返回交易订单号_
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._TransType = None
        self._BankBookingMessage = None
        self._TranStatus = None
        self._TransNetMemberCode = None
        self._SubAccountNumber = None
        self._SubAccountName = None
        self._TransAmount = None
        self._TransFee = None
        self._TransDate = None
        self._TransTime = None
        self._BankSequenceNumber = None
        self._Remark = None

    @property
    def TransType(self):
        return self._TransType

    @TransType.setter
    def TransType(self, TransType):
        self._TransType = TransType

    @property
    def BankBookingMessage(self):
        return self._BankBookingMessage

    @BankBookingMessage.setter
    def BankBookingMessage(self, BankBookingMessage):
        self._BankBookingMessage = BankBookingMessage

    @property
    def TranStatus(self):
        return self._TranStatus

    @TranStatus.setter
    def TranStatus(self, TranStatus):
        self._TranStatus = TranStatus

    @property
    def TransNetMemberCode(self):
        return self._TransNetMemberCode

    @TransNetMemberCode.setter
    def TransNetMemberCode(self, TransNetMemberCode):
        self._TransNetMemberCode = TransNetMemberCode

    @property
    def SubAccountNumber(self):
        return self._SubAccountNumber

    @SubAccountNumber.setter
    def SubAccountNumber(self, SubAccountNumber):
        self._SubAccountNumber = SubAccountNumber

    @property
    def SubAccountName(self):
        return self._SubAccountName

    @SubAccountName.setter
    def SubAccountName(self, SubAccountName):
        self._SubAccountName = SubAccountName

    @property
    def TransAmount(self):
        return self._TransAmount

    @TransAmount.setter
    def TransAmount(self, TransAmount):
        self._TransAmount = TransAmount

    @property
    def TransFee(self):
        return self._TransFee

    @TransFee.setter
    def TransFee(self, TransFee):
        self._TransFee = TransFee

    @property
    def TransDate(self):
        return self._TransDate

    @TransDate.setter
    def TransDate(self, TransDate):
        self._TransDate = TransDate

    @property
    def TransTime(self):
        return self._TransTime

    @TransTime.setter
    def TransTime(self, TransTime):
        self._TransTime = TransTime

    @property
    def BankSequenceNumber(self):
        return self._BankSequenceNumber

    @BankSequenceNumber.setter
    def BankSequenceNumber(self, BankSequenceNumber):
        self._BankSequenceNumber = BankSequenceNumber

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._TransType = params.get("TransType")
        self._BankBookingMessage = params.get("BankBookingMessage")
        self._TranStatus = params.get("TranStatus")
        self._TransNetMemberCode = params.get("TransNetMemberCode")
        self._SubAccountNumber = params.get("SubAccountNumber")
        self._SubAccountName = params.get("SubAccountName")
        self._TransAmount = params.get("TransAmount")
        self._TransFee = params.get("TransFee")
        self._TransDate = params.get("TransDate")
        self._TransTime = params.get("TransTime")
        self._BankSequenceNumber = params.get("BankSequenceNumber")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetBillDownloadUrlRequest(AbstractModel):
    """GetBillDownloadUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Day: 清算日期（YYYYMMDD，今天传昨天的日期，每日下午1点后出前一日的账单）
        :type Day: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Day = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Day(self):
        return self._Day

    @Day.setter
    def Day(self, Day):
        self._Day = Day


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Day = params.get("Day")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetBillDownloadUrlResponse(AbstractModel):
    """GetBillDownloadUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 账单文件下载地址响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.BillDownloadUrlResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = BillDownloadUrlResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class GetDistributeBillDownloadUrlRequest(AbstractModel):
    """GetDistributeBillDownloadUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Day: 分账日期（YYYYMMDD，今天传昨天的日期）
        :type Day: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Day = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Day(self):
        return self._Day

    @Day.setter
    def Day(self, Day):
        self._Day = Day


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Day = params.get("Day")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetDistributeBillDownloadUrlResponse(AbstractModel):
    """GetDistributeBillDownloadUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 账单文件下载地址响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.BillDownloadUrlResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = BillDownloadUrlResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class GetPayRollAuthListRequest(AbstractModel):
    """GetPayRollAuthList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _AuthDate: 核身日期，一次只能查询一天，最久可查询90天内的记录，格式为YYYY-MM-DD
        :type AuthDate: str
        :param _Offset: 非负整数，表示该次请求资源的起始位置，从0开始计数
        :type Offset: int
        :param _Limit: 非0非负的整数，该次请求可返回的最大资源条数，默认值为10，最大支持10条
        :type Limit: int
        :param _WechatAppId: 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID（与服务商主体一致）
当输入服务商Appid时，会校验其与服务商商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatAppId: str
        :param _WechatSubAppId: 特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID（与特约商户主体一致）
当输入特约商户Appid时，会校验其与特约商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatSubAppId: str
        :param _AuthStatus: 核身状态，列表查询仅提供成功状态的核身记录查询，故此字段固定AUTHENTICATE_SUCCESS即可
        :type AuthStatus: str
        """
        self._OpenId = None
        self._SubMerchantId = None
        self._AuthDate = None
        self._Offset = None
        self._Limit = None
        self._WechatAppId = None
        self._WechatSubAppId = None
        self._AuthStatus = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def AuthDate(self):
        return self._AuthDate

    @AuthDate.setter
    def AuthDate(self, AuthDate):
        self._AuthDate = AuthDate

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatSubAppId(self):
        return self._WechatSubAppId

    @WechatSubAppId.setter
    def WechatSubAppId(self, WechatSubAppId):
        self._WechatSubAppId = WechatSubAppId

    @property
    def AuthStatus(self):
        return self._AuthStatus

    @AuthStatus.setter
    def AuthStatus(self, AuthStatus):
        self._AuthStatus = AuthStatus


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._AuthDate = params.get("AuthDate")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatSubAppId = params.get("WechatSubAppId")
        self._AuthStatus = params.get("AuthStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetPayRollAuthListResponse(AbstractModel):
    """GetPayRollAuthList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Results: 核身结果列表
注意：此字段可能返回 null，表示取不到有效值。
        :type Results: list of PayRollAuthResult
        :param _Total: 总记录条数
        :type Total: int
        :param _Offset: 记录起始位置，该次请求资源的起始位置，请求中包含偏移量时应答消息返回相同偏移量，否则返回默认值0
        :type Offset: int
        :param _Limit: 本次返回条数
        :type Limit: int
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Results = None
        self._Total = None
        self._Offset = None
        self._Limit = None
        self._RequestId = None

    @property
    def Results(self):
        return self._Results

    @Results.setter
    def Results(self, Results):
        self._Results = Results

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Results") is not None:
            self._Results = []
            for item in params.get("Results"):
                obj = PayRollAuthResult()
                obj._deserialize(item)
                self._Results.append(obj)
        self._Total = params.get("Total")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._RequestId = params.get("RequestId")


class GetPayRollAuthRequest(AbstractModel):
    """GetPayRollAuth请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _WechatAppId: 是服务商在微信申请公众号/小程序或移动应用成功后分配的账号ID（与服务商主体一致）
当输入服务商Appid时，会校验其与服务商商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatAppId: str
        :param _WechatSubAppId: 特约商户在微信申请公众号/小程序或移动应用成功后分配的账号ID（与特约商户主体一致）
当输入特约商户Appid时，会校验其与特约商户号的绑定关系。服务商APPID和与特约商户APPID至少输入一个，且必须要有拉起领薪卡小程序时使用的APPID
        :type WechatSubAppId: str
        """
        self._OpenId = None
        self._SubMerchantId = None
        self._WechatAppId = None
        self._WechatSubAppId = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatSubAppId(self):
        return self._WechatSubAppId

    @WechatSubAppId.setter
    def WechatSubAppId(self, WechatSubAppId):
        self._WechatSubAppId = WechatSubAppId


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatSubAppId = params.get("WechatSubAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetPayRollAuthResponse(AbstractModel):
    """GetPayRollAuth返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthStatus: 授权状态：
UNAUTHORIZED：未授权
AUTHORIZED：已授权
DEAUTHORIZED：已取消授权
        :type AuthStatus: str
        :param _AuthTime: 授权时间，遵循[rfc3339](https://datatracker.ietf.org/doc/html/rfc3339)标准格式，格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，空字符串等同null
注意：此字段可能返回 null，表示取不到有效值。
        :type AuthTime: str
        :param _CancelAuthTime: 授权时间，遵循[rfc3339](https://datatracker.ietf.org/doc/html/rfc3339)标准格式，格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，空字符串等同null
注意：此字段可能返回 null，表示取不到有效值。
        :type CancelAuthTime: str
        :param _MerchantId: 微信服务商商户的商户号，由微信支付生成并下发
        :type MerchantId: str
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AuthStatus = None
        self._AuthTime = None
        self._CancelAuthTime = None
        self._MerchantId = None
        self._OpenId = None
        self._SubMerchantId = None
        self._RequestId = None

    @property
    def AuthStatus(self):
        return self._AuthStatus

    @AuthStatus.setter
    def AuthStatus(self, AuthStatus):
        self._AuthStatus = AuthStatus

    @property
    def AuthTime(self):
        return self._AuthTime

    @AuthTime.setter
    def AuthTime(self, AuthTime):
        self._AuthTime = AuthTime

    @property
    def CancelAuthTime(self):
        return self._CancelAuthTime

    @CancelAuthTime.setter
    def CancelAuthTime(self, CancelAuthTime):
        self._CancelAuthTime = CancelAuthTime

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._AuthStatus = params.get("AuthStatus")
        self._AuthTime = params.get("AuthTime")
        self._CancelAuthTime = params.get("CancelAuthTime")
        self._MerchantId = params.get("MerchantId")
        self._OpenId = params.get("OpenId")
        self._SubMerchantId = params.get("SubMerchantId")
        self._RequestId = params.get("RequestId")


class GetPayRollAuthResultRequest(AbstractModel):
    """GetPayRollAuthResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        """
        self._AuthNumber = None
        self._SubMerchantId = None

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId


    def _deserialize(self, params):
        self._AuthNumber = params.get("AuthNumber")
        self._SubMerchantId = params.get("SubMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class GetPayRollAuthResultResponse(AbstractModel):
    """GetPayRollAuthResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 核身结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayRollAuthResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = PayRollAuthResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class LegalPersonInfo(AbstractModel):
    """商户法人代表信息

    """

    def __init__(self):
        r"""
        :param _IdType: 证件类型 
IDCARD：身份证 
PASSPORT：护照 SOLDIERSCERTIFICATE：士兵证 OFFICERSCERTIFICATE：军官证 GATXCERTIFICATE：香港居民来往内地通行证 TWNDCERTIFICATE：台湾同胞来往内地通行证 
MACAOCERTIFICATE：澳门来往内地通行证
        :type IdType: str
        :param _IdNumber: 证件号码
        :type IdNumber: str
        :param _PersonName: 姓名
        :type PersonName: str
        :param _IdValidityType: 证件有效期类型 
LONGTERM：长期有效 
OTHER：非长期有效
        :type IdValidityType: str
        :param _IdEffectiveDate: 证件生效日期，yyyy-MM-dd
        :type IdEffectiveDate: str
        :param _ContactPhone: 联系电话
        :type ContactPhone: str
        :param _IdExpireDate: 证件失效日期，yyyy-MM-dd
        :type IdExpireDate: str
        :param _ContactAddress: 联系地址
        :type ContactAddress: str
        :param _EmailAddress: 邮箱地址
        :type EmailAddress: str
        """
        self._IdType = None
        self._IdNumber = None
        self._PersonName = None
        self._IdValidityType = None
        self._IdEffectiveDate = None
        self._ContactPhone = None
        self._IdExpireDate = None
        self._ContactAddress = None
        self._EmailAddress = None

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdNumber(self):
        return self._IdNumber

    @IdNumber.setter
    def IdNumber(self, IdNumber):
        self._IdNumber = IdNumber

    @property
    def PersonName(self):
        return self._PersonName

    @PersonName.setter
    def PersonName(self, PersonName):
        self._PersonName = PersonName

    @property
    def IdValidityType(self):
        return self._IdValidityType

    @IdValidityType.setter
    def IdValidityType(self, IdValidityType):
        self._IdValidityType = IdValidityType

    @property
    def IdEffectiveDate(self):
        return self._IdEffectiveDate

    @IdEffectiveDate.setter
    def IdEffectiveDate(self, IdEffectiveDate):
        self._IdEffectiveDate = IdEffectiveDate

    @property
    def ContactPhone(self):
        return self._ContactPhone

    @ContactPhone.setter
    def ContactPhone(self, ContactPhone):
        self._ContactPhone = ContactPhone

    @property
    def IdExpireDate(self):
        return self._IdExpireDate

    @IdExpireDate.setter
    def IdExpireDate(self, IdExpireDate):
        self._IdExpireDate = IdExpireDate

    @property
    def ContactAddress(self):
        return self._ContactAddress

    @ContactAddress.setter
    def ContactAddress(self, ContactAddress):
        self._ContactAddress = ContactAddress

    @property
    def EmailAddress(self):
        return self._EmailAddress

    @EmailAddress.setter
    def EmailAddress(self, EmailAddress):
        self._EmailAddress = EmailAddress


    def _deserialize(self, params):
        self._IdType = params.get("IdType")
        self._IdNumber = params.get("IdNumber")
        self._PersonName = params.get("PersonName")
        self._IdValidityType = params.get("IdValidityType")
        self._IdEffectiveDate = params.get("IdEffectiveDate")
        self._ContactPhone = params.get("ContactPhone")
        self._IdExpireDate = params.get("IdExpireDate")
        self._ContactAddress = params.get("ContactAddress")
        self._EmailAddress = params.get("EmailAddress")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MemberTransactionItem(AbstractModel):
    """会员间交易明细信息

    """

    def __init__(self):
        r"""
        :param _TransType: 交易类型。
__1__：转出
__2__：转入
        :type TransType: str
        :param _TranStatus: 交易状态。
__0__：成功
        :type TranStatus: str
        :param _TransAmount: 交易金额。
        :type TransAmount: str
        :param _TransDate: 交易日期，格式：yyyyMMdd。
        :type TransDate: str
        :param _TransTime: 交易时间，格式：HHmmss。
注意：此字段可能返回 null，表示取不到有效值。
        :type TransTime: str
        :param _BankSequenceNumber: 银行系统流水号。
_平安渠道为见证系统流水号_
        :type BankSequenceNumber: str
        :param _BankBookingType: 银行记账类型。
_平安渠道为：_
_1：会员支付_
_2：会员冻结_
_3：会员解冻_
_4：登记挂账_
_6：下单预支付_
_7：确认并付款_
_8：会员退款_
_22：见证+收单平台调账_
_23：见证+收单资金冻结_
_24：见证+收单资金解冻_
_25：会员间交易退款_
注意：此字段可能返回 null，表示取不到有效值。
        :type BankBookingType: str
        :param _InSubAccountNumber: 转入方子账户账号。
_平安渠道为转入见证子账户的账号_
        :type InSubAccountNumber: str
        :param _OutSubAccountNumber: 转出方子账户账号。
_平安渠道为转出见证子账户的账号_
        :type OutSubAccountNumber: str
        :param _Remark: 备注。
_平安渠道，如果是见证+收单的交易，返回交易订单号_
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._TransType = None
        self._TranStatus = None
        self._TransAmount = None
        self._TransDate = None
        self._TransTime = None
        self._BankSequenceNumber = None
        self._BankBookingType = None
        self._InSubAccountNumber = None
        self._OutSubAccountNumber = None
        self._Remark = None

    @property
    def TransType(self):
        return self._TransType

    @TransType.setter
    def TransType(self, TransType):
        self._TransType = TransType

    @property
    def TranStatus(self):
        return self._TranStatus

    @TranStatus.setter
    def TranStatus(self, TranStatus):
        self._TranStatus = TranStatus

    @property
    def TransAmount(self):
        return self._TransAmount

    @TransAmount.setter
    def TransAmount(self, TransAmount):
        self._TransAmount = TransAmount

    @property
    def TransDate(self):
        return self._TransDate

    @TransDate.setter
    def TransDate(self, TransDate):
        self._TransDate = TransDate

    @property
    def TransTime(self):
        return self._TransTime

    @TransTime.setter
    def TransTime(self, TransTime):
        self._TransTime = TransTime

    @property
    def BankSequenceNumber(self):
        return self._BankSequenceNumber

    @BankSequenceNumber.setter
    def BankSequenceNumber(self, BankSequenceNumber):
        self._BankSequenceNumber = BankSequenceNumber

    @property
    def BankBookingType(self):
        return self._BankBookingType

    @BankBookingType.setter
    def BankBookingType(self, BankBookingType):
        self._BankBookingType = BankBookingType

    @property
    def InSubAccountNumber(self):
        return self._InSubAccountNumber

    @InSubAccountNumber.setter
    def InSubAccountNumber(self, InSubAccountNumber):
        self._InSubAccountNumber = InSubAccountNumber

    @property
    def OutSubAccountNumber(self):
        return self._OutSubAccountNumber

    @OutSubAccountNumber.setter
    def OutSubAccountNumber(self, OutSubAccountNumber):
        self._OutSubAccountNumber = OutSubAccountNumber

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._TransType = params.get("TransType")
        self._TranStatus = params.get("TranStatus")
        self._TransAmount = params.get("TransAmount")
        self._TransDate = params.get("TransDate")
        self._TransTime = params.get("TransTime")
        self._BankSequenceNumber = params.get("BankSequenceNumber")
        self._BankBookingType = params.get("BankBookingType")
        self._InSubAccountNumber = params.get("InSubAccountNumber")
        self._OutSubAccountNumber = params.get("OutSubAccountNumber")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MerchantClassificationId(AbstractModel):
    """商户分类

    """

    def __init__(self):
        r"""
        :param _Code: 分类编号
        :type Code: str
        :param _Name: 分类名称
        :type Name: str
        :param _Parent: 父级编号（0为一级编号，大于0为父级分类编号）
        :type Parent: str
        """
        self._Code = None
        self._Name = None
        self._Parent = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Parent(self):
        return self._Parent

    @Parent.setter
    def Parent(self, Parent):
        self._Parent = Parent


    def _deserialize(self, params):
        self._Code = params.get("Code")
        self._Name = params.get("Name")
        self._Parent = params.get("Parent")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MerchantManagementList(AbstractModel):
    """商户查询管理端列表

    """

    def __init__(self):
        r"""
        :param _TaxpayerName: 企业名称。
        :type TaxpayerName: str
        :param _TaxpayerNum: 纳税人识别号(税号)	。
        :type TaxpayerNum: str
        :param _SerialNo: 请求流水号。
        :type SerialNo: str
        :param _InvoicePlatformId: 开票系统ID
        :type InvoicePlatformId: int
        """
        self._TaxpayerName = None
        self._TaxpayerNum = None
        self._SerialNo = None
        self._InvoicePlatformId = None

    @property
    def TaxpayerName(self):
        return self._TaxpayerName

    @TaxpayerName.setter
    def TaxpayerName(self, TaxpayerName):
        self._TaxpayerName = TaxpayerName

    @property
    def TaxpayerNum(self):
        return self._TaxpayerNum

    @TaxpayerNum.setter
    def TaxpayerNum(self, TaxpayerNum):
        self._TaxpayerNum = TaxpayerNum

    @property
    def SerialNo(self):
        return self._SerialNo

    @SerialNo.setter
    def SerialNo(self, SerialNo):
        self._SerialNo = SerialNo

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId


    def _deserialize(self, params):
        self._TaxpayerName = params.get("TaxpayerName")
        self._TaxpayerNum = params.get("TaxpayerNum")
        self._SerialNo = params.get("SerialNo")
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MerchantManagementResult(AbstractModel):
    """商户管理端结果

    """

    def __init__(self):
        r"""
        :param _Total: 总数。
        :type Total: int
        :param _List: 商户列表。
        :type List: list of MerchantManagementList
        """
        self._Total = None
        self._List = None

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List


    def _deserialize(self, params):
        self._Total = params.get("Total")
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = MerchantManagementList()
                obj._deserialize(item)
                self._List.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MerchantPayWayData(AbstractModel):
    """商户支付方式数据

    """

    def __init__(self):
        r"""
        :param _PayCurrency: 支付币种
注意：此字段可能返回 null，表示取不到有效值。
        :type PayCurrency: str
        :param _PayIcon: 支付图标
注意：此字段可能返回 null，表示取不到有效值。
        :type PayIcon: str
        :param _PayInternalName: 支付名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInternalName: str
        :param _PayName: 支付简称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayName: str
        :param _PaySplitRefund: 是否支持退款
注意：此字段可能返回 null，表示取不到有效值。
        :type PaySplitRefund: str
        :param _PayTag: 支付标签
注意：此字段可能返回 null，表示取不到有效值。
        :type PayTag: str
        :param _PayTicketIcon: 支付凭证图标
注意：此字段可能返回 null，表示取不到有效值。
        :type PayTicketIcon: str
        :param _PayType: 支付类型，逗号分隔
注意：此字段可能返回 null，表示取不到有效值。
        :type PayType: str
        :param _TicketName: 凭证名称
注意：此字段可能返回 null，表示取不到有效值。
        :type TicketName: str
        """
        self._PayCurrency = None
        self._PayIcon = None
        self._PayInternalName = None
        self._PayName = None
        self._PaySplitRefund = None
        self._PayTag = None
        self._PayTicketIcon = None
        self._PayType = None
        self._TicketName = None

    @property
    def PayCurrency(self):
        return self._PayCurrency

    @PayCurrency.setter
    def PayCurrency(self, PayCurrency):
        self._PayCurrency = PayCurrency

    @property
    def PayIcon(self):
        return self._PayIcon

    @PayIcon.setter
    def PayIcon(self, PayIcon):
        self._PayIcon = PayIcon

    @property
    def PayInternalName(self):
        return self._PayInternalName

    @PayInternalName.setter
    def PayInternalName(self, PayInternalName):
        self._PayInternalName = PayInternalName

    @property
    def PayName(self):
        return self._PayName

    @PayName.setter
    def PayName(self, PayName):
        self._PayName = PayName

    @property
    def PaySplitRefund(self):
        return self._PaySplitRefund

    @PaySplitRefund.setter
    def PaySplitRefund(self, PaySplitRefund):
        self._PaySplitRefund = PaySplitRefund

    @property
    def PayTag(self):
        return self._PayTag

    @PayTag.setter
    def PayTag(self, PayTag):
        self._PayTag = PayTag

    @property
    def PayTicketIcon(self):
        return self._PayTicketIcon

    @PayTicketIcon.setter
    def PayTicketIcon(self, PayTicketIcon):
        self._PayTicketIcon = PayTicketIcon

    @property
    def PayType(self):
        return self._PayType

    @PayType.setter
    def PayType(self, PayType):
        self._PayType = PayType

    @property
    def TicketName(self):
        return self._TicketName

    @TicketName.setter
    def TicketName(self, TicketName):
        self._TicketName = TicketName


    def _deserialize(self, params):
        self._PayCurrency = params.get("PayCurrency")
        self._PayIcon = params.get("PayIcon")
        self._PayInternalName = params.get("PayInternalName")
        self._PayName = params.get("PayName")
        self._PaySplitRefund = params.get("PaySplitRefund")
        self._PayTag = params.get("PayTag")
        self._PayTicketIcon = params.get("PayTicketIcon")
        self._PayType = params.get("PayType")
        self._TicketName = params.get("TicketName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MerchantRiskInfo(AbstractModel):
    """商户风险信息

    """

    def __init__(self):
        r"""
        :param _RiskLevel: 恶意注册等级，0-9级，9级最高
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskLevel: int
        :param _RiskTypes: 恶意注册代码，代码以|分割，如"G001|T002"
注意：此字段可能返回 null，表示取不到有效值。
        :type RiskTypes: str
        """
        self._RiskLevel = None
        self._RiskTypes = None

    @property
    def RiskLevel(self):
        return self._RiskLevel

    @RiskLevel.setter
    def RiskLevel(self, RiskLevel):
        self._RiskLevel = RiskLevel

    @property
    def RiskTypes(self):
        return self._RiskTypes

    @RiskTypes.setter
    def RiskTypes(self, RiskTypes):
        self._RiskTypes = RiskTypes


    def _deserialize(self, params):
        self._RiskLevel = params.get("RiskLevel")
        self._RiskTypes = params.get("RiskTypes")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigrateOrderRefundQueryRequest(AbstractModel):
    """MigrateOrderRefundQuery请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _PayChannel: 支付渠道，ALIPAY对应支付宝渠道；UNIONPAY对应银联渠道
        :type PayChannel: str
        :param _RefundOrderId: 退款订单号，最长64位，仅支持数字、 字母
        :type RefundOrderId: str
        :param _TradeSerialNo: 退款流水号
        :type TradeSerialNo: str
        :param _Profile: 接入环境。沙箱环境填 sandbox。
        :type Profile: str
        """
        self._MerchantId = None
        self._PayChannel = None
        self._RefundOrderId = None
        self._TradeSerialNo = None
        self._Profile = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def RefundOrderId(self):
        return self._RefundOrderId

    @RefundOrderId.setter
    def RefundOrderId(self, RefundOrderId):
        self._RefundOrderId = RefundOrderId

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._PayChannel = params.get("PayChannel")
        self._RefundOrderId = params.get("RefundOrderId")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigrateOrderRefundQueryResponse(AbstractModel):
    """MigrateOrderRefundQuery返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsSuccess: 请求成功状态
        :type IsSuccess: bool
        :param _TradeSerialNo: 交易流水号
        :type TradeSerialNo: str
        :param _TradeMsg: 交易备注
        :type TradeMsg: str
        :param _TradeStatus: 交易状态：0=交易待处理；1=交易处理中；2=交易处理成功；3=交易失败；4=状态未知
        :type TradeStatus: int
        :param _ThirdChannelOrderId: 第三方支付机构支付交易号
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdChannelOrderId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsSuccess = None
        self._TradeSerialNo = None
        self._TradeMsg = None
        self._TradeStatus = None
        self._ThirdChannelOrderId = None
        self._RequestId = None

    @property
    def IsSuccess(self):
        return self._IsSuccess

    @IsSuccess.setter
    def IsSuccess(self, IsSuccess):
        self._IsSuccess = IsSuccess

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def TradeMsg(self):
        return self._TradeMsg

    @TradeMsg.setter
    def TradeMsg(self, TradeMsg):
        self._TradeMsg = TradeMsg

    @property
    def TradeStatus(self):
        return self._TradeStatus

    @TradeStatus.setter
    def TradeStatus(self, TradeStatus):
        self._TradeStatus = TradeStatus

    @property
    def ThirdChannelOrderId(self):
        return self._ThirdChannelOrderId

    @ThirdChannelOrderId.setter
    def ThirdChannelOrderId(self, ThirdChannelOrderId):
        self._ThirdChannelOrderId = ThirdChannelOrderId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsSuccess = params.get("IsSuccess")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._TradeMsg = params.get("TradeMsg")
        self._TradeStatus = params.get("TradeStatus")
        self._ThirdChannelOrderId = params.get("ThirdChannelOrderId")
        self._RequestId = params.get("RequestId")


class MigrateOrderRefundRequest(AbstractModel):
    """MigrateOrderRefund请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户代码
        :type MerchantId: str
        :param _PayChannel: 支付渠道，ALIPAY对应支付宝渠道；UNIONPAY对应银联渠道
        :type PayChannel: str
        :param _PayOrderId: 正向支付商户订单号
        :type PayOrderId: str
        :param _RefundOrderId: 退款订单号，最长64位，仅支持数字、 字母
        :type RefundOrderId: str
        :param _RefundAmt: 退款金额，单位：分。备注：改字段必须大于0 和小于10000000000的整数。
        :type RefundAmt: int
        :param _ThirdChannelOrderId: 第三方支付机构支付交易号
        :type ThirdChannelOrderId: str
        :param _PayAmt: 原始支付金额，单位：分。备注：当该字段为空或者为0 时，系统会默认使用订单当 实付金额作为退款金额
        :type PayAmt: int
        :param _Profile: 接入环境。沙箱环境填 sandbox。
        :type Profile: str
        :param _RefundReason: 退款原因
        :type RefundReason: str
        """
        self._MerchantId = None
        self._PayChannel = None
        self._PayOrderId = None
        self._RefundOrderId = None
        self._RefundAmt = None
        self._ThirdChannelOrderId = None
        self._PayAmt = None
        self._Profile = None
        self._RefundReason = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayOrderId(self):
        return self._PayOrderId

    @PayOrderId.setter
    def PayOrderId(self, PayOrderId):
        self._PayOrderId = PayOrderId

    @property
    def RefundOrderId(self):
        return self._RefundOrderId

    @RefundOrderId.setter
    def RefundOrderId(self, RefundOrderId):
        self._RefundOrderId = RefundOrderId

    @property
    def RefundAmt(self):
        return self._RefundAmt

    @RefundAmt.setter
    def RefundAmt(self, RefundAmt):
        self._RefundAmt = RefundAmt

    @property
    def ThirdChannelOrderId(self):
        return self._ThirdChannelOrderId

    @ThirdChannelOrderId.setter
    def ThirdChannelOrderId(self, ThirdChannelOrderId):
        self._ThirdChannelOrderId = ThirdChannelOrderId

    @property
    def PayAmt(self):
        return self._PayAmt

    @PayAmt.setter
    def PayAmt(self, PayAmt):
        self._PayAmt = PayAmt

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def RefundReason(self):
        return self._RefundReason

    @RefundReason.setter
    def RefundReason(self, RefundReason):
        self._RefundReason = RefundReason


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._PayChannel = params.get("PayChannel")
        self._PayOrderId = params.get("PayOrderId")
        self._RefundOrderId = params.get("RefundOrderId")
        self._RefundAmt = params.get("RefundAmt")
        self._ThirdChannelOrderId = params.get("ThirdChannelOrderId")
        self._PayAmt = params.get("PayAmt")
        self._Profile = params.get("Profile")
        self._RefundReason = params.get("RefundReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MigrateOrderRefundResponse(AbstractModel):
    """MigrateOrderRefund返回参数结构体

    """

    def __init__(self):
        r"""
        :param _IsSuccess: 请求成功状态
        :type IsSuccess: bool
        :param _TradeSerialNo: 退款流水号
        :type TradeSerialNo: str
        :param _TradeMsg: 交易备注
        :type TradeMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._IsSuccess = None
        self._TradeSerialNo = None
        self._TradeMsg = None
        self._RequestId = None

    @property
    def IsSuccess(self):
        return self._IsSuccess

    @IsSuccess.setter
    def IsSuccess(self, IsSuccess):
        self._IsSuccess = IsSuccess

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def TradeMsg(self):
        return self._TradeMsg

    @TradeMsg.setter
    def TradeMsg(self, TradeMsg):
        self._TradeMsg = TradeMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._IsSuccess = params.get("IsSuccess")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._TradeMsg = params.get("TradeMsg")
        self._RequestId = params.get("RequestId")


class ModifyAgentTaxPaymentInfoRequest(AbstractModel):
    """ModifyAgentTaxPaymentInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BatchNum: 批次号
        :type BatchNum: int
        :param _RawElectronicCertUrl: 新源电子凭证地址
        :type RawElectronicCertUrl: str
        :param _FileName: 新的文件名
        :type FileName: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._BatchNum = None
        self._RawElectronicCertUrl = None
        self._FileName = None
        self._Profile = None

    @property
    def BatchNum(self):
        return self._BatchNum

    @BatchNum.setter
    def BatchNum(self, BatchNum):
        self._BatchNum = BatchNum

    @property
    def RawElectronicCertUrl(self):
        return self._RawElectronicCertUrl

    @RawElectronicCertUrl.setter
    def RawElectronicCertUrl(self, RawElectronicCertUrl):
        self._RawElectronicCertUrl = RawElectronicCertUrl

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._BatchNum = params.get("BatchNum")
        self._RawElectronicCertUrl = params.get("RawElectronicCertUrl")
        self._FileName = params.get("FileName")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyAgentTaxPaymentInfoResponse(AbstractModel):
    """ModifyAgentTaxPaymentInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AgentTaxPaymentBatch: 代理商完税证明批次信息
        :type AgentTaxPaymentBatch: :class:`tencentcloud.cpdp.v20190820.models.AgentTaxPaymentBatch`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AgentTaxPaymentBatch = None
        self._RequestId = None

    @property
    def AgentTaxPaymentBatch(self):
        return self._AgentTaxPaymentBatch

    @AgentTaxPaymentBatch.setter
    def AgentTaxPaymentBatch(self, AgentTaxPaymentBatch):
        self._AgentTaxPaymentBatch = AgentTaxPaymentBatch

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AgentTaxPaymentBatch") is not None:
            self._AgentTaxPaymentBatch = AgentTaxPaymentBatch()
            self._AgentTaxPaymentBatch._deserialize(params.get("AgentTaxPaymentBatch"))
        self._RequestId = params.get("RequestId")


class ModifyBindedAccountRequest(AbstractModel):
    """ModifyBindedAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播Id
        :type AnchorId: str
        :param _TransferType: 1 微信企业付款 
2 支付宝转账 
3 平安银企直连代发转账
        :type TransferType: int
        :param _AccountNo: 收款方标识。
微信为open_id；
支付宝为会员alipay_user_id;
平安为收款方银行账号;
        :type AccountNo: str
        :param _PhoneNum: 手机号
        :type PhoneNum: str
        """
        self._AnchorId = None
        self._TransferType = None
        self._AccountNo = None
        self._PhoneNum = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def PhoneNum(self):
        return self._PhoneNum

    @PhoneNum.setter
    def PhoneNum(self, PhoneNum):
        self._PhoneNum = PhoneNum


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._TransferType = params.get("TransferType")
        self._AccountNo = params.get("AccountNo")
        self._PhoneNum = params.get("PhoneNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyBindedAccountResponse(AbstractModel):
    """ModifyBindedAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 该字段为null。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class ModifyFlexFundingAccountRequest(AbstractModel):
    """ModifyFlexFundingAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _FundingAccountBindSerialNo: 收款用户资金账户ID
        :type FundingAccountBindSerialNo: str
        :param _FundingAccountType: 资金账户类型
PINGAN_BANK:平安银行
        :type FundingAccountType: str
        :param _PhoneNo: 收款资金账户手机号
        :type PhoneNo: str
        :param _FundingAccountName: 收款资金账户姓名
        :type FundingAccountName: str
        :param _FundingAccountNo: 收款资金账户号
        :type FundingAccountNo: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _BankBranchName: 开户支行名
        :type BankBranchName: str
        """
        self._PayeeId = None
        self._FundingAccountBindSerialNo = None
        self._FundingAccountType = None
        self._PhoneNo = None
        self._FundingAccountName = None
        self._FundingAccountNo = None
        self._Environment = None
        self._BankBranchName = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def FundingAccountBindSerialNo(self):
        return self._FundingAccountBindSerialNo

    @FundingAccountBindSerialNo.setter
    def FundingAccountBindSerialNo(self, FundingAccountBindSerialNo):
        self._FundingAccountBindSerialNo = FundingAccountBindSerialNo

    @property
    def FundingAccountType(self):
        return self._FundingAccountType

    @FundingAccountType.setter
    def FundingAccountType(self, FundingAccountType):
        self._FundingAccountType = FundingAccountType

    @property
    def PhoneNo(self):
        return self._PhoneNo

    @PhoneNo.setter
    def PhoneNo(self, PhoneNo):
        self._PhoneNo = PhoneNo

    @property
    def FundingAccountName(self):
        return self._FundingAccountName

    @FundingAccountName.setter
    def FundingAccountName(self, FundingAccountName):
        self._FundingAccountName = FundingAccountName

    @property
    def FundingAccountNo(self):
        return self._FundingAccountNo

    @FundingAccountNo.setter
    def FundingAccountNo(self, FundingAccountNo):
        self._FundingAccountNo = FundingAccountNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._FundingAccountBindSerialNo = params.get("FundingAccountBindSerialNo")
        self._FundingAccountType = params.get("FundingAccountType")
        self._PhoneNo = params.get("PhoneNo")
        self._FundingAccountName = params.get("FundingAccountName")
        self._FundingAccountNo = params.get("FundingAccountNo")
        self._Environment = params.get("Environment")
        self._BankBranchName = params.get("BankBranchName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFlexFundingAccountResponse(AbstractModel):
    """ModifyFlexFundingAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 无
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class ModifyFlexPayeeAccountRightStatusRequest(AbstractModel):
    """ModifyFlexPayeeAccountRightStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _AccountRightType: 账户权益类型
SETTLEMENT:结算权益
PAYMENT:付款权益
        :type AccountRightType: str
        :param _AccountRightStatus: 账户权益状态
ENABLE:启用
DISABLE:停用
        :type AccountRightStatus: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._AccountRightType = None
        self._AccountRightStatus = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def AccountRightType(self):
        return self._AccountRightType

    @AccountRightType.setter
    def AccountRightType(self, AccountRightType):
        self._AccountRightType = AccountRightType

    @property
    def AccountRightStatus(self):
        return self._AccountRightStatus

    @AccountRightStatus.setter
    def AccountRightStatus(self, AccountRightStatus):
        self._AccountRightStatus = AccountRightStatus

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._AccountRightType = params.get("AccountRightType")
        self._AccountRightStatus = params.get("AccountRightStatus")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyFlexPayeeAccountRightStatusResponse(AbstractModel):
    """ModifyFlexPayeeAccountRightStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果。默认为空。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class ModifyMerchantRequest(AbstractModel):
    """ModifyMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户的AppId
        :type MerchantAppId: str
        :param _MerchantName: 收款商户名称
        :type MerchantName: str
        :param _BusinessPayFlag: B2B 支付标志。是否开通 B2B支付， 1:开通 0:不开通。
        :type BusinessPayFlag: str
        """
        self._MerchantAppId = None
        self._MerchantName = None
        self._BusinessPayFlag = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def BusinessPayFlag(self):
        return self._BusinessPayFlag

    @BusinessPayFlag.setter
    def BusinessPayFlag(self, BusinessPayFlag):
        self._BusinessPayFlag = BusinessPayFlag


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._MerchantName = params.get("MerchantName")
        self._BusinessPayFlag = params.get("BusinessPayFlag")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMerchantResponse(AbstractModel):
    """ModifyMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class ModifyMntMbrBindRelateAcctBankCodeRequest(AbstractModel):
    """ModifyMntMbrBindRelateAcctBankCode请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _SubAcctNo: STRING(50)，见证子账户的账号
        :type SubAcctNo: str
        :param _MemberBindAcctNo: STRING(50)，会员绑定账号
        :type MemberBindAcctNo: str
        :param _AcctOpenBranchName: STRING(150)，开户行名称（若大小额行号不填则送超级网银号对应的银行名称，若填大小额行号则送大小额行号对应的银行名称）
        :type AcctOpenBranchName: str
        :param _CnapsBranchId: STRING(20)，大小额行号（CnapsBranchId和EiconBankBranchId两者二选一必填）
        :type CnapsBranchId: str
        :param _EiconBankBranchId: STRING(20)，超级网银行号
        :type EiconBankBranchId: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._SubAcctNo = None
        self._MemberBindAcctNo = None
        self._AcctOpenBranchName = None
        self._CnapsBranchId = None
        self._EiconBankBranchId = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def MemberBindAcctNo(self):
        return self._MemberBindAcctNo

    @MemberBindAcctNo.setter
    def MemberBindAcctNo(self, MemberBindAcctNo):
        self._MemberBindAcctNo = MemberBindAcctNo

    @property
    def AcctOpenBranchName(self):
        return self._AcctOpenBranchName

    @AcctOpenBranchName.setter
    def AcctOpenBranchName(self, AcctOpenBranchName):
        self._AcctOpenBranchName = AcctOpenBranchName

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._SubAcctNo = params.get("SubAcctNo")
        self._MemberBindAcctNo = params.get("MemberBindAcctNo")
        self._AcctOpenBranchName = params.get("AcctOpenBranchName")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ModifyMntMbrBindRelateAcctBankCodeResponse(AbstractModel):
    """ModifyMntMbrBindRelateAcctBankCode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class MultiApplyDetail(AbstractModel):
    """分账明细

    """

    def __init__(self):
        r"""
        :param _MerchantNo: 商户编号
        :type MerchantNo: str
        :param _Amount: 分账金额
        :type Amount: str
        :param _Remark: 备注
        :type Remark: str
        """
        self._MerchantNo = None
        self._Amount = None
        self._Remark = None

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._MerchantNo = params.get("MerchantNo")
        self._Amount = params.get("Amount")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class MultiApplyOrder(AbstractModel):
    """分账订单信息

    """

    def __init__(self):
        r"""
        :param _OutDistributeNo: 商户分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutDistributeNo: str
        :param _DistributeNo: 平台分账单号
注意：此字段可能返回 null，表示取不到有效值。
        :type DistributeNo: str
        :param _OrderNo: 平台交易订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        :param _Status: 分账订单状态（0初始1成功2失败3撤销）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _InDate: 入账日期，格式yyyy-MM-dd
注意：此字段可能返回 null，表示取不到有效值。
        :type InDate: str
        :param _Remark: 备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _Details: 分账明细
注意：此字段可能返回 null，表示取不到有效值。
        :type Details: list of MultiApplyDetail
        """
        self._OutDistributeNo = None
        self._DistributeNo = None
        self._OrderNo = None
        self._Status = None
        self._InDate = None
        self._Remark = None
        self._Details = None

    @property
    def OutDistributeNo(self):
        return self._OutDistributeNo

    @OutDistributeNo.setter
    def OutDistributeNo(self, OutDistributeNo):
        self._OutDistributeNo = OutDistributeNo

    @property
    def DistributeNo(self):
        return self._DistributeNo

    @DistributeNo.setter
    def DistributeNo(self, DistributeNo):
        self._DistributeNo = DistributeNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def InDate(self):
        return self._InDate

    @InDate.setter
    def InDate(self, InDate):
        self._InDate = InDate

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Details(self):
        return self._Details

    @Details.setter
    def Details(self, Details):
        self._Details = Details


    def _deserialize(self, params):
        self._OutDistributeNo = params.get("OutDistributeNo")
        self._DistributeNo = params.get("DistributeNo")
        self._OrderNo = params.get("OrderNo")
        self._Status = params.get("Status")
        self._InDate = params.get("InDate")
        self._Remark = params.get("Remark")
        if params.get("Details") is not None:
            self._Details = []
            for item in params.get("Details"):
                obj = MultiApplyDetail()
                obj._deserialize(item)
                self._Details.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class NaturalPersonInfo(AbstractModel):
    """自然人信息

    """

    def __init__(self):
        r"""
        :param _PersonType: 自然人类型 
2：商户负责人 
3：授权经办人
4：业务联系人 
5：实际控制人 
6：控股股东 
7：受益人 
8：结算人
注意：HELIPAY渠道必传业务联系人
        :type PersonType: str
        :param _IdType: 证件类型 
IDCARD：身份证 
PASSPORT：护照 SOLDIERSCERTIFICATE：士兵证 OFFICERSCERTIFICATE：军官证 GATXCERTIFICATE：香港居民来往内地通行证 TWNDCERTIFICATE：台湾同胞来往内地通行证 MACAOCERTIFICATE：澳门来往内地通行证
        :type IdType: str
        :param _IdNumber: 证件号码
        :type IdNumber: str
        :param _PersonName: 姓名
        :type PersonName: str
        :param _IdValidityType: 证件有效期类型 
LONGTERM：长期有效 
OTHER：非长期有效
        :type IdValidityType: str
        :param _IdEffectiveDate: 证件生效日期，yyyy-MM-dd
        :type IdEffectiveDate: str
        :param _IdExpireDate: 证件失效日期，yyyy-MM-dd
        :type IdExpireDate: str
        :param _ContactPhone: 联系电话，HELIPAY渠道业务联系人必传
        :type ContactPhone: str
        :param _ContactAddress: 联系地址
        :type ContactAddress: str
        :param _EmailAddress: 邮箱地址
        :type EmailAddress: str
        """
        self._PersonType = None
        self._IdType = None
        self._IdNumber = None
        self._PersonName = None
        self._IdValidityType = None
        self._IdEffectiveDate = None
        self._IdExpireDate = None
        self._ContactPhone = None
        self._ContactAddress = None
        self._EmailAddress = None

    @property
    def PersonType(self):
        return self._PersonType

    @PersonType.setter
    def PersonType(self, PersonType):
        self._PersonType = PersonType

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdNumber(self):
        return self._IdNumber

    @IdNumber.setter
    def IdNumber(self, IdNumber):
        self._IdNumber = IdNumber

    @property
    def PersonName(self):
        return self._PersonName

    @PersonName.setter
    def PersonName(self, PersonName):
        self._PersonName = PersonName

    @property
    def IdValidityType(self):
        return self._IdValidityType

    @IdValidityType.setter
    def IdValidityType(self, IdValidityType):
        self._IdValidityType = IdValidityType

    @property
    def IdEffectiveDate(self):
        return self._IdEffectiveDate

    @IdEffectiveDate.setter
    def IdEffectiveDate(self, IdEffectiveDate):
        self._IdEffectiveDate = IdEffectiveDate

    @property
    def IdExpireDate(self):
        return self._IdExpireDate

    @IdExpireDate.setter
    def IdExpireDate(self, IdExpireDate):
        self._IdExpireDate = IdExpireDate

    @property
    def ContactPhone(self):
        return self._ContactPhone

    @ContactPhone.setter
    def ContactPhone(self, ContactPhone):
        self._ContactPhone = ContactPhone

    @property
    def ContactAddress(self):
        return self._ContactAddress

    @ContactAddress.setter
    def ContactAddress(self, ContactAddress):
        self._ContactAddress = ContactAddress

    @property
    def EmailAddress(self):
        return self._EmailAddress

    @EmailAddress.setter
    def EmailAddress(self, EmailAddress):
        self._EmailAddress = EmailAddress


    def _deserialize(self, params):
        self._PersonType = params.get("PersonType")
        self._IdType = params.get("IdType")
        self._IdNumber = params.get("IdNumber")
        self._PersonName = params.get("PersonName")
        self._IdValidityType = params.get("IdValidityType")
        self._IdEffectiveDate = params.get("IdEffectiveDate")
        self._IdExpireDate = params.get("IdExpireDate")
        self._ContactPhone = params.get("ContactPhone")
        self._ContactAddress = params.get("ContactAddress")
        self._EmailAddress = params.get("EmailAddress")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OldAttachmentInfo(AbstractModel):
    """附加项信息

    """

    def __init__(self):
        r"""
        :param _AttachmentAmount: 附加项金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentAmount: int
        :param _AttachmentType: 附加项类型
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentType: str
        :param _AttachmentName: 附加项名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentName: str
        :param _AttachmentCode: 附加项编号
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentCode: str
        """
        self._AttachmentAmount = None
        self._AttachmentType = None
        self._AttachmentName = None
        self._AttachmentCode = None

    @property
    def AttachmentAmount(self):
        return self._AttachmentAmount

    @AttachmentAmount.setter
    def AttachmentAmount(self, AttachmentAmount):
        self._AttachmentAmount = AttachmentAmount

    @property
    def AttachmentType(self):
        return self._AttachmentType

    @AttachmentType.setter
    def AttachmentType(self, AttachmentType):
        self._AttachmentType = AttachmentType

    @property
    def AttachmentName(self):
        return self._AttachmentName

    @AttachmentName.setter
    def AttachmentName(self, AttachmentName):
        self._AttachmentName = AttachmentName

    @property
    def AttachmentCode(self):
        return self._AttachmentCode

    @AttachmentCode.setter
    def AttachmentCode(self, AttachmentCode):
        self._AttachmentCode = AttachmentCode


    def _deserialize(self, params):
        self._AttachmentAmount = params.get("AttachmentAmount")
        self._AttachmentType = params.get("AttachmentType")
        self._AttachmentName = params.get("AttachmentName")
        self._AttachmentCode = params.get("AttachmentCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OldChannelExternalUserInfo(AbstractModel):
    """渠道方用户信息

    """

    def __init__(self):
        r"""
        :param _ChannelExternalUserType: 渠道方用户类型
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalUserType: str
        :param _ChannelExternalUserId: 渠道方用户ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalUserId: str
        """
        self._ChannelExternalUserType = None
        self._ChannelExternalUserId = None

    @property
    def ChannelExternalUserType(self):
        return self._ChannelExternalUserType

    @ChannelExternalUserType.setter
    def ChannelExternalUserType(self, ChannelExternalUserType):
        self._ChannelExternalUserType = ChannelExternalUserType

    @property
    def ChannelExternalUserId(self):
        return self._ChannelExternalUserId

    @ChannelExternalUserId.setter
    def ChannelExternalUserId(self, ChannelExternalUserId):
        self._ChannelExternalUserId = ChannelExternalUserId


    def _deserialize(self, params):
        self._ChannelExternalUserType = params.get("ChannelExternalUserType")
        self._ChannelExternalUserId = params.get("ChannelExternalUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OldSubRefund(AbstractModel):
    """子单退款信息

    """

    def __init__(self):
        r"""
        :param _ChannelExternalRefundId: 支付机构退款流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalRefundId: str
        :param _ChannelExternalOrderId: 支付机构支付订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalOrderId: str
        :param _ChannelRefundId: 渠道退款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelRefundId: str
        :param _SubOutTradeNo: 子订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type SubOutTradeNo: str
        :param _RefundAmt: 子单退款金额
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundAmt: str
        """
        self._ChannelExternalRefundId = None
        self._ChannelExternalOrderId = None
        self._ChannelRefundId = None
        self._SubOutTradeNo = None
        self._RefundAmt = None

    @property
    def ChannelExternalRefundId(self):
        return self._ChannelExternalRefundId

    @ChannelExternalRefundId.setter
    def ChannelExternalRefundId(self, ChannelExternalRefundId):
        self._ChannelExternalRefundId = ChannelExternalRefundId

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def ChannelRefundId(self):
        return self._ChannelRefundId

    @ChannelRefundId.setter
    def ChannelRefundId(self, ChannelRefundId):
        self._ChannelRefundId = ChannelRefundId

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def RefundAmt(self):
        return self._RefundAmt

    @RefundAmt.setter
    def RefundAmt(self, RefundAmt):
        self._RefundAmt = RefundAmt


    def _deserialize(self, params):
        self._ChannelExternalRefundId = params.get("ChannelExternalRefundId")
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._ChannelRefundId = params.get("ChannelRefundId")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._RefundAmt = params.get("RefundAmt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankApprovalGuideInfo(AbstractModel):
    """银行复核指引。银行侧返回网银授权指引链接，一般PC网银，手机网银链接

    """

    def __init__(self):
        r"""
        :param _PcGuideUrl: PC网银指引
        :type PcGuideUrl: str
        :param _MobileGuideUrl: 手机网银指引
注意：此字段可能返回 null，表示取不到有效值。
        :type MobileGuideUrl: str
        """
        self._PcGuideUrl = None
        self._MobileGuideUrl = None

    @property
    def PcGuideUrl(self):
        return self._PcGuideUrl

    @PcGuideUrl.setter
    def PcGuideUrl(self, PcGuideUrl):
        self._PcGuideUrl = PcGuideUrl

    @property
    def MobileGuideUrl(self):
        return self._MobileGuideUrl

    @MobileGuideUrl.setter
    def MobileGuideUrl(self, MobileGuideUrl):
        self._MobileGuideUrl = MobileGuideUrl


    def _deserialize(self, params):
        self._PcGuideUrl = params.get("PcGuideUrl")
        self._MobileGuideUrl = params.get("MobileGuideUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankBillingInfo(AbstractModel):
    """云企付-账单信息

    """

    def __init__(self):
        r"""
        :param _FirstName: 账单人名字
        :type FirstName: str
        :param _LastName: 账单人姓氏
        :type LastName: str
        :param _AddressOne: 账单地址1
        :type AddressOne: str
        :param _AddressTwo: 账单地址1
        :type AddressTwo: str
        :param _City: 账单地址所在城市
        :type City: str
        :param _State: 账单地址所在州/省，当国家是美国或加拿大时，使用ISO-3166-2:US或ISO -3166-2:CA 中该国家地区编 码标准中的两位字母编码。
        :type State: str
        :param _Country: 账单地址所在国家，使用ISO-3166-1标准中的两位字母编码。
        :type Country: str
        :param _ZipCode: 账单地址邮编
        :type ZipCode: str
        :param _Phone: 账单人手机号
        :type Phone: str
        """
        self._FirstName = None
        self._LastName = None
        self._AddressOne = None
        self._AddressTwo = None
        self._City = None
        self._State = None
        self._Country = None
        self._ZipCode = None
        self._Phone = None

    @property
    def FirstName(self):
        return self._FirstName

    @FirstName.setter
    def FirstName(self, FirstName):
        self._FirstName = FirstName

    @property
    def LastName(self):
        return self._LastName

    @LastName.setter
    def LastName(self, LastName):
        self._LastName = LastName

    @property
    def AddressOne(self):
        return self._AddressOne

    @AddressOne.setter
    def AddressOne(self, AddressOne):
        self._AddressOne = AddressOne

    @property
    def AddressTwo(self):
        return self._AddressTwo

    @AddressTwo.setter
    def AddressTwo(self, AddressTwo):
        self._AddressTwo = AddressTwo

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def ZipCode(self):
        return self._ZipCode

    @ZipCode.setter
    def ZipCode(self, ZipCode):
        self._ZipCode = ZipCode

    @property
    def Phone(self):
        return self._Phone

    @Phone.setter
    def Phone(self, Phone):
        self._Phone = Phone


    def _deserialize(self, params):
        self._FirstName = params.get("FirstName")
        self._LastName = params.get("LastName")
        self._AddressOne = params.get("AddressOne")
        self._AddressTwo = params.get("AddressTwo")
        self._City = params.get("City")
        self._State = params.get("State")
        self._Country = params.get("Country")
        self._ZipCode = params.get("ZipCode")
        self._Phone = params.get("Phone")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankFormInfo(AbstractModel):
    """网银页面提交html

    """

    def __init__(self):
        r"""
        :param _FormHtml: 网银页面提交html
注意：此字段可能返回 null，表示取不到有效值。
        :type FormHtml: str
        :param _FormEncoding: 网银提交页面字符集
注意：此字段可能返回 null，表示取不到有效值。
        :type FormEncoding: str
        """
        self._FormHtml = None
        self._FormEncoding = None

    @property
    def FormHtml(self):
        return self._FormHtml

    @FormHtml.setter
    def FormHtml(self, FormHtml):
        self._FormHtml = FormHtml

    @property
    def FormEncoding(self):
        return self._FormEncoding

    @FormEncoding.setter
    def FormEncoding(self, FormEncoding):
        self._FormEncoding = FormEncoding


    def _deserialize(self, params):
        self._FormHtml = params.get("FormHtml")
        self._FormEncoding = params.get("FormEncoding")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankGoodsInfo(AbstractModel):
    """云企付-商品信息

    """

    def __init__(self):
        r"""
        :param _GoodsName: 商品标题。默认值“商品支付”。
        :type GoodsName: str
        :param _GoodsDetail: 商品详细描述（商品列表）。
        :type GoodsDetail: str
        :param _GoodsDescription: 银行附言。不可以有以下字符：<>+{}()%*&';"[]等特殊符号
        :type GoodsDescription: str
        :param _GoodsBizType: 业务类型。汇付渠道必填，汇付渠道传入固定值100099。
        :type GoodsBizType: str
        :param _Sku: 商品编号。
        :type Sku: str
        :param _Price: 商品单价。
        :type Price: str
        :param _Quantity: 商品数量
        :type Quantity: str
        :param _ProductImage: 商品图片url
        :type ProductImage: str
        :param _ProductUrl: 商品链接url
        :type ProductUrl: str
        """
        self._GoodsName = None
        self._GoodsDetail = None
        self._GoodsDescription = None
        self._GoodsBizType = None
        self._Sku = None
        self._Price = None
        self._Quantity = None
        self._ProductImage = None
        self._ProductUrl = None

    @property
    def GoodsName(self):
        return self._GoodsName

    @GoodsName.setter
    def GoodsName(self, GoodsName):
        self._GoodsName = GoodsName

    @property
    def GoodsDetail(self):
        return self._GoodsDetail

    @GoodsDetail.setter
    def GoodsDetail(self, GoodsDetail):
        self._GoodsDetail = GoodsDetail

    @property
    def GoodsDescription(self):
        return self._GoodsDescription

    @GoodsDescription.setter
    def GoodsDescription(self, GoodsDescription):
        self._GoodsDescription = GoodsDescription

    @property
    def GoodsBizType(self):
        return self._GoodsBizType

    @GoodsBizType.setter
    def GoodsBizType(self, GoodsBizType):
        self._GoodsBizType = GoodsBizType

    @property
    def Sku(self):
        return self._Sku

    @Sku.setter
    def Sku(self, Sku):
        self._Sku = Sku

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def Quantity(self):
        return self._Quantity

    @Quantity.setter
    def Quantity(self, Quantity):
        self._Quantity = Quantity

    @property
    def ProductImage(self):
        return self._ProductImage

    @ProductImage.setter
    def ProductImage(self, ProductImage):
        self._ProductImage = ProductImage

    @property
    def ProductUrl(self):
        return self._ProductUrl

    @ProductUrl.setter
    def ProductUrl(self, ProductUrl):
        self._ProductUrl = ProductUrl


    def _deserialize(self, params):
        self._GoodsName = params.get("GoodsName")
        self._GoodsDetail = params.get("GoodsDetail")
        self._GoodsDescription = params.get("GoodsDescription")
        self._GoodsBizType = params.get("GoodsBizType")
        self._Sku = params.get("Sku")
        self._Price = params.get("Price")
        self._Quantity = params.get("Quantity")
        self._ProductImage = params.get("ProductImage")
        self._ProductUrl = params.get("ProductUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankOrderRedirectInfo(AbstractModel):
    """云企付-下单跳转参数，用于小程序前端跳转

    """

    def __init__(self):
        r"""
        :param _QRCodeUrl: 生成二维码，引导用户扫码
注意：此字段可能返回 null，表示取不到有效值。
        :type QRCodeUrl: str
        :param _QRCodeKey: 二维码凭证
注意：此字段可能返回 null，表示取不到有效值。
        :type QRCodeKey: str
        :param _Url: 跳转 URL,用于客户端跳转，订单未支付时返回该参数
注意：此字段可能返回 null，表示取不到有效值。
        :type Url: str
        :param _ExpireTime: 跳转凭证过期时间,yyyy-MM-dd HH:mm:ss
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpireTime: str
        :param _MpAppId: 小程序 appid
注意：此字段可能返回 null，表示取不到有效值。
        :type MpAppId: str
        :param _MpPath: 小程序路径
注意：此字段可能返回 null，表示取不到有效值。
        :type MpPath: str
        :param _MpUserName: 小程序原始 id
注意：此字段可能返回 null，表示取不到有效值。
        :type MpUserName: str
        :param _FormInfo: 网银支付提交页面信息
注意：此字段可能返回 null，表示取不到有效值。
        :type FormInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankFormInfo`
        """
        self._QRCodeUrl = None
        self._QRCodeKey = None
        self._Url = None
        self._ExpireTime = None
        self._MpAppId = None
        self._MpPath = None
        self._MpUserName = None
        self._FormInfo = None

    @property
    def QRCodeUrl(self):
        return self._QRCodeUrl

    @QRCodeUrl.setter
    def QRCodeUrl(self, QRCodeUrl):
        self._QRCodeUrl = QRCodeUrl

    @property
    def QRCodeKey(self):
        return self._QRCodeKey

    @QRCodeKey.setter
    def QRCodeKey(self, QRCodeKey):
        self._QRCodeKey = QRCodeKey

    @property
    def Url(self):
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def MpAppId(self):
        return self._MpAppId

    @MpAppId.setter
    def MpAppId(self, MpAppId):
        self._MpAppId = MpAppId

    @property
    def MpPath(self):
        return self._MpPath

    @MpPath.setter
    def MpPath(self, MpPath):
        self._MpPath = MpPath

    @property
    def MpUserName(self):
        return self._MpUserName

    @MpUserName.setter
    def MpUserName(self, MpUserName):
        self._MpUserName = MpUserName

    @property
    def FormInfo(self):
        return self._FormInfo

    @FormInfo.setter
    def FormInfo(self, FormInfo):
        self._FormInfo = FormInfo


    def _deserialize(self, params):
        self._QRCodeUrl = params.get("QRCodeUrl")
        self._QRCodeKey = params.get("QRCodeKey")
        self._Url = params.get("Url")
        self._ExpireTime = params.get("ExpireTime")
        self._MpAppId = params.get("MpAppId")
        self._MpPath = params.get("MpPath")
        self._MpUserName = params.get("MpUserName")
        if params.get("FormInfo") is not None:
            self._FormInfo = OpenBankFormInfo()
            self._FormInfo._deserialize(params.get("FormInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankPayLimitInfo(AbstractModel):
    """云企付-支付限制

    """

    def __init__(self):
        r"""
        :param _PayLimitType: 限制类型
        :type PayLimitType: str
        :param _PayLimitValue: 限制类型值
        :type PayLimitValue: str
        """
        self._PayLimitType = None
        self._PayLimitValue = None

    @property
    def PayLimitType(self):
        return self._PayLimitType

    @PayLimitType.setter
    def PayLimitType(self, PayLimitType):
        self._PayLimitType = PayLimitType

    @property
    def PayLimitValue(self):
        return self._PayLimitValue

    @PayLimitValue.setter
    def PayLimitValue(self, PayLimitValue):
        self._PayLimitValue = PayLimitValue


    def _deserialize(self, params):
        self._PayLimitType = params.get("PayLimitType")
        self._PayLimitValue = params.get("PayLimitValue")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankPayeeInfo(AbstractModel):
    """云企付-收款人信息

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款方唯一标识。
当渠道为TENPAY，付款方式为EBANK_PAYMENT，必填，上送收款方入驻云企付商户ID；
付款方式为OPENBANK_PAYMENT时，非必填，输入外部收款方的标识ID
渠道为WECHAT，付款方式为TRANS_TO_CHANGE时，上送微信OPEN_ID；
        :type PayeeId: str
        :param _BankBranchName: 支行名称。
        :type BankBranchName: str
        :param _BankAccountNumber: 银行账号。渠道为TENPAY，付款方式为OPENBANK_PAYMENT时必选
        :type BankAccountNumber: str
        :param _PayeeName: 收款方名称。
当渠道为TENPAY，付款方式为EBANK_PAYMENT时，上送收款方入驻云企付的商户名称；
渠道为TENPAY，付款方式为OPENBANK_PAYMENT时必选，上送收款方账户名称；
渠道为ALIPAY，付款方式为SAFT_ISV时，收款账户标识类型为ALIPAY_LOGON_ID时必传，上送收款方真实姓名。
渠道为WECHAT，付款方式为TRANS_TO_CHANGE时，上送收款人姓名。
        :type PayeeName: str
        :param _BankBranchId: 联行号。渠道为TENPAY，付款方式为OPENBANK_PAYMENT时必选
        :type BankBranchId: str
        :param _BindSerialNo: 收款方绑卡序列号。
当渠道为TENPAY，付款方式为EBANK_PAYMENT时，必填，上送收款方入驻云企付平台时，下发的绑卡序列号；当渠道为ALIPAY，付款方式为SAFT_ISV时，必填，根据收款账户标识类型上送。
        :type BindSerialNo: str
        :param _AccountType: 收款账户标识类型
BANK_ACCOUNT：绑定银行账户
ACCOUNT_BOOK_ID：电子记账本ID
ALIPAY_USER_ID：支付宝的会员ID
ALIPAY_LOGON_ID：支付宝登录号。
付款方式为SAFT_ISV时，必填。
        :type AccountType: str
        """
        self._PayeeId = None
        self._BankBranchName = None
        self._BankAccountNumber = None
        self._PayeeName = None
        self._BankBranchId = None
        self._BindSerialNo = None
        self._AccountType = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def BankBranchId(self):
        return self._BankBranchId

    @BankBranchId.setter
    def BankBranchId(self, BankBranchId):
        self._BankBranchId = BankBranchId

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def AccountType(self):
        return self._AccountType

    @AccountType.setter
    def AccountType(self, AccountType):
        self._AccountType = AccountType


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._BankBranchName = params.get("BankBranchName")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._PayeeName = params.get("PayeeName")
        self._BankBranchId = params.get("BankBranchId")
        self._BindSerialNo = params.get("BindSerialNo")
        self._AccountType = params.get("AccountType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankPayerInfo(AbstractModel):
    """云企付-付款人信息

    """

    def __init__(self):
        r"""
        :param _PayerId: 付款方唯一标识。当TENPAY时，必填上送
付款方入驻云企付商户ID。
        :type PayerId: str
        :param _PayerName: 付款方名称。当TENPAY上送付款方入驻云企付的商户名称。
        :type PayerName: str
        :param _BindSerialNo: 付款方付款账户标识。
当付款方式为OPENBANK_PAYMENT时，必输表示企业账户ID；当付款方式为SAFT_ISV时，必须上送付款方的渠道电子记账本ID；当付款方式为ONLINEBANK，上送付款方银行编号BankId。
        :type BindSerialNo: str
        :param _AccountType: 付款账户标识类型
BANK_ACCOUNT：绑定银行账户
ACCOUNT_BOOK_ID：电子记账本ID。
当付款方式为SAFT_ISV时，必须上送类型为ACCOUNT_BOOK_ID。
        :type AccountType: str
        :param _BankCardType: 付款卡类型。汇付渠道必填。
DEBIT_CARD：借记卡
CREDIT_CARD：信用卡
        :type BankCardType: str
        """
        self._PayerId = None
        self._PayerName = None
        self._BindSerialNo = None
        self._AccountType = None
        self._BankCardType = None

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def PayerName(self):
        return self._PayerName

    @PayerName.setter
    def PayerName(self, PayerName):
        self._PayerName = PayerName

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def AccountType(self):
        return self._AccountType

    @AccountType.setter
    def AccountType(self, AccountType):
        self._AccountType = AccountType

    @property
    def BankCardType(self):
        return self._BankCardType

    @BankCardType.setter
    def BankCardType(self, BankCardType):
        self._BankCardType = BankCardType


    def _deserialize(self, params):
        self._PayerId = params.get("PayerId")
        self._PayerName = params.get("PayerName")
        self._BindSerialNo = params.get("BindSerialNo")
        self._AccountType = params.get("AccountType")
        self._BankCardType = params.get("BankCardType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankProfitShareInfo(AbstractModel):
    """云企付-分润信息

    """

    def __init__(self):
        r"""
        :param _RecvId: 分润接收方，渠道商户号ID
        :type RecvId: str
        :param _ProfitShareFee: 分润金额，单位分
        :type ProfitShareFee: int
        """
        self._RecvId = None
        self._ProfitShareFee = None

    @property
    def RecvId(self):
        return self._RecvId

    @RecvId.setter
    def RecvId(self, RecvId):
        self._RecvId = RecvId

    @property
    def ProfitShareFee(self):
        return self._ProfitShareFee

    @ProfitShareFee.setter
    def ProfitShareFee(self, ProfitShareFee):
        self._ProfitShareFee = ProfitShareFee


    def _deserialize(self, params):
        self._RecvId = params.get("RecvId")
        self._ProfitShareFee = params.get("ProfitShareFee")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankProfitSharePayeeInfo(AbstractModel):
    """分账收款人信息

    """

    def __init__(self):
        r"""
        :param _AccountName: 收款人账户名称
        :type AccountName: str
        :param _BankName: 银行名称
可大体识别银行就行
        :type BankName: str
        :param _Currency: 账户货币
        :type Currency: str
        :param _Nature: 账户类型。
00:借记卡
01:存折 
02:信用卡 
03:准贷记卡 
04:预付卡费 
05:境外卡
        :type Nature: str
        :param _Country: 账户地区/受益人所在国家。参考附录“国家代码”表——“代码”字段
        :type Country: str
        :param _DepositCountry: 账户开户所在国家
参考附录“国家代码”表——“代码”字段
        :type DepositCountry: str
        :param _ExpireDate: 合作有效期
yyyy-MM-dd
        :type ExpireDate: str
        :param _Flag: 0:个人(对私) 1:公司(对公)
        :type Flag: str
        :param _BankAddress: 开户行地址
账户地区非中国必填，【账户名+开户行地址不可超过114个字符（只允许【英文字母数字空格.,/-()'】），否则可能导致境外银行付款失败】
        :type BankAddress: str
        :param _Address: 客户地址
非中国内地账户的客户地址不能为空
        :type Address: str
        :param _IsOSA: 账户属性
账户开户所在国家为中国则必填。
1-离岸账户 0-在岸账户
        :type IsOSA: str
        :param _Province: 账户省份
参考附录“地区代码”
        :type Province: str
        :param _City: 账户城市
参考附录“地区代码
        :type City: str
        :param _LegalIdNo: 证件号/统一信用证代码
如果country与depositcountry字段都是CHN时，必填
对公账户填统一信用证代码，对私账户填身份证号码
离岸账户非必填
        :type LegalIdNo: str
        :param _Telephone: 手机号。
账户地区是日本则必填
        :type Telephone: str
        :param _BicCode: 参考接口说明。
        :type BicCode: str
        :param _SwiftCode: 参考接口说明。
        :type SwiftCode: str
        :param _Cnaps: 大额支付行号/支付行号
参考接口说明。境外（大额支付行号）参考附录【大额行号】，境内（支付行号）参考附录【支付行号】
        :type Cnaps: str
        :param _TransferBankNo: 中转行号，参考接口说明。
        :type TransferBankNo: str
        :param _Fid: 关联附件。上传的文件ID
        :type Fid: str
        """
        self._AccountName = None
        self._BankName = None
        self._Currency = None
        self._Nature = None
        self._Country = None
        self._DepositCountry = None
        self._ExpireDate = None
        self._Flag = None
        self._BankAddress = None
        self._Address = None
        self._IsOSA = None
        self._Province = None
        self._City = None
        self._LegalIdNo = None
        self._Telephone = None
        self._BicCode = None
        self._SwiftCode = None
        self._Cnaps = None
        self._TransferBankNo = None
        self._Fid = None

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def Nature(self):
        return self._Nature

    @Nature.setter
    def Nature(self, Nature):
        self._Nature = Nature

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def DepositCountry(self):
        return self._DepositCountry

    @DepositCountry.setter
    def DepositCountry(self, DepositCountry):
        self._DepositCountry = DepositCountry

    @property
    def ExpireDate(self):
        return self._ExpireDate

    @ExpireDate.setter
    def ExpireDate(self, ExpireDate):
        self._ExpireDate = ExpireDate

    @property
    def Flag(self):
        return self._Flag

    @Flag.setter
    def Flag(self, Flag):
        self._Flag = Flag

    @property
    def BankAddress(self):
        return self._BankAddress

    @BankAddress.setter
    def BankAddress(self, BankAddress):
        self._BankAddress = BankAddress

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def IsOSA(self):
        return self._IsOSA

    @IsOSA.setter
    def IsOSA(self, IsOSA):
        self._IsOSA = IsOSA

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def LegalIdNo(self):
        return self._LegalIdNo

    @LegalIdNo.setter
    def LegalIdNo(self, LegalIdNo):
        self._LegalIdNo = LegalIdNo

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def BicCode(self):
        return self._BicCode

    @BicCode.setter
    def BicCode(self, BicCode):
        self._BicCode = BicCode

    @property
    def SwiftCode(self):
        return self._SwiftCode

    @SwiftCode.setter
    def SwiftCode(self, SwiftCode):
        self._SwiftCode = SwiftCode

    @property
    def Cnaps(self):
        return self._Cnaps

    @Cnaps.setter
    def Cnaps(self, Cnaps):
        self._Cnaps = Cnaps

    @property
    def TransferBankNo(self):
        return self._TransferBankNo

    @TransferBankNo.setter
    def TransferBankNo(self, TransferBankNo):
        self._TransferBankNo = TransferBankNo

    @property
    def Fid(self):
        return self._Fid

    @Fid.setter
    def Fid(self, Fid):
        self._Fid = Fid


    def _deserialize(self, params):
        self._AccountName = params.get("AccountName")
        self._BankName = params.get("BankName")
        self._Currency = params.get("Currency")
        self._Nature = params.get("Nature")
        self._Country = params.get("Country")
        self._DepositCountry = params.get("DepositCountry")
        self._ExpireDate = params.get("ExpireDate")
        self._Flag = params.get("Flag")
        self._BankAddress = params.get("BankAddress")
        self._Address = params.get("Address")
        self._IsOSA = params.get("IsOSA")
        self._Province = params.get("Province")
        self._City = params.get("City")
        self._LegalIdNo = params.get("LegalIdNo")
        self._Telephone = params.get("Telephone")
        self._BicCode = params.get("BicCode")
        self._SwiftCode = params.get("SwiftCode")
        self._Cnaps = params.get("Cnaps")
        self._TransferBankNo = params.get("TransferBankNo")
        self._Fid = params.get("Fid")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankProfitShareRespInfo(AbstractModel):
    """分账信息结果

    """

    def __init__(self):
        r"""
        :param _RecvId: 接收方企业ID
        :type RecvId: str
        :param _ProfitShareFee: 分润金额（分）
        :type ProfitShareFee: int
        :param _RealProfitShareFee: 实际分账金额
        :type RealProfitShareFee: int
        :param _ProfitShareStatus: 分账状态
        :type ProfitShareStatus: str
        :param _ProfitFinishTime: 分账完成时间
        :type ProfitFinishTime: str
        :param _ProfitShareType: 分账类型
        :type ProfitShareType: int
        """
        self._RecvId = None
        self._ProfitShareFee = None
        self._RealProfitShareFee = None
        self._ProfitShareStatus = None
        self._ProfitFinishTime = None
        self._ProfitShareType = None

    @property
    def RecvId(self):
        return self._RecvId

    @RecvId.setter
    def RecvId(self, RecvId):
        self._RecvId = RecvId

    @property
    def ProfitShareFee(self):
        return self._ProfitShareFee

    @ProfitShareFee.setter
    def ProfitShareFee(self, ProfitShareFee):
        self._ProfitShareFee = ProfitShareFee

    @property
    def RealProfitShareFee(self):
        return self._RealProfitShareFee

    @RealProfitShareFee.setter
    def RealProfitShareFee(self, RealProfitShareFee):
        self._RealProfitShareFee = RealProfitShareFee

    @property
    def ProfitShareStatus(self):
        return self._ProfitShareStatus

    @ProfitShareStatus.setter
    def ProfitShareStatus(self, ProfitShareStatus):
        self._ProfitShareStatus = ProfitShareStatus

    @property
    def ProfitFinishTime(self):
        return self._ProfitFinishTime

    @ProfitFinishTime.setter
    def ProfitFinishTime(self, ProfitFinishTime):
        self._ProfitFinishTime = ProfitFinishTime

    @property
    def ProfitShareType(self):
        return self._ProfitShareType

    @ProfitShareType.setter
    def ProfitShareType(self, ProfitShareType):
        self._ProfitShareType = ProfitShareType


    def _deserialize(self, params):
        self._RecvId = params.get("RecvId")
        self._ProfitShareFee = params.get("ProfitShareFee")
        self._RealProfitShareFee = params.get("RealProfitShareFee")
        self._ProfitShareStatus = params.get("ProfitShareStatus")
        self._ProfitFinishTime = params.get("ProfitFinishTime")
        self._ProfitShareType = params.get("ProfitShareType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankQueryRefundOrderResult(AbstractModel):
    """云企付-退款查询结果

    """

    def __init__(self):
        r"""
        :param _OutRefundId: 外部商户退款单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutRefundId: str
        :param _ChannelRefundId: 渠道退款单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelRefundId: str
        :param _RefundReason: 退款原因
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundReason: str
        :param _RefundAmount: 退款金额，单位分
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundAmount: int
        :param _RealRefundAmount: 实际退款金额，单位分
注意：此字段可能返回 null，表示取不到有效值。
        :type RealRefundAmount: int
        :param _TotalAmount: 原支付订单总金额，单位分
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalAmount: int
        :param _TimeFinish: 退款完成时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TimeFinish: str
        :param _RefundStatus: 退款订单状态
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundStatus: str
        :param _RefundInfo: 退款明细信息
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundInfo: str
        :param _FeeAmount: 退款手续费金额
注意：此字段可能返回 null，表示取不到有效值。
        :type FeeAmount: int
        :param _RefundMessage: 退款返回描述，比如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundMessage: str
        :param _ProfitShareRespInfoList: 分账信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ProfitShareRespInfoList: list of OpenBankProfitShareRespInfo
        """
        self._OutRefundId = None
        self._ChannelRefundId = None
        self._RefundReason = None
        self._RefundAmount = None
        self._RealRefundAmount = None
        self._TotalAmount = None
        self._TimeFinish = None
        self._RefundStatus = None
        self._RefundInfo = None
        self._FeeAmount = None
        self._RefundMessage = None
        self._ProfitShareRespInfoList = None

    @property
    def OutRefundId(self):
        return self._OutRefundId

    @OutRefundId.setter
    def OutRefundId(self, OutRefundId):
        self._OutRefundId = OutRefundId

    @property
    def ChannelRefundId(self):
        return self._ChannelRefundId

    @ChannelRefundId.setter
    def ChannelRefundId(self, ChannelRefundId):
        self._ChannelRefundId = ChannelRefundId

    @property
    def RefundReason(self):
        return self._RefundReason

    @RefundReason.setter
    def RefundReason(self, RefundReason):
        self._RefundReason = RefundReason

    @property
    def RefundAmount(self):
        return self._RefundAmount

    @RefundAmount.setter
    def RefundAmount(self, RefundAmount):
        self._RefundAmount = RefundAmount

    @property
    def RealRefundAmount(self):
        return self._RealRefundAmount

    @RealRefundAmount.setter
    def RealRefundAmount(self, RealRefundAmount):
        self._RealRefundAmount = RealRefundAmount

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def TimeFinish(self):
        return self._TimeFinish

    @TimeFinish.setter
    def TimeFinish(self, TimeFinish):
        self._TimeFinish = TimeFinish

    @property
    def RefundStatus(self):
        return self._RefundStatus

    @RefundStatus.setter
    def RefundStatus(self, RefundStatus):
        self._RefundStatus = RefundStatus

    @property
    def RefundInfo(self):
        return self._RefundInfo

    @RefundInfo.setter
    def RefundInfo(self, RefundInfo):
        self._RefundInfo = RefundInfo

    @property
    def FeeAmount(self):
        return self._FeeAmount

    @FeeAmount.setter
    def FeeAmount(self, FeeAmount):
        self._FeeAmount = FeeAmount

    @property
    def RefundMessage(self):
        return self._RefundMessage

    @RefundMessage.setter
    def RefundMessage(self, RefundMessage):
        self._RefundMessage = RefundMessage

    @property
    def ProfitShareRespInfoList(self):
        return self._ProfitShareRespInfoList

    @ProfitShareRespInfoList.setter
    def ProfitShareRespInfoList(self, ProfitShareRespInfoList):
        self._ProfitShareRespInfoList = ProfitShareRespInfoList


    def _deserialize(self, params):
        self._OutRefundId = params.get("OutRefundId")
        self._ChannelRefundId = params.get("ChannelRefundId")
        self._RefundReason = params.get("RefundReason")
        self._RefundAmount = params.get("RefundAmount")
        self._RealRefundAmount = params.get("RealRefundAmount")
        self._TotalAmount = params.get("TotalAmount")
        self._TimeFinish = params.get("TimeFinish")
        self._RefundStatus = params.get("RefundStatus")
        self._RefundInfo = params.get("RefundInfo")
        self._FeeAmount = params.get("FeeAmount")
        self._RefundMessage = params.get("RefundMessage")
        if params.get("ProfitShareRespInfoList") is not None:
            self._ProfitShareRespInfoList = []
            for item in params.get("ProfitShareRespInfoList"):
                obj = OpenBankProfitShareRespInfo()
                obj._deserialize(item)
                self._ProfitShareRespInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankRechargePayeeInfo(AbstractModel):
    """云企付-充值单收款人信息

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款方标识
收款方类型为电子记账本时，上送渠道电子记账本ID
        :type PayeeId: str
        :param _PayeeIdType: 收款方标识类型
ACCOUNT_BOOK_ID：电子记账本ID
        :type PayeeIdType: str
        :param _PayeeName: 收款方名称
        :type PayeeName: str
        """
        self._PayeeId = None
        self._PayeeIdType = None
        self._PayeeName = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def PayeeIdType(self):
        return self._PayeeIdType

    @PayeeIdType.setter
    def PayeeIdType(self, PayeeIdType):
        self._PayeeIdType = PayeeIdType

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._PayeeIdType = params.get("PayeeIdType")
        self._PayeeName = params.get("PayeeName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankRechargeRedirectInfo(AbstractModel):
    """云企付-充值跳转参数

    """

    def __init__(self):
        r"""
        :param _Url: 跳转URL
注意：此字段可能返回 null，表示取不到有效值。
        :type Url: str
        """
        self._Url = None

    @property
    def Url(self):
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url


    def _deserialize(self, params):
        self._Url = params.get("Url")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankRedirectInfo(AbstractModel):
    """云企付-跳转参数，用于小程序前端跳转

    """

    def __init__(self):
        r"""
        :param _QRCodeUrl: 生成二维码，引导用户扫码
        :type QRCodeUrl: str
        :param _QRCodeKey: 二维码凭证
        :type QRCodeKey: str
        :param _Url: 跳转 URL,用于客户端跳转，订单未支付时返回该参数
注意：此字段可能返回 null，表示取不到有效值。
        :type Url: str
        :param _ExpireTime: 跳转凭证过期时间,yyyy-MM-dd HH:mm:ss
        :type ExpireTime: str
        :param _MpAppId: 小程序 appid
        :type MpAppId: str
        :param _MpPath: 小程序路径
        :type MpPath: str
        :param _MpUserName: 小程序原始 id
        :type MpUserName: str
        :param _FormInfo: 网银支付提交页面信息
注意：此字段可能返回 null，表示取不到有效值。
        :type FormInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankFormInfo`
        """
        self._QRCodeUrl = None
        self._QRCodeKey = None
        self._Url = None
        self._ExpireTime = None
        self._MpAppId = None
        self._MpPath = None
        self._MpUserName = None
        self._FormInfo = None

    @property
    def QRCodeUrl(self):
        return self._QRCodeUrl

    @QRCodeUrl.setter
    def QRCodeUrl(self, QRCodeUrl):
        self._QRCodeUrl = QRCodeUrl

    @property
    def QRCodeKey(self):
        return self._QRCodeKey

    @QRCodeKey.setter
    def QRCodeKey(self, QRCodeKey):
        self._QRCodeKey = QRCodeKey

    @property
    def Url(self):
        return self._Url

    @Url.setter
    def Url(self, Url):
        self._Url = Url

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def MpAppId(self):
        return self._MpAppId

    @MpAppId.setter
    def MpAppId(self, MpAppId):
        self._MpAppId = MpAppId

    @property
    def MpPath(self):
        return self._MpPath

    @MpPath.setter
    def MpPath(self, MpPath):
        self._MpPath = MpPath

    @property
    def MpUserName(self):
        return self._MpUserName

    @MpUserName.setter
    def MpUserName(self, MpUserName):
        self._MpUserName = MpUserName

    @property
    def FormInfo(self):
        return self._FormInfo

    @FormInfo.setter
    def FormInfo(self, FormInfo):
        self._FormInfo = FormInfo


    def _deserialize(self, params):
        self._QRCodeUrl = params.get("QRCodeUrl")
        self._QRCodeKey = params.get("QRCodeKey")
        self._Url = params.get("Url")
        self._ExpireTime = params.get("ExpireTime")
        self._MpAppId = params.get("MpAppId")
        self._MpPath = params.get("MpPath")
        self._MpUserName = params.get("MpUserName")
        if params.get("FormInfo") is not None:
            self._FormInfo = OpenBankFormInfo()
            self._FormInfo._deserialize(params.get("FormInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankRefundOrderApplyResult(AbstractModel):
    """云企付-退款申请结果

    """

    def __init__(self):
        r"""
        :param _ChannelOrderId: 云企付订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelOrderId: str
        :param _ChannelRefundId: 云企付退款流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelRefundId: str
        :param _OutRefundId: 外部商户退款单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutRefundId: str
        :param _OutOrderId: 外部商户订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutOrderId: str
        :param _RefundMessage: 退款返回描述，比如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundMessage: str
        :param _RefundAmount: 退款金额
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundAmount: int
        :param _FeeAmount: 退款手续费金额
注意：此字段可能返回 null，表示取不到有效值。
        :type FeeAmount: int
        :param _RefundStatus: 退款状态
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundStatus: str
        """
        self._ChannelOrderId = None
        self._ChannelRefundId = None
        self._OutRefundId = None
        self._OutOrderId = None
        self._RefundMessage = None
        self._RefundAmount = None
        self._FeeAmount = None
        self._RefundStatus = None

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ChannelRefundId(self):
        return self._ChannelRefundId

    @ChannelRefundId.setter
    def ChannelRefundId(self, ChannelRefundId):
        self._ChannelRefundId = ChannelRefundId

    @property
    def OutRefundId(self):
        return self._OutRefundId

    @OutRefundId.setter
    def OutRefundId(self, OutRefundId):
        self._OutRefundId = OutRefundId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def RefundMessage(self):
        return self._RefundMessage

    @RefundMessage.setter
    def RefundMessage(self, RefundMessage):
        self._RefundMessage = RefundMessage

    @property
    def RefundAmount(self):
        return self._RefundAmount

    @RefundAmount.setter
    def RefundAmount(self, RefundAmount):
        self._RefundAmount = RefundAmount

    @property
    def FeeAmount(self):
        return self._FeeAmount

    @FeeAmount.setter
    def FeeAmount(self, FeeAmount):
        self._FeeAmount = FeeAmount

    @property
    def RefundStatus(self):
        return self._RefundStatus

    @RefundStatus.setter
    def RefundStatus(self, RefundStatus):
        self._RefundStatus = RefundStatus


    def _deserialize(self, params):
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ChannelRefundId = params.get("ChannelRefundId")
        self._OutRefundId = params.get("OutRefundId")
        self._OutOrderId = params.get("OutOrderId")
        self._RefundMessage = params.get("RefundMessage")
        self._RefundAmount = params.get("RefundAmount")
        self._FeeAmount = params.get("FeeAmount")
        self._RefundStatus = params.get("RefundStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankSceneInfo(AbstractModel):
    """云企付-设备信息

    """

    def __init__(self):
        r"""
        :param _PayerClientIp: 用户端实际 ip。汇付渠道必填。
        :type PayerClientIp: str
        :param _PayerUa: 浏览器 User-Agent。
        :type PayerUa: str
        :param _OrderTime: 用户下单时间。若不上送，服务端默认当前时间。
        :type OrderTime: str
        :param _DeviceId: 终端设备号（门店号或收银设备 ID），示例值：POS1:1。
        :type DeviceId: str
        :param _DeviceType: 终端设备类型。MOBILE_BROWSER:手机浏览器，MOBILE_APP:手机应用程序，TABLET:平板；WATCH:手表，PC:电脑PC，OTHER:其他。
汇付渠道必填。
        :type DeviceType: str
        """
        self._PayerClientIp = None
        self._PayerUa = None
        self._OrderTime = None
        self._DeviceId = None
        self._DeviceType = None

    @property
    def PayerClientIp(self):
        return self._PayerClientIp

    @PayerClientIp.setter
    def PayerClientIp(self, PayerClientIp):
        self._PayerClientIp = PayerClientIp

    @property
    def PayerUa(self):
        return self._PayerUa

    @PayerUa.setter
    def PayerUa(self, PayerUa):
        self._PayerUa = PayerUa

    @property
    def OrderTime(self):
        return self._OrderTime

    @OrderTime.setter
    def OrderTime(self, OrderTime):
        self._OrderTime = OrderTime

    @property
    def DeviceId(self):
        return self._DeviceId

    @DeviceId.setter
    def DeviceId(self, DeviceId):
        self._DeviceId = DeviceId

    @property
    def DeviceType(self):
        return self._DeviceType

    @DeviceType.setter
    def DeviceType(self, DeviceType):
        self._DeviceType = DeviceType


    def _deserialize(self, params):
        self._PayerClientIp = params.get("PayerClientIp")
        self._PayerUa = params.get("PayerUa")
        self._OrderTime = params.get("OrderTime")
        self._DeviceId = params.get("DeviceId")
        self._DeviceType = params.get("DeviceType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankSettlementRulesInfo(AbstractModel):
    """云企付-结算规则信息

    """

    def __init__(self):
        r"""
        :param _UnfreezeRule: ONCE：仅单次解冻（默认）
MULTI：多次解冻
        :type UnfreezeRule: str
        :param _RefundRule: ONCE：仅单次退款（默认）
MULTI：多次退款
        :type RefundRule: str
        """
        self._UnfreezeRule = None
        self._RefundRule = None

    @property
    def UnfreezeRule(self):
        return self._UnfreezeRule

    @UnfreezeRule.setter
    def UnfreezeRule(self, UnfreezeRule):
        self._UnfreezeRule = UnfreezeRule

    @property
    def RefundRule(self):
        return self._RefundRule

    @RefundRule.setter
    def RefundRule(self, RefundRule):
        self._RefundRule = RefundRule


    def _deserialize(self, params):
        self._UnfreezeRule = params.get("UnfreezeRule")
        self._RefundRule = params.get("RefundRule")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankShippingInfo(AbstractModel):
    """云企付-邮寄信息

    """

    def __init__(self):
        r"""
        :param _FirstName: 收货人名字
        :type FirstName: str
        :param _LastName: 收货人姓氏
        :type LastName: str
        :param _AddressOne: 收货地址1
        :type AddressOne: str
        :param _AddressTwo: 收货地址2
        :type AddressTwo: str
        :param _City: 收货地址所在城市
        :type City: str
        :param _State: 收货地址所在州，当国家是美国或加拿大时，使用ISO-3166-2:US或ISO -3166-2:CA 中该
国家地区编码标准中的两位字母编码
        :type State: str
        :param _Country: 使用ISO-3166-1标准中的两位字母编码
        :type Country: str
        :param _ZipCode: 收货地址邮编
        :type ZipCode: str
        :param _Phone: 收货联系电话
        :type Phone: str
        """
        self._FirstName = None
        self._LastName = None
        self._AddressOne = None
        self._AddressTwo = None
        self._City = None
        self._State = None
        self._Country = None
        self._ZipCode = None
        self._Phone = None

    @property
    def FirstName(self):
        return self._FirstName

    @FirstName.setter
    def FirstName(self, FirstName):
        self._FirstName = FirstName

    @property
    def LastName(self):
        return self._LastName

    @LastName.setter
    def LastName(self, LastName):
        self._LastName = LastName

    @property
    def AddressOne(self):
        return self._AddressOne

    @AddressOne.setter
    def AddressOne(self, AddressOne):
        self._AddressOne = AddressOne

    @property
    def AddressTwo(self):
        return self._AddressTwo

    @AddressTwo.setter
    def AddressTwo(self, AddressTwo):
        self._AddressTwo = AddressTwo

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def ZipCode(self):
        return self._ZipCode

    @ZipCode.setter
    def ZipCode(self, ZipCode):
        self._ZipCode = ZipCode

    @property
    def Phone(self):
        return self._Phone

    @Phone.setter
    def Phone(self, Phone):
        self._Phone = Phone


    def _deserialize(self, params):
        self._FirstName = params.get("FirstName")
        self._LastName = params.get("LastName")
        self._AddressOne = params.get("AddressOne")
        self._AddressTwo = params.get("AddressTwo")
        self._City = params.get("City")
        self._State = params.get("State")
        self._Country = params.get("Country")
        self._ZipCode = params.get("ZipCode")
        self._Phone = params.get("Phone")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OpenBankStoreInfo(AbstractModel):
    """云企付-门店信息

    """

    def __init__(self):
        r"""
        :param _Name: 门店名称
        :type Name: str
        :param _AreaCode: 地区编码
        :type AreaCode: str
        :param _Address: 详细地址
        :type Address: str
        :param _Id: 门店编号
        :type Id: str
        """
        self._Name = None
        self._AreaCode = None
        self._Address = None
        self._Id = None

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def AreaCode(self):
        return self._AreaCode

    @AreaCode.setter
    def AreaCode(self, AreaCode):
        self._AreaCode = AreaCode

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Id(self):
        return self._Id

    @Id.setter
    def Id(self, Id):
        self._Id = Id


    def _deserialize(self, params):
        self._Name = params.get("Name")
        self._AreaCode = params.get("AreaCode")
        self._Address = params.get("Address")
        self._Id = params.get("Id")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Order(AbstractModel):
    """线下查票-订单信息

    """

    def __init__(self):
        r"""
        :param _AmountHasTax: 含税金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AmountHasTax: float
        :param _Discount: 优惠金额
注意：此字段可能返回 null，表示取不到有效值。
        :type Discount: float
        :param _SellerName: 销方名称
注意：此字段可能返回 null，表示取不到有效值。
        :type SellerName: str
        :param _InvoiceType: 发票类型
注意：此字段可能返回 null，表示取不到有效值。
        :type InvoiceType: int
        :param _Name: 默认“”
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Amount: 支付金额
注意：此字段可能返回 null，表示取不到有效值。
        :type Amount: float
        :param _OrderDate: 下单日期
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderDate: str
        :param _OrderId: 订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _StoreNo: 门店号
注意：此字段可能返回 null，表示取不到有效值。
        :type StoreNo: str
        :param _Items: 明细
注意：此字段可能返回 null，表示取不到有效值。
        :type Items: list of OrderItem
        """
        self._AmountHasTax = None
        self._Discount = None
        self._SellerName = None
        self._InvoiceType = None
        self._Name = None
        self._Amount = None
        self._OrderDate = None
        self._OrderId = None
        self._StoreNo = None
        self._Items = None

    @property
    def AmountHasTax(self):
        return self._AmountHasTax

    @AmountHasTax.setter
    def AmountHasTax(self, AmountHasTax):
        self._AmountHasTax = AmountHasTax

    @property
    def Discount(self):
        return self._Discount

    @Discount.setter
    def Discount(self, Discount):
        self._Discount = Discount

    @property
    def SellerName(self):
        return self._SellerName

    @SellerName.setter
    def SellerName(self, SellerName):
        self._SellerName = SellerName

    @property
    def InvoiceType(self):
        return self._InvoiceType

    @InvoiceType.setter
    def InvoiceType(self, InvoiceType):
        self._InvoiceType = InvoiceType

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Amount(self):
        return self._Amount

    @Amount.setter
    def Amount(self, Amount):
        self._Amount = Amount

    @property
    def OrderDate(self):
        return self._OrderDate

    @OrderDate.setter
    def OrderDate(self, OrderDate):
        self._OrderDate = OrderDate

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def StoreNo(self):
        return self._StoreNo

    @StoreNo.setter
    def StoreNo(self, StoreNo):
        self._StoreNo = StoreNo

    @property
    def Items(self):
        return self._Items

    @Items.setter
    def Items(self, Items):
        self._Items = Items


    def _deserialize(self, params):
        self._AmountHasTax = params.get("AmountHasTax")
        self._Discount = params.get("Discount")
        self._SellerName = params.get("SellerName")
        self._InvoiceType = params.get("InvoiceType")
        self._Name = params.get("Name")
        self._Amount = params.get("Amount")
        self._OrderDate = params.get("OrderDate")
        self._OrderId = params.get("OrderId")
        self._StoreNo = params.get("StoreNo")
        if params.get("Items") is not None:
            self._Items = []
            for item in params.get("Items"):
                obj = OrderItem()
                obj._deserialize(item)
                self._Items.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrderItem(AbstractModel):
    """线下查票-订单明细

    """

    def __init__(self):
        r"""
        :param _AmountHasTax: 明细金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AmountHasTax: float
        :param _Discount: 优惠金额
注意：此字段可能返回 null，表示取不到有效值。
        :type Discount: float
        :param _Name: 商品名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        :param _Models: 型号
注意：此字段可能返回 null，表示取不到有效值。
        :type Models: str
        :param _Total: 数量
注意：此字段可能返回 null，表示取不到有效值。
        :type Total: int
        :param _Unit: 数量单位
注意：此字段可能返回 null，表示取不到有效值。
        :type Unit: str
        :param _Status: 默认“0”
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _Price: 单价
注意：此字段可能返回 null，表示取不到有效值。
        :type Price: float
        :param _TaxCode: 商品编码
注意：此字段可能返回 null，表示取不到有效值。
        :type TaxCode: str
        """
        self._AmountHasTax = None
        self._Discount = None
        self._Name = None
        self._Models = None
        self._Total = None
        self._Unit = None
        self._Status = None
        self._Price = None
        self._TaxCode = None

    @property
    def AmountHasTax(self):
        return self._AmountHasTax

    @AmountHasTax.setter
    def AmountHasTax(self, AmountHasTax):
        self._AmountHasTax = AmountHasTax

    @property
    def Discount(self):
        return self._Discount

    @Discount.setter
    def Discount(self, Discount):
        self._Discount = Discount

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def Models(self):
        return self._Models

    @Models.setter
    def Models(self, Models):
        self._Models = Models

    @property
    def Total(self):
        return self._Total

    @Total.setter
    def Total(self, Total):
        self._Total = Total

    @property
    def Unit(self):
        return self._Unit

    @Unit.setter
    def Unit(self, Unit):
        self._Unit = Unit

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Price(self):
        return self._Price

    @Price.setter
    def Price(self, Price):
        self._Price = Price

    @property
    def TaxCode(self):
        return self._TaxCode

    @TaxCode.setter
    def TaxCode(self, TaxCode):
        self._TaxCode = TaxCode


    def _deserialize(self, params):
        self._AmountHasTax = params.get("AmountHasTax")
        self._Discount = params.get("Discount")
        self._Name = params.get("Name")
        self._Models = params.get("Models")
        self._Total = params.get("Total")
        self._Unit = params.get("Unit")
        self._Status = params.get("Status")
        self._Price = params.get("Price")
        self._TaxCode = params.get("TaxCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrderSummaries(AbstractModel):
    """订单汇总列表

    """

    def __init__(self):
        r"""
        :param _List: 汇总列表
        :type List: list of OrderSummaryResult
        :param _Count: 总数
        :type Count: int
        """
        self._List = None
        self._Count = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = OrderSummaryResult()
                obj._deserialize(item)
                self._List.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrderSummaryResult(AbstractModel):
    """订单汇总结果

    """

    def __init__(self):
        r"""
        :param _SummaryId: 汇总ID
        :type SummaryId: str
        :param _PayeeId: 收款账户ID
        :type PayeeId: str
        :param _Name: 收款账户名称
        :type Name: str
        :param _IncomeType: 收入类型
        :type IncomeType: str
        :param _SummaryAmount: 汇总金额
        :type SummaryAmount: str
        :param _SummaryTime: 汇总日期
        :type SummaryTime: str
        :param _SummaryCount: 汇总记录数量
        :type SummaryCount: int
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        """
        self._SummaryId = None
        self._PayeeId = None
        self._Name = None
        self._IncomeType = None
        self._SummaryAmount = None
        self._SummaryTime = None
        self._SummaryCount = None
        self._OutUserId = None

    @property
    def SummaryId(self):
        return self._SummaryId

    @SummaryId.setter
    def SummaryId(self, SummaryId):
        self._SummaryId = SummaryId

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def SummaryAmount(self):
        return self._SummaryAmount

    @SummaryAmount.setter
    def SummaryAmount(self, SummaryAmount):
        self._SummaryAmount = SummaryAmount

    @property
    def SummaryTime(self):
        return self._SummaryTime

    @SummaryTime.setter
    def SummaryTime(self, SummaryTime):
        self._SummaryTime = SummaryTime

    @property
    def SummaryCount(self):
        return self._SummaryCount

    @SummaryCount.setter
    def SummaryCount(self, SummaryCount):
        self._SummaryCount = SummaryCount

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId


    def _deserialize(self, params):
        self._SummaryId = params.get("SummaryId")
        self._PayeeId = params.get("PayeeId")
        self._Name = params.get("Name")
        self._IncomeType = params.get("IncomeType")
        self._SummaryAmount = params.get("SummaryAmount")
        self._SummaryTime = params.get("SummaryTime")
        self._SummaryCount = params.get("SummaryCount")
        self._OutUserId = params.get("OutUserId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OrganizationInfo(AbstractModel):
    """公司信息

    """

    def __init__(self):
        r"""
        :param _OrganizationName: 公司名称，个体工商户必输
        :type OrganizationName: str
        :param _OrganizationType: 公司证件类型，个体工商户必输，证件类型仅支持73
        :type OrganizationType: str
        :param _OrganizationCode: 公司证件号码，个体工商户必输
        :type OrganizationCode: str
        :param _LegalPersonName: 法人名称，如果SubMchName不是法人，需要另外送入法人信息（企业必输）
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type LegalPersonName: str
        :param _LegalPersonIdType: 法人证件类型，如果SubMchName不是法人，需要另外送入法人信息（企业必输）
        :type LegalPersonIdType: str
        :param _LegalPersonIdCode: 法人证件号码，如果SubMchName不是法人，需要另外送入法人信息（企业必输）
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type LegalPersonIdCode: str
        """
        self._OrganizationName = None
        self._OrganizationType = None
        self._OrganizationCode = None
        self._LegalPersonName = None
        self._LegalPersonIdType = None
        self._LegalPersonIdCode = None

    @property
    def OrganizationName(self):
        return self._OrganizationName

    @OrganizationName.setter
    def OrganizationName(self, OrganizationName):
        self._OrganizationName = OrganizationName

    @property
    def OrganizationType(self):
        return self._OrganizationType

    @OrganizationType.setter
    def OrganizationType(self, OrganizationType):
        self._OrganizationType = OrganizationType

    @property
    def OrganizationCode(self):
        return self._OrganizationCode

    @OrganizationCode.setter
    def OrganizationCode(self, OrganizationCode):
        self._OrganizationCode = OrganizationCode

    @property
    def LegalPersonName(self):
        return self._LegalPersonName

    @LegalPersonName.setter
    def LegalPersonName(self, LegalPersonName):
        self._LegalPersonName = LegalPersonName

    @property
    def LegalPersonIdType(self):
        return self._LegalPersonIdType

    @LegalPersonIdType.setter
    def LegalPersonIdType(self, LegalPersonIdType):
        self._LegalPersonIdType = LegalPersonIdType

    @property
    def LegalPersonIdCode(self):
        return self._LegalPersonIdCode

    @LegalPersonIdCode.setter
    def LegalPersonIdCode(self, LegalPersonIdCode):
        self._LegalPersonIdCode = LegalPersonIdCode


    def _deserialize(self, params):
        self._OrganizationName = params.get("OrganizationName")
        self._OrganizationType = params.get("OrganizationType")
        self._OrganizationCode = params.get("OrganizationCode")
        self._LegalPersonName = params.get("LegalPersonName")
        self._LegalPersonIdType = params.get("LegalPersonIdType")
        self._LegalPersonIdCode = params.get("LegalPersonIdCode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class OutSubMerchantExtensionInfo(AbstractModel):
    """外部子商户扩展信息

    """

    def __init__(self):
        r"""
        :param _RegionCode: 地区代码，国标码
HELIPAY渠道必传
        :type RegionCode: str
        :param _RegisterAddress: 注册地址
        :type RegisterAddress: str
        :param _MailingAddress: 通讯地址
HELIPAY渠道必传
        :type MailingAddress: str
        :param _BusinessAddress: 营业地址/经营地址
        :type BusinessAddress: str
        :param _ServicePhone: 客服电话
        :type ServicePhone: str
        :param _WebSiteUrl: 网站url
        :type WebSiteUrl: str
        :param _EmailAddress: 邮箱地址
        :type EmailAddress: str
        """
        self._RegionCode = None
        self._RegisterAddress = None
        self._MailingAddress = None
        self._BusinessAddress = None
        self._ServicePhone = None
        self._WebSiteUrl = None
        self._EmailAddress = None

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def RegisterAddress(self):
        return self._RegisterAddress

    @RegisterAddress.setter
    def RegisterAddress(self, RegisterAddress):
        self._RegisterAddress = RegisterAddress

    @property
    def MailingAddress(self):
        return self._MailingAddress

    @MailingAddress.setter
    def MailingAddress(self, MailingAddress):
        self._MailingAddress = MailingAddress

    @property
    def BusinessAddress(self):
        return self._BusinessAddress

    @BusinessAddress.setter
    def BusinessAddress(self, BusinessAddress):
        self._BusinessAddress = BusinessAddress

    @property
    def ServicePhone(self):
        return self._ServicePhone

    @ServicePhone.setter
    def ServicePhone(self, ServicePhone):
        self._ServicePhone = ServicePhone

    @property
    def WebSiteUrl(self):
        return self._WebSiteUrl

    @WebSiteUrl.setter
    def WebSiteUrl(self, WebSiteUrl):
        self._WebSiteUrl = WebSiteUrl

    @property
    def EmailAddress(self):
        return self._EmailAddress

    @EmailAddress.setter
    def EmailAddress(self, EmailAddress):
        self._EmailAddress = EmailAddress


    def _deserialize(self, params):
        self._RegionCode = params.get("RegionCode")
        self._RegisterAddress = params.get("RegisterAddress")
        self._MailingAddress = params.get("MailingAddress")
        self._BusinessAddress = params.get("BusinessAddress")
        self._ServicePhone = params.get("ServicePhone")
        self._WebSiteUrl = params.get("WebSiteUrl")
        self._EmailAddress = params.get("EmailAddress")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class Paging(AbstractModel):
    """分页参数

    """

    def __init__(self):
        r"""
        :param _Index: 页码
        :type Index: int
        :param _Count: 页长
        :type Count: int
        """
        self._Index = None
        self._Count = None

    @property
    def Index(self):
        return self._Index

    @Index.setter
    def Index(self, Index):
        self._Index = Index

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        self._Index = params.get("Index")
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayDataResult(AbstractModel):
    """pay支付方式json数据

    """

    def __init__(self):
        r"""
        :param _PaymentTag: 支付标签（唯一性）
        :type PaymentTag: str
        :param _PaymentOptionHide: 添加合同时需要隐藏的选项（多个以小写逗号分开）
        :type PaymentOptionHide: str
        :param _PaymentIcon: 支付方式图片url路径
        :type PaymentIcon: str
        :param _PaymentOptionSix: 合同选项名称6
        :type PaymentOptionSix: str
        :param _PaymentName: 付款方式名称
        :type PaymentName: str
        :param _PaymentOptionSeven: 合同选项名称7
        :type PaymentOptionSeven: str
        :param _PaymentOptionOther: 合同选项名称8
        :type PaymentOptionOther: str
        :param _PaymentOptionTwo: 合同选项名称2
        :type PaymentOptionTwo: str
        :param _PaymentOptionOne: 合同选项名称1
        :type PaymentOptionOne: str
        :param _PaymentDiscountFee: 是否开启智能扣率（1是，0否）
        :type PaymentDiscountFee: str
        :param _PaymentType: 支持的交易类型（多个以小写逗号分开，0现金，1刷卡，2主扫，3被扫，4JSPAY，5预授权）
        :type PaymentType: str
        :param _PaymentOptionFive: 合同选项名称5
        :type PaymentOptionFive: str
        :param _PaymentOptionNine: 合同选项名称9
        :type PaymentOptionNine: str
        :param _PaymentId: 支付方式编号
        :type PaymentId: str
        :param _PaymentOptionThree: 合同选项名称3
        :type PaymentOptionThree: str
        :param _PaymentInternalName: 付款方式名称（内部名称）
        :type PaymentInternalName: str
        :param _PaymentOptionFour: 合同选项名称4
        :type PaymentOptionFour: str
        :param _PaymentOptionTen: 合同选项名称10
        :type PaymentOptionTen: str
        """
        self._PaymentTag = None
        self._PaymentOptionHide = None
        self._PaymentIcon = None
        self._PaymentOptionSix = None
        self._PaymentName = None
        self._PaymentOptionSeven = None
        self._PaymentOptionOther = None
        self._PaymentOptionTwo = None
        self._PaymentOptionOne = None
        self._PaymentDiscountFee = None
        self._PaymentType = None
        self._PaymentOptionFive = None
        self._PaymentOptionNine = None
        self._PaymentId = None
        self._PaymentOptionThree = None
        self._PaymentInternalName = None
        self._PaymentOptionFour = None
        self._PaymentOptionTen = None

    @property
    def PaymentTag(self):
        return self._PaymentTag

    @PaymentTag.setter
    def PaymentTag(self, PaymentTag):
        self._PaymentTag = PaymentTag

    @property
    def PaymentOptionHide(self):
        return self._PaymentOptionHide

    @PaymentOptionHide.setter
    def PaymentOptionHide(self, PaymentOptionHide):
        self._PaymentOptionHide = PaymentOptionHide

    @property
    def PaymentIcon(self):
        return self._PaymentIcon

    @PaymentIcon.setter
    def PaymentIcon(self, PaymentIcon):
        self._PaymentIcon = PaymentIcon

    @property
    def PaymentOptionSix(self):
        return self._PaymentOptionSix

    @PaymentOptionSix.setter
    def PaymentOptionSix(self, PaymentOptionSix):
        self._PaymentOptionSix = PaymentOptionSix

    @property
    def PaymentName(self):
        return self._PaymentName

    @PaymentName.setter
    def PaymentName(self, PaymentName):
        self._PaymentName = PaymentName

    @property
    def PaymentOptionSeven(self):
        return self._PaymentOptionSeven

    @PaymentOptionSeven.setter
    def PaymentOptionSeven(self, PaymentOptionSeven):
        self._PaymentOptionSeven = PaymentOptionSeven

    @property
    def PaymentOptionOther(self):
        return self._PaymentOptionOther

    @PaymentOptionOther.setter
    def PaymentOptionOther(self, PaymentOptionOther):
        self._PaymentOptionOther = PaymentOptionOther

    @property
    def PaymentOptionTwo(self):
        return self._PaymentOptionTwo

    @PaymentOptionTwo.setter
    def PaymentOptionTwo(self, PaymentOptionTwo):
        self._PaymentOptionTwo = PaymentOptionTwo

    @property
    def PaymentOptionOne(self):
        return self._PaymentOptionOne

    @PaymentOptionOne.setter
    def PaymentOptionOne(self, PaymentOptionOne):
        self._PaymentOptionOne = PaymentOptionOne

    @property
    def PaymentDiscountFee(self):
        return self._PaymentDiscountFee

    @PaymentDiscountFee.setter
    def PaymentDiscountFee(self, PaymentDiscountFee):
        self._PaymentDiscountFee = PaymentDiscountFee

    @property
    def PaymentType(self):
        return self._PaymentType

    @PaymentType.setter
    def PaymentType(self, PaymentType):
        self._PaymentType = PaymentType

    @property
    def PaymentOptionFive(self):
        return self._PaymentOptionFive

    @PaymentOptionFive.setter
    def PaymentOptionFive(self, PaymentOptionFive):
        self._PaymentOptionFive = PaymentOptionFive

    @property
    def PaymentOptionNine(self):
        return self._PaymentOptionNine

    @PaymentOptionNine.setter
    def PaymentOptionNine(self, PaymentOptionNine):
        self._PaymentOptionNine = PaymentOptionNine

    @property
    def PaymentId(self):
        return self._PaymentId

    @PaymentId.setter
    def PaymentId(self, PaymentId):
        self._PaymentId = PaymentId

    @property
    def PaymentOptionThree(self):
        return self._PaymentOptionThree

    @PaymentOptionThree.setter
    def PaymentOptionThree(self, PaymentOptionThree):
        self._PaymentOptionThree = PaymentOptionThree

    @property
    def PaymentInternalName(self):
        return self._PaymentInternalName

    @PaymentInternalName.setter
    def PaymentInternalName(self, PaymentInternalName):
        self._PaymentInternalName = PaymentInternalName

    @property
    def PaymentOptionFour(self):
        return self._PaymentOptionFour

    @PaymentOptionFour.setter
    def PaymentOptionFour(self, PaymentOptionFour):
        self._PaymentOptionFour = PaymentOptionFour

    @property
    def PaymentOptionTen(self):
        return self._PaymentOptionTen

    @PaymentOptionTen.setter
    def PaymentOptionTen(self, PaymentOptionTen):
        self._PaymentOptionTen = PaymentOptionTen


    def _deserialize(self, params):
        self._PaymentTag = params.get("PaymentTag")
        self._PaymentOptionHide = params.get("PaymentOptionHide")
        self._PaymentIcon = params.get("PaymentIcon")
        self._PaymentOptionSix = params.get("PaymentOptionSix")
        self._PaymentName = params.get("PaymentName")
        self._PaymentOptionSeven = params.get("PaymentOptionSeven")
        self._PaymentOptionOther = params.get("PaymentOptionOther")
        self._PaymentOptionTwo = params.get("PaymentOptionTwo")
        self._PaymentOptionOne = params.get("PaymentOptionOne")
        self._PaymentDiscountFee = params.get("PaymentDiscountFee")
        self._PaymentType = params.get("PaymentType")
        self._PaymentOptionFive = params.get("PaymentOptionFive")
        self._PaymentOptionNine = params.get("PaymentOptionNine")
        self._PaymentId = params.get("PaymentId")
        self._PaymentOptionThree = params.get("PaymentOptionThree")
        self._PaymentInternalName = params.get("PaymentInternalName")
        self._PaymentOptionFour = params.get("PaymentOptionFour")
        self._PaymentOptionTen = params.get("PaymentOptionTen")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayFeeDataResult(AbstractModel):
    """pay_fee支付方式行业分类费率json数据

    """

    def __init__(self):
        r"""
        :param _OrganizationFee: 机构的分佣扣率扣率
        :type OrganizationFee: str
        :param _PaymentClassificationLimit: 商户手续费封顶值，0为不限封顶
        :type PaymentClassificationLimit: str
        :param _OrganizationFeeType: 机构的分佣扣率类型(1按签约扣率，2按收单收益)
        :type OrganizationFeeType: str
        :param _PaymentClassificationMaxFee: 商户扣率最大值
        :type PaymentClassificationMaxFee: str
        :param _PaymentClassificationMinFee: 商户扣率最小值
        :type PaymentClassificationMinFee: str
        :param _PaymentClassificationId: 行业会类编号
        :type PaymentClassificationId: str
        :param _PaymentClassificationName: 行业分类名称
        :type PaymentClassificationName: str
        """
        self._OrganizationFee = None
        self._PaymentClassificationLimit = None
        self._OrganizationFeeType = None
        self._PaymentClassificationMaxFee = None
        self._PaymentClassificationMinFee = None
        self._PaymentClassificationId = None
        self._PaymentClassificationName = None

    @property
    def OrganizationFee(self):
        return self._OrganizationFee

    @OrganizationFee.setter
    def OrganizationFee(self, OrganizationFee):
        self._OrganizationFee = OrganizationFee

    @property
    def PaymentClassificationLimit(self):
        return self._PaymentClassificationLimit

    @PaymentClassificationLimit.setter
    def PaymentClassificationLimit(self, PaymentClassificationLimit):
        self._PaymentClassificationLimit = PaymentClassificationLimit

    @property
    def OrganizationFeeType(self):
        return self._OrganizationFeeType

    @OrganizationFeeType.setter
    def OrganizationFeeType(self, OrganizationFeeType):
        self._OrganizationFeeType = OrganizationFeeType

    @property
    def PaymentClassificationMaxFee(self):
        return self._PaymentClassificationMaxFee

    @PaymentClassificationMaxFee.setter
    def PaymentClassificationMaxFee(self, PaymentClassificationMaxFee):
        self._PaymentClassificationMaxFee = PaymentClassificationMaxFee

    @property
    def PaymentClassificationMinFee(self):
        return self._PaymentClassificationMinFee

    @PaymentClassificationMinFee.setter
    def PaymentClassificationMinFee(self, PaymentClassificationMinFee):
        self._PaymentClassificationMinFee = PaymentClassificationMinFee

    @property
    def PaymentClassificationId(self):
        return self._PaymentClassificationId

    @PaymentClassificationId.setter
    def PaymentClassificationId(self, PaymentClassificationId):
        self._PaymentClassificationId = PaymentClassificationId

    @property
    def PaymentClassificationName(self):
        return self._PaymentClassificationName

    @PaymentClassificationName.setter
    def PaymentClassificationName(self, PaymentClassificationName):
        self._PaymentClassificationName = PaymentClassificationName


    def _deserialize(self, params):
        self._OrganizationFee = params.get("OrganizationFee")
        self._PaymentClassificationLimit = params.get("PaymentClassificationLimit")
        self._OrganizationFeeType = params.get("OrganizationFeeType")
        self._PaymentClassificationMaxFee = params.get("PaymentClassificationMaxFee")
        self._PaymentClassificationMinFee = params.get("PaymentClassificationMinFee")
        self._PaymentClassificationId = params.get("PaymentClassificationId")
        self._PaymentClassificationName = params.get("PaymentClassificationName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayOrderResult(AbstractModel):
    """订单支付响应对象

    """

    def __init__(self):
        r"""
        :param _OrderNo: 付款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        :param _DeveloperNo: 开发者流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type DeveloperNo: str
        :param _TradeDiscountAmount: 交易优惠金额（免充值券）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeDiscountAmount: str
        :param _PayName: 付款方式名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayName: str
        :param _OrderMerchantId: 商户流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderMerchantId: str
        :param _TradeAccount: 交易帐号（银行卡号、支付宝帐号、微信帐号等，某些收单机构没有此数据）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeAccount: str
        :param _TradeAmount: 实际交易金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeAmount: str
        :param _CurrencySign: 币种签名
注意：此字段可能返回 null，表示取不到有效值。
        :type CurrencySign: str
        :param _TradePayTime: 付款完成时间（以收单机构为准）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradePayTime: str
        :param _ShopOrderId: 门店流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopOrderId: str
        :param _PayTag: 支付标签
注意：此字段可能返回 null，表示取不到有效值。
        :type PayTag: str
        :param _Status: 订单状态（1交易成功，2待支付，4已取消，9等待用户输入密码确认
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _OrderCurrency: 币种代码
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderCurrency: str
        :param _TradeQrcode: 二维码字符串
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeQrcode: str
        :param _WechatAppId: 微信返回调起小程序/原生JS支付的appid参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatAppId: str
        :param _WechatTimeStamp: 微信返回调起小程序/原生JS支付的timeStamp参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatTimeStamp: str
        :param _WechatNonceStr: 微信返回调起小程序/原生JS支付的nonceStr参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatNonceStr: str
        :param _WechatSignType: 微信返回调起小程序/原生JS支付的signType参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatSignType: str
        :param _WechatPackage: 微信返回调起小程序/原生JS支付的package参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatPackage: str
        :param _WechatPaySign: 微信返回调起小程序/原生JS支付的paySign参数
注意：此字段可能返回 null，表示取不到有效值。
        :type WechatPaySign: str
        """
        self._OrderNo = None
        self._DeveloperNo = None
        self._TradeDiscountAmount = None
        self._PayName = None
        self._OrderMerchantId = None
        self._TradeAccount = None
        self._TradeAmount = None
        self._CurrencySign = None
        self._TradePayTime = None
        self._ShopOrderId = None
        self._PayTag = None
        self._Status = None
        self._OrderCurrency = None
        self._TradeQrcode = None
        self._WechatAppId = None
        self._WechatTimeStamp = None
        self._WechatNonceStr = None
        self._WechatSignType = None
        self._WechatPackage = None
        self._WechatPaySign = None

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def TradeDiscountAmount(self):
        return self._TradeDiscountAmount

    @TradeDiscountAmount.setter
    def TradeDiscountAmount(self, TradeDiscountAmount):
        self._TradeDiscountAmount = TradeDiscountAmount

    @property
    def PayName(self):
        return self._PayName

    @PayName.setter
    def PayName(self, PayName):
        self._PayName = PayName

    @property
    def OrderMerchantId(self):
        return self._OrderMerchantId

    @OrderMerchantId.setter
    def OrderMerchantId(self, OrderMerchantId):
        self._OrderMerchantId = OrderMerchantId

    @property
    def TradeAccount(self):
        return self._TradeAccount

    @TradeAccount.setter
    def TradeAccount(self, TradeAccount):
        self._TradeAccount = TradeAccount

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def CurrencySign(self):
        return self._CurrencySign

    @CurrencySign.setter
    def CurrencySign(self, CurrencySign):
        self._CurrencySign = CurrencySign

    @property
    def TradePayTime(self):
        return self._TradePayTime

    @TradePayTime.setter
    def TradePayTime(self, TradePayTime):
        self._TradePayTime = TradePayTime

    @property
    def ShopOrderId(self):
        return self._ShopOrderId

    @ShopOrderId.setter
    def ShopOrderId(self, ShopOrderId):
        self._ShopOrderId = ShopOrderId

    @property
    def PayTag(self):
        return self._PayTag

    @PayTag.setter
    def PayTag(self, PayTag):
        self._PayTag = PayTag

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def OrderCurrency(self):
        return self._OrderCurrency

    @OrderCurrency.setter
    def OrderCurrency(self, OrderCurrency):
        self._OrderCurrency = OrderCurrency

    @property
    def TradeQrcode(self):
        return self._TradeQrcode

    @TradeQrcode.setter
    def TradeQrcode(self, TradeQrcode):
        self._TradeQrcode = TradeQrcode

    @property
    def WechatAppId(self):
        return self._WechatAppId

    @WechatAppId.setter
    def WechatAppId(self, WechatAppId):
        self._WechatAppId = WechatAppId

    @property
    def WechatTimeStamp(self):
        return self._WechatTimeStamp

    @WechatTimeStamp.setter
    def WechatTimeStamp(self, WechatTimeStamp):
        self._WechatTimeStamp = WechatTimeStamp

    @property
    def WechatNonceStr(self):
        return self._WechatNonceStr

    @WechatNonceStr.setter
    def WechatNonceStr(self, WechatNonceStr):
        self._WechatNonceStr = WechatNonceStr

    @property
    def WechatSignType(self):
        return self._WechatSignType

    @WechatSignType.setter
    def WechatSignType(self, WechatSignType):
        self._WechatSignType = WechatSignType

    @property
    def WechatPackage(self):
        return self._WechatPackage

    @WechatPackage.setter
    def WechatPackage(self, WechatPackage):
        self._WechatPackage = WechatPackage

    @property
    def WechatPaySign(self):
        return self._WechatPaySign

    @WechatPaySign.setter
    def WechatPaySign(self, WechatPaySign):
        self._WechatPaySign = WechatPaySign


    def _deserialize(self, params):
        self._OrderNo = params.get("OrderNo")
        self._DeveloperNo = params.get("DeveloperNo")
        self._TradeDiscountAmount = params.get("TradeDiscountAmount")
        self._PayName = params.get("PayName")
        self._OrderMerchantId = params.get("OrderMerchantId")
        self._TradeAccount = params.get("TradeAccount")
        self._TradeAmount = params.get("TradeAmount")
        self._CurrencySign = params.get("CurrencySign")
        self._TradePayTime = params.get("TradePayTime")
        self._ShopOrderId = params.get("ShopOrderId")
        self._PayTag = params.get("PayTag")
        self._Status = params.get("Status")
        self._OrderCurrency = params.get("OrderCurrency")
        self._TradeQrcode = params.get("TradeQrcode")
        self._WechatAppId = params.get("WechatAppId")
        self._WechatTimeStamp = params.get("WechatTimeStamp")
        self._WechatNonceStr = params.get("WechatNonceStr")
        self._WechatSignType = params.get("WechatSignType")
        self._WechatPackage = params.get("WechatPackage")
        self._WechatPaySign = params.get("WechatPaySign")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayRollAuthResult(AbstractModel):
    """微工卡核身结果

    """

    def __init__(self):
        r"""
        :param _AuthFailedReason: 结果为核身失败时的原因描述，仅在失败记录返回，空字符串等同null
注意：此字段可能返回 null，表示取不到有效值。
        :type AuthFailedReason: str
        :param _AuthNumber: 商户系统内部的商家核身单号，要求此参数只能由数字、大小写字母组成，在服务商内部唯一
        :type AuthNumber: str
        :param _AuthScene: 核身渠道，发起核身时的来源渠道，如通过小程序，硬件设备等
FROM_MINI_APP：来自小程序方式核身
FROM_HARDWARE：来自硬件设备方式核身
        :type AuthScene: str
        :param _AuthSource: 核身渠道标识，用于定位渠道具体来源，如果是扫码打卡渠道标识就是具体的小程序appid，若是硬件设备，则是设备的序列号等
        :type AuthSource: str
        :param _AuthStatus: 核身状态
AUTHENTICATE_PROCESSING：核身中
AUTHENTICATE_SUCCESS：核身成功
AUTHENTICATE_FAILED：核身失败
        :type AuthStatus: str
        :param _AuthTime: 核身时间，遵循[rfc3339](https://datatracker.ietf.org/doc/html/rfc3339)标准格式，格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE
        :type AuthTime: str
        :param _CompanyName: 该用户所属的单位名称
        :type CompanyName: str
        :param _MerchantId: 微信服务商商户的商户号，由微信支付生成并下发
        :type MerchantId: str
        :param _OpenId: 用户在商户对应appid下的唯一标识
        :type OpenId: str
        :param _ProjectName: 该项目的名称
        :type ProjectName: str
        :param _SubMerchantId: 微信服务商下特约商户的商户号，由微信支付生成并下发
        :type SubMerchantId: str
        """
        self._AuthFailedReason = None
        self._AuthNumber = None
        self._AuthScene = None
        self._AuthSource = None
        self._AuthStatus = None
        self._AuthTime = None
        self._CompanyName = None
        self._MerchantId = None
        self._OpenId = None
        self._ProjectName = None
        self._SubMerchantId = None

    @property
    def AuthFailedReason(self):
        return self._AuthFailedReason

    @AuthFailedReason.setter
    def AuthFailedReason(self, AuthFailedReason):
        self._AuthFailedReason = AuthFailedReason

    @property
    def AuthNumber(self):
        return self._AuthNumber

    @AuthNumber.setter
    def AuthNumber(self, AuthNumber):
        self._AuthNumber = AuthNumber

    @property
    def AuthScene(self):
        return self._AuthScene

    @AuthScene.setter
    def AuthScene(self, AuthScene):
        self._AuthScene = AuthScene

    @property
    def AuthSource(self):
        return self._AuthSource

    @AuthSource.setter
    def AuthSource(self, AuthSource):
        self._AuthSource = AuthSource

    @property
    def AuthStatus(self):
        return self._AuthStatus

    @AuthStatus.setter
    def AuthStatus(self, AuthStatus):
        self._AuthStatus = AuthStatus

    @property
    def AuthTime(self):
        return self._AuthTime

    @AuthTime.setter
    def AuthTime(self, AuthTime):
        self._AuthTime = AuthTime

    @property
    def CompanyName(self):
        return self._CompanyName

    @CompanyName.setter
    def CompanyName(self, CompanyName):
        self._CompanyName = CompanyName

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def SubMerchantId(self):
        return self._SubMerchantId

    @SubMerchantId.setter
    def SubMerchantId(self, SubMerchantId):
        self._SubMerchantId = SubMerchantId


    def _deserialize(self, params):
        self._AuthFailedReason = params.get("AuthFailedReason")
        self._AuthNumber = params.get("AuthNumber")
        self._AuthScene = params.get("AuthScene")
        self._AuthSource = params.get("AuthSource")
        self._AuthStatus = params.get("AuthStatus")
        self._AuthTime = params.get("AuthTime")
        self._CompanyName = params.get("CompanyName")
        self._MerchantId = params.get("MerchantId")
        self._OpenId = params.get("OpenId")
        self._ProjectName = params.get("ProjectName")
        self._SubMerchantId = params.get("SubMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeAccountBalanceResult(AbstractModel):
    """账户余额信息

    """

    def __init__(self):
        r"""
        :param _AccountId: 账户ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountId: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
注意：此字段可能返回 null，表示取不到有效值。
        :type IncomeType: int
        :param _Balance: 总余额
注意：此字段可能返回 null，表示取不到有效值。
        :type Balance: str
        :param _SystemFreezeBalance: 系统冻结余额
注意：此字段可能返回 null，表示取不到有效值。
        :type SystemFreezeBalance: str
        :param _ManualFreezeBalance: 人工冻结余额
注意：此字段可能返回 null，表示取不到有效值。
        :type ManualFreezeBalance: str
        :param _PayableBalance: 可提现余额
注意：此字段可能返回 null，表示取不到有效值。
        :type PayableBalance: str
        :param _PaidBalance: 已提现余额
注意：此字段可能返回 null，表示取不到有效值。
        :type PaidBalance: str
        :param _InPayBalance: 提现中余额
注意：此字段可能返回 null，表示取不到有效值。
        :type InPayBalance: str
        :param _SumSettlementAmount: 累计结算金额
注意：此字段可能返回 null，表示取不到有效值。
        :type SumSettlementAmount: str
        :param _PaidIncomeTax: 已缴个税
注意：此字段可能返回 null，表示取不到有效值。
        :type PaidIncomeTax: str
        :param _InPayIncomeTax: 提现中个税
注意：此字段可能返回 null，表示取不到有效值。
        :type InPayIncomeTax: str
        :param _PaidValueAddedTax: 已缴增值税
注意：此字段可能返回 null，表示取不到有效值。
        :type PaidValueAddedTax: str
        :param _InPayValueAddedTax: 提现中增值税
注意：此字段可能返回 null，表示取不到有效值。
        :type InPayValueAddedTax: str
        :param _PaidAttachTax: 已缴附加税
注意：此字段可能返回 null，表示取不到有效值。
        :type PaidAttachTax: str
        :param _InPayAttachTax: 提现中附加税
注意：此字段可能返回 null，表示取不到有效值。
        :type InPayAttachTax: str
        """
        self._AccountId = None
        self._IncomeType = None
        self._Balance = None
        self._SystemFreezeBalance = None
        self._ManualFreezeBalance = None
        self._PayableBalance = None
        self._PaidBalance = None
        self._InPayBalance = None
        self._SumSettlementAmount = None
        self._PaidIncomeTax = None
        self._InPayIncomeTax = None
        self._PaidValueAddedTax = None
        self._InPayValueAddedTax = None
        self._PaidAttachTax = None
        self._InPayAttachTax = None

    @property
    def AccountId(self):
        return self._AccountId

    @AccountId.setter
    def AccountId(self, AccountId):
        self._AccountId = AccountId

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def Balance(self):
        return self._Balance

    @Balance.setter
    def Balance(self, Balance):
        self._Balance = Balance

    @property
    def SystemFreezeBalance(self):
        return self._SystemFreezeBalance

    @SystemFreezeBalance.setter
    def SystemFreezeBalance(self, SystemFreezeBalance):
        self._SystemFreezeBalance = SystemFreezeBalance

    @property
    def ManualFreezeBalance(self):
        return self._ManualFreezeBalance

    @ManualFreezeBalance.setter
    def ManualFreezeBalance(self, ManualFreezeBalance):
        self._ManualFreezeBalance = ManualFreezeBalance

    @property
    def PayableBalance(self):
        return self._PayableBalance

    @PayableBalance.setter
    def PayableBalance(self, PayableBalance):
        self._PayableBalance = PayableBalance

    @property
    def PaidBalance(self):
        return self._PaidBalance

    @PaidBalance.setter
    def PaidBalance(self, PaidBalance):
        self._PaidBalance = PaidBalance

    @property
    def InPayBalance(self):
        return self._InPayBalance

    @InPayBalance.setter
    def InPayBalance(self, InPayBalance):
        self._InPayBalance = InPayBalance

    @property
    def SumSettlementAmount(self):
        return self._SumSettlementAmount

    @SumSettlementAmount.setter
    def SumSettlementAmount(self, SumSettlementAmount):
        self._SumSettlementAmount = SumSettlementAmount

    @property
    def PaidIncomeTax(self):
        return self._PaidIncomeTax

    @PaidIncomeTax.setter
    def PaidIncomeTax(self, PaidIncomeTax):
        self._PaidIncomeTax = PaidIncomeTax

    @property
    def InPayIncomeTax(self):
        return self._InPayIncomeTax

    @InPayIncomeTax.setter
    def InPayIncomeTax(self, InPayIncomeTax):
        self._InPayIncomeTax = InPayIncomeTax

    @property
    def PaidValueAddedTax(self):
        return self._PaidValueAddedTax

    @PaidValueAddedTax.setter
    def PaidValueAddedTax(self, PaidValueAddedTax):
        self._PaidValueAddedTax = PaidValueAddedTax

    @property
    def InPayValueAddedTax(self):
        return self._InPayValueAddedTax

    @InPayValueAddedTax.setter
    def InPayValueAddedTax(self, InPayValueAddedTax):
        self._InPayValueAddedTax = InPayValueAddedTax

    @property
    def PaidAttachTax(self):
        return self._PaidAttachTax

    @PaidAttachTax.setter
    def PaidAttachTax(self, PaidAttachTax):
        self._PaidAttachTax = PaidAttachTax

    @property
    def InPayAttachTax(self):
        return self._InPayAttachTax

    @InPayAttachTax.setter
    def InPayAttachTax(self, InPayAttachTax):
        self._InPayAttachTax = InPayAttachTax


    def _deserialize(self, params):
        self._AccountId = params.get("AccountId")
        self._IncomeType = params.get("IncomeType")
        self._Balance = params.get("Balance")
        self._SystemFreezeBalance = params.get("SystemFreezeBalance")
        self._ManualFreezeBalance = params.get("ManualFreezeBalance")
        self._PayableBalance = params.get("PayableBalance")
        self._PaidBalance = params.get("PaidBalance")
        self._InPayBalance = params.get("InPayBalance")
        self._SumSettlementAmount = params.get("SumSettlementAmount")
        self._PaidIncomeTax = params.get("PaidIncomeTax")
        self._InPayIncomeTax = params.get("InPayIncomeTax")
        self._PaidValueAddedTax = params.get("PaidValueAddedTax")
        self._InPayValueAddedTax = params.get("InPayValueAddedTax")
        self._PaidAttachTax = params.get("PaidAttachTax")
        self._InPayAttachTax = params.get("InPayAttachTax")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeAccountInfoResult(AbstractModel):
    """账户信息结果

    """

    def __init__(self):
        r"""
        :param _AccountId: 账户ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountId: str
        :param _AccountName: 账户名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountName: str
        :param _Remark: 备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _CreateTime: 创建时间
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _UserInfo: 用户信息
注意：此字段可能返回 null，表示取不到有效值。
        :type UserInfo: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountUserInfo`
        :param _PropertyInfo: 属性信息
注意：此字段可能返回 null，表示取不到有效值。
        :type PropertyInfo: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountPropertyInfo`
        """
        self._AccountId = None
        self._AccountName = None
        self._Remark = None
        self._CreateTime = None
        self._UserInfo = None
        self._PropertyInfo = None

    @property
    def AccountId(self):
        return self._AccountId

    @AccountId.setter
    def AccountId(self, AccountId):
        self._AccountId = AccountId

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UserInfo(self):
        return self._UserInfo

    @UserInfo.setter
    def UserInfo(self, UserInfo):
        self._UserInfo = UserInfo

    @property
    def PropertyInfo(self):
        return self._PropertyInfo

    @PropertyInfo.setter
    def PropertyInfo(self, PropertyInfo):
        self._PropertyInfo = PropertyInfo


    def _deserialize(self, params):
        self._AccountId = params.get("AccountId")
        self._AccountName = params.get("AccountName")
        self._Remark = params.get("Remark")
        self._CreateTime = params.get("CreateTime")
        if params.get("UserInfo") is not None:
            self._UserInfo = PayeeAccountUserInfo()
            self._UserInfo._deserialize(params.get("UserInfo"))
        if params.get("PropertyInfo") is not None:
            self._PropertyInfo = PayeeAccountPropertyInfo()
            self._PropertyInfo._deserialize(params.get("PropertyInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeAccountInfos(AbstractModel):
    """账户信息列表

    """

    def __init__(self):
        r"""
        :param _List: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of PayeeAccountInfoResult
        :param _Count: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        """
        self._List = None
        self._Count = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = PayeeAccountInfoResult()
                obj._deserialize(item)
                self._List.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeAccountPropertyInfo(AbstractModel):
    """账户属性信息

    """

    def __init__(self):
        r"""
        :param _SettleRightStatus: 结算权益状态
ENABLE:启用
DISABLE:停用
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleRightStatus: str
        :param _PaymentRightStatus: 付款权益状态
ENABLE:启用
DISABLE:停用
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentRightStatus: str
        """
        self._SettleRightStatus = None
        self._PaymentRightStatus = None

    @property
    def SettleRightStatus(self):
        return self._SettleRightStatus

    @SettleRightStatus.setter
    def SettleRightStatus(self, SettleRightStatus):
        self._SettleRightStatus = SettleRightStatus

    @property
    def PaymentRightStatus(self):
        return self._PaymentRightStatus

    @PaymentRightStatus.setter
    def PaymentRightStatus(self, PaymentRightStatus):
        self._PaymentRightStatus = PaymentRightStatus


    def _deserialize(self, params):
        self._SettleRightStatus = params.get("SettleRightStatus")
        self._PaymentRightStatus = params.get("PaymentRightStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeAccountUserInfo(AbstractModel):
    """账户用户信息

    """

    def __init__(self):
        r"""
        :param _OutUserId: 外部用户ID
注意：此字段可能返回 null，表示取不到有效值。
        :type OutUserId: str
        :param _UserType: 用户类型
0:B端用户
1:C端用户
注意：此字段可能返回 null，表示取不到有效值。
        :type UserType: int
        :param _IdType: 证件类型
0:身份证
1:社会信用代码
注意：此字段可能返回 null，表示取不到有效值。
        :type IdType: int
        :param _IdNo: 证件号
注意：此字段可能返回 null，表示取不到有效值。
        :type IdNo: str
        :param _Name: 姓名
注意：此字段可能返回 null，表示取不到有效值。
        :type Name: str
        """
        self._OutUserId = None
        self._UserType = None
        self._IdType = None
        self._IdNo = None
        self._Name = None

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name


    def _deserialize(self, params):
        self._OutUserId = params.get("OutUserId")
        self._UserType = params.get("UserType")
        self._IdType = params.get("IdType")
        self._IdNo = params.get("IdNo")
        self._Name = params.get("Name")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeFundingAccountResult(AbstractModel):
    """收款用户资金账户信息

    """

    def __init__(self):
        r"""
        :param _FundingAccountBindSerialNo: 资金账户ID
        :type FundingAccountBindSerialNo: str
        """
        self._FundingAccountBindSerialNo = None

    @property
    def FundingAccountBindSerialNo(self):
        return self._FundingAccountBindSerialNo

    @FundingAccountBindSerialNo.setter
    def FundingAccountBindSerialNo(self, FundingAccountBindSerialNo):
        self._FundingAccountBindSerialNo = FundingAccountBindSerialNo


    def _deserialize(self, params):
        self._FundingAccountBindSerialNo = params.get("FundingAccountBindSerialNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeInfoResult(AbstractModel):
    """收款用户信息结果

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 用户外部业务ID
        :type OutUserId: str
        :param _Name: 姓名
        :type Name: str
        :param _IdType: 证件类型
0:身份证
1:社会信用代码
        :type IdType: int
        :param _IdNo: 证件号
        :type IdNo: str
        :param _ServiceProviderId: 服务商ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceProviderId: str
        :param _Remark: 备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._PayeeId = None
        self._OutUserId = None
        self._Name = None
        self._IdType = None
        self._IdNo = None
        self._ServiceProviderId = None
        self._Remark = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def Name(self):
        return self._Name

    @Name.setter
    def Name(self, Name):
        self._Name = Name

    @property
    def IdType(self):
        return self._IdType

    @IdType.setter
    def IdType(self, IdType):
        self._IdType = IdType

    @property
    def IdNo(self):
        return self._IdNo

    @IdNo.setter
    def IdNo(self, IdNo):
        self._IdNo = IdNo

    @property
    def ServiceProviderId(self):
        return self._ServiceProviderId

    @ServiceProviderId.setter
    def ServiceProviderId(self, ServiceProviderId):
        self._ServiceProviderId = ServiceProviderId

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        self._Name = params.get("Name")
        self._IdType = params.get("IdType")
        self._IdNo = params.get("IdNo")
        self._ServiceProviderId = params.get("ServiceProviderId")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeTaxInfo(AbstractModel):
    """计税信息

    """

    def __init__(self):
        r"""
        :param _TaxTemplateInfoList: 计税模板列表
        :type TaxTemplateInfoList: list of PayeeTaxTemplateInfo
        :param _TaxpayerIdNo: 纳税人识别号
        :type TaxpayerIdNo: str
        :param _TaxEntityType: 纳税主体类型
NATURAL:自然人
NON_NATURAL:非自然人
        :type TaxEntityType: str
        :param _TaxServiceProviderId: 财税服务商ID
        :type TaxServiceProviderId: str
        """
        self._TaxTemplateInfoList = None
        self._TaxpayerIdNo = None
        self._TaxEntityType = None
        self._TaxServiceProviderId = None

    @property
    def TaxTemplateInfoList(self):
        return self._TaxTemplateInfoList

    @TaxTemplateInfoList.setter
    def TaxTemplateInfoList(self, TaxTemplateInfoList):
        self._TaxTemplateInfoList = TaxTemplateInfoList

    @property
    def TaxpayerIdNo(self):
        return self._TaxpayerIdNo

    @TaxpayerIdNo.setter
    def TaxpayerIdNo(self, TaxpayerIdNo):
        self._TaxpayerIdNo = TaxpayerIdNo

    @property
    def TaxEntityType(self):
        return self._TaxEntityType

    @TaxEntityType.setter
    def TaxEntityType(self, TaxEntityType):
        self._TaxEntityType = TaxEntityType

    @property
    def TaxServiceProviderId(self):
        return self._TaxServiceProviderId

    @TaxServiceProviderId.setter
    def TaxServiceProviderId(self, TaxServiceProviderId):
        self._TaxServiceProviderId = TaxServiceProviderId


    def _deserialize(self, params):
        if params.get("TaxTemplateInfoList") is not None:
            self._TaxTemplateInfoList = []
            for item in params.get("TaxTemplateInfoList"):
                obj = PayeeTaxTemplateInfo()
                obj._deserialize(item)
                self._TaxTemplateInfoList.append(obj)
        self._TaxpayerIdNo = params.get("TaxpayerIdNo")
        self._TaxEntityType = params.get("TaxEntityType")
        self._TaxServiceProviderId = params.get("TaxServiceProviderId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PayeeTaxTemplateInfo(AbstractModel):
    """收款用户计税模板信息

    """

    def __init__(self):
        r"""
        :param _IncomeType: 收入类型
LABOR: 劳务所得
OCCASION: 偶然所得
        :type IncomeType: str
        :param _TaxTemplateId: 计税模板ID
        :type TaxTemplateId: str
        """
        self._IncomeType = None
        self._TaxTemplateId = None

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def TaxTemplateId(self):
        return self._TaxTemplateId

    @TaxTemplateId.setter
    def TaxTemplateId(self, TaxTemplateId):
        self._TaxTemplateId = TaxTemplateId


    def _deserialize(self, params):
        self._IncomeType = params.get("IncomeType")
        self._TaxTemplateId = params.get("TaxTemplateId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PaymentOrderResult(AbstractModel):
    """付款订单结果

    """

    def __init__(self):
        r"""
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _AmountAfterTax: 税后金额
        :type AmountAfterTax: str
        :param _Tax: 税金
        :type Tax: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _InitiateTime: 发起时间
        :type InitiateTime: str
        :param _FinishTime: 完成时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FinishTime: str
        :param _Status: 状态
ACCEPTED:已受理
ACCOUNTED:已记账
PAYING:付款中
PAYED:完成付款渠道调用
SUCCEED:已成功
FAILED:已失败
        :type Status: str
        :param _StatusDesc: 状态描述
        :type StatusDesc: str
        :param _Remark: 提现备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        :param _ChannelOrderId: 渠道支付订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelOrderId: str
        :param _Vat: 增值税
注意：此字段可能返回 null，表示取不到有效值。
        :type Vat: str
        :param _IndividualIncomeTax: 个人所得税
注意：此字段可能返回 null，表示取不到有效值。
        :type IndividualIncomeTax: str
        :param _AdditionalTaxSum: 附加税总税额
注意：此字段可能返回 null，表示取不到有效值。
        :type AdditionalTaxSum: str
        :param _AdditionalTaxItem: 附加税税项。格式为JSON格式
注意：此字段可能返回 null，表示取不到有效值。
        :type AdditionalTaxItem: str
        :param _FailReason: 失败原因。当Status为FAILED时，改字段为失败的原因。
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _FundingAccountSubType: 资金账户字类型: WECHATPAY_ACCOUNT 微信零钱, BANK_ACCOUNT 银行卡
注意：此字段可能返回 null，表示取不到有效值。
        :type FundingAccountSubType: str
        """
        self._IncomeType = None
        self._AmountBeforeTax = None
        self._AmountAfterTax = None
        self._Tax = None
        self._OutOrderId = None
        self._OrderId = None
        self._InitiateTime = None
        self._FinishTime = None
        self._Status = None
        self._StatusDesc = None
        self._Remark = None
        self._PayeeId = None
        self._OutUserId = None
        self._ChannelOrderId = None
        self._Vat = None
        self._IndividualIncomeTax = None
        self._AdditionalTaxSum = None
        self._AdditionalTaxItem = None
        self._FailReason = None
        self._FundingAccountSubType = None

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def AmountAfterTax(self):
        return self._AmountAfterTax

    @AmountAfterTax.setter
    def AmountAfterTax(self, AmountAfterTax):
        self._AmountAfterTax = AmountAfterTax

    @property
    def Tax(self):
        return self._Tax

    @Tax.setter
    def Tax(self, Tax):
        self._Tax = Tax

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def InitiateTime(self):
        return self._InitiateTime

    @InitiateTime.setter
    def InitiateTime(self, InitiateTime):
        self._InitiateTime = InitiateTime

    @property
    def FinishTime(self):
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def Vat(self):
        return self._Vat

    @Vat.setter
    def Vat(self, Vat):
        self._Vat = Vat

    @property
    def IndividualIncomeTax(self):
        return self._IndividualIncomeTax

    @IndividualIncomeTax.setter
    def IndividualIncomeTax(self, IndividualIncomeTax):
        self._IndividualIncomeTax = IndividualIncomeTax

    @property
    def AdditionalTaxSum(self):
        return self._AdditionalTaxSum

    @AdditionalTaxSum.setter
    def AdditionalTaxSum(self, AdditionalTaxSum):
        self._AdditionalTaxSum = AdditionalTaxSum

    @property
    def AdditionalTaxItem(self):
        return self._AdditionalTaxItem

    @AdditionalTaxItem.setter
    def AdditionalTaxItem(self, AdditionalTaxItem):
        self._AdditionalTaxItem = AdditionalTaxItem

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def FundingAccountSubType(self):
        return self._FundingAccountSubType

    @FundingAccountSubType.setter
    def FundingAccountSubType(self, FundingAccountSubType):
        self._FundingAccountSubType = FundingAccountSubType


    def _deserialize(self, params):
        self._IncomeType = params.get("IncomeType")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._AmountAfterTax = params.get("AmountAfterTax")
        self._Tax = params.get("Tax")
        self._OutOrderId = params.get("OutOrderId")
        self._OrderId = params.get("OrderId")
        self._InitiateTime = params.get("InitiateTime")
        self._FinishTime = params.get("FinishTime")
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._Remark = params.get("Remark")
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._Vat = params.get("Vat")
        self._IndividualIncomeTax = params.get("IndividualIncomeTax")
        self._AdditionalTaxSum = params.get("AdditionalTaxSum")
        self._AdditionalTaxItem = params.get("AdditionalTaxItem")
        self._FailReason = params.get("FailReason")
        self._FundingAccountSubType = params.get("FundingAccountSubType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PaymentOrderStatusResult(AbstractModel):
    """付款订单状态结果

    """

    def __init__(self):
        r"""
        :param _Status: 状态
ACCEPTED:已受理
ACCOUNTED:已记账
PAYING:付款中
PAYED:完成付款渠道调用
SUCCEED:已成功
FAILED:已失败
        :type Status: str
        :param _StatusDesc: 状态描述
        :type StatusDesc: str
        :param _FailReason: 失败原因。当Status为FAILED时，改字段为失败的原因。
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        """
        self._Status = None
        self._StatusDesc = None
        self._FailReason = None

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason


    def _deserialize(self, params):
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._FailReason = params.get("FailReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PaymentOrders(AbstractModel):
    """付款订单列表

    """

    def __init__(self):
        r"""
        :param _List: 列表
        :type List: list of PaymentOrderResult
        :param _Count: 总数
        :type Count: int
        """
        self._List = None
        self._Count = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = PaymentOrderResult()
                obj._deserialize(item)
                self._List.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class PlatformAccountBalanceResult(AbstractModel):
    """平台账户余额信息

    """

    def __init__(self):
        r"""
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
注意：此字段可能返回 null，表示取不到有效值。
        :type IncomeType: str
        :param _Balance: 总余额
注意：此字段可能返回 null，表示取不到有效值。
        :type Balance: str
        :param _SystemFreezeBalance: 系统冻结余额
注意：此字段可能返回 null，表示取不到有效值。
        :type SystemFreezeBalance: str
        :param _ManualFreezeBalance: 人工冻结余额
注意：此字段可能返回 null，表示取不到有效值。
        :type ManualFreezeBalance: str
        :param _PayableBalance: 可提现余额
注意：此字段可能返回 null，表示取不到有效值。
        :type PayableBalance: str
        :param _InPayBalance: 提现中余额
注意：此字段可能返回 null，表示取不到有效值。
        :type InPayBalance: str
        """
        self._IncomeType = None
        self._Balance = None
        self._SystemFreezeBalance = None
        self._ManualFreezeBalance = None
        self._PayableBalance = None
        self._InPayBalance = None

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def Balance(self):
        return self._Balance

    @Balance.setter
    def Balance(self, Balance):
        self._Balance = Balance

    @property
    def SystemFreezeBalance(self):
        return self._SystemFreezeBalance

    @SystemFreezeBalance.setter
    def SystemFreezeBalance(self, SystemFreezeBalance):
        self._SystemFreezeBalance = SystemFreezeBalance

    @property
    def ManualFreezeBalance(self):
        return self._ManualFreezeBalance

    @ManualFreezeBalance.setter
    def ManualFreezeBalance(self, ManualFreezeBalance):
        self._ManualFreezeBalance = ManualFreezeBalance

    @property
    def PayableBalance(self):
        return self._PayableBalance

    @PayableBalance.setter
    def PayableBalance(self, PayableBalance):
        self._PayableBalance = PayableBalance

    @property
    def InPayBalance(self):
        return self._InPayBalance

    @InPayBalance.setter
    def InPayBalance(self, InPayBalance):
        self._InPayBalance = InPayBalance


    def _deserialize(self, params):
        self._IncomeType = params.get("IncomeType")
        self._Balance = params.get("Balance")
        self._SystemFreezeBalance = params.get("SystemFreezeBalance")
        self._ManualFreezeBalance = params.get("ManualFreezeBalance")
        self._PayableBalance = params.get("PayableBalance")
        self._InPayBalance = params.get("InPayBalance")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAcctBindingRequest(AbstractModel):
    """QueryAcctBinding请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _MidasSecretId: 由平台客服提供的计费密钥Id
        :type MidasSecretId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._EncryptType = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAcctBindingResponse(AbstractModel):
    """QueryAcctBinding返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalCount: 总行数
        :type TotalCount: int
        :param _BankCardItems: 银行卡信息列表
        :type BankCardItems: list of BankCardItem
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalCount = None
        self._BankCardItems = None
        self._RequestId = None

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def BankCardItems(self):
        return self._BankCardItems

    @BankCardItems.setter
    def BankCardItems(self, BankCardItems):
        self._BankCardItems = BankCardItems

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalCount = params.get("TotalCount")
        if params.get("BankCardItems") is not None:
            self._BankCardItems = []
            for item in params.get("BankCardItems"):
                obj = BankCardItem()
                obj._deserialize(item)
                self._BankCardItems.append(obj)
        self._RequestId = params.get("RequestId")


class QueryAcctInfoListRequest(AbstractModel):
    """QueryAcctInfoList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _QueryAcctBeginTime: 查询开始时间(以开户时间为准)
        :type QueryAcctBeginTime: str
        :param _QueryAcctEndTime: 查询结束时间(以开户时间为准)
        :type QueryAcctEndTime: str
        :param _PageOffset: 分页号,  起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照开户时间的先后
        :type PageOffset: str
        :param _MidasSecretId: 由平台客服提供的计费密钥Id
        :type MidasSecretId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._QueryAcctBeginTime = None
        self._QueryAcctEndTime = None
        self._PageOffset = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._EncryptType = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def QueryAcctBeginTime(self):
        return self._QueryAcctBeginTime

    @QueryAcctBeginTime.setter
    def QueryAcctBeginTime(self, QueryAcctBeginTime):
        self._QueryAcctBeginTime = QueryAcctBeginTime

    @property
    def QueryAcctEndTime(self):
        return self._QueryAcctEndTime

    @QueryAcctEndTime.setter
    def QueryAcctEndTime(self, QueryAcctEndTime):
        self._QueryAcctEndTime = QueryAcctEndTime

    @property
    def PageOffset(self):
        return self._PageOffset

    @PageOffset.setter
    def PageOffset(self, PageOffset):
        self._PageOffset = PageOffset

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._QueryAcctBeginTime = params.get("QueryAcctBeginTime")
        self._QueryAcctEndTime = params.get("QueryAcctEndTime")
        self._PageOffset = params.get("PageOffset")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAcctInfoListResponse(AbstractModel):
    """QueryAcctInfoList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ResultCount: 本次交易返回查询结果记录数
        :type ResultCount: int
        :param _TotalCount: 符合业务查询条件的记录总数
        :type TotalCount: int
        :param _QueryAcctItems: 查询结果项 [object,object]
        :type QueryAcctItems: list of QueryAcctItem
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ResultCount = None
        self._TotalCount = None
        self._QueryAcctItems = None
        self._RequestId = None

    @property
    def ResultCount(self):
        return self._ResultCount

    @ResultCount.setter
    def ResultCount(self, ResultCount):
        self._ResultCount = ResultCount

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def QueryAcctItems(self):
        return self._QueryAcctItems

    @QueryAcctItems.setter
    def QueryAcctItems(self, QueryAcctItems):
        self._QueryAcctItems = QueryAcctItems

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ResultCount = params.get("ResultCount")
        self._TotalCount = params.get("TotalCount")
        if params.get("QueryAcctItems") is not None:
            self._QueryAcctItems = []
            for item in params.get("QueryAcctItems"):
                obj = QueryAcctItem()
                obj._deserialize(item)
                self._QueryAcctItems.append(obj)
        self._RequestId = params.get("RequestId")


class QueryAcctInfoRequest(AbstractModel):
    """QueryAcctInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫平台分配的支付MidasAppId
        :type MidasAppId: str
        :param _SubMchId: 业务平台的子商户Id，唯一
        :type SubMchId: str
        :param _MidasSecretId: 由平台客服提供的计费密钥Id
        :type MidasSecretId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._SubMchId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._EncryptType = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubMchId = params.get("SubMchId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAcctInfoResponse(AbstractModel):
    """QueryAcctInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubMchName: 子商户名称
        :type SubMchName: str
        :param _SubMchType: 子商户类型：
个人: personal
企业：enterprise
缺省： enterprise
        :type SubMchType: str
        :param _ShortName: 不填则默认子商户名称
        :type ShortName: str
        :param _Address: 子商户地址
        :type Address: str
        :param _Contact: 子商户联系人子商户联系人
<敏感信息>
        :type Contact: str
        :param _Mobile: 联系人手机号
<敏感信息>
        :type Mobile: str
        :param _Email: 邮箱 
<敏感信息>
        :type Email: str
        :param _SubMchId: 子商户id
        :type SubMchId: str
        :param _SubAcctNo: 子账户
        :type SubAcctNo: str
        :param _SubMerchantMemberType: 子商户会员类型：
general:普通子账户
merchant:商户子账户
缺省： general
注意：此字段可能返回 null，表示取不到有效值。
        :type SubMerchantMemberType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._SubAppId = None
        self._SubMchName = None
        self._SubMchType = None
        self._ShortName = None
        self._Address = None
        self._Contact = None
        self._Mobile = None
        self._Email = None
        self._SubMchId = None
        self._SubAcctNo = None
        self._SubMerchantMemberType = None
        self._RequestId = None

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubMchName(self):
        return self._SubMchName

    @SubMchName.setter
    def SubMchName(self, SubMchName):
        self._SubMchName = SubMchName

    @property
    def SubMchType(self):
        return self._SubMchType

    @SubMchType.setter
    def SubMchType(self, SubMchType):
        self._SubMchType = SubMchType

    @property
    def ShortName(self):
        return self._ShortName

    @ShortName.setter
    def ShortName(self, ShortName):
        self._ShortName = ShortName

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def SubMerchantMemberType(self):
        return self._SubMerchantMemberType

    @SubMerchantMemberType.setter
    def SubMerchantMemberType(self, SubMerchantMemberType):
        self._SubMerchantMemberType = SubMerchantMemberType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._SubAppId = params.get("SubAppId")
        self._SubMchName = params.get("SubMchName")
        self._SubMchType = params.get("SubMchType")
        self._ShortName = params.get("ShortName")
        self._Address = params.get("Address")
        self._Contact = params.get("Contact")
        self._Mobile = params.get("Mobile")
        self._Email = params.get("Email")
        self._SubMchId = params.get("SubMchId")
        self._SubAcctNo = params.get("SubAcctNo")
        self._SubMerchantMemberType = params.get("SubMerchantMemberType")
        self._RequestId = params.get("RequestId")


class QueryAcctItem(AbstractModel):
    """查询账户列表接口

    """

    def __init__(self):
        r"""
        :param _SubMchType: 子商户类型：
个人: personal
企业：enterprise
缺省： enterprise
        :type SubMchType: str
        :param _SubMchName: 子商户名称
        :type SubMchName: str
        :param _SubAcctNo: 子账号
        :type SubAcctNo: str
        :param _ShortName: 不填则默认子商户名称
        :type ShortName: str
        :param _SubMchId: 业务平台的子商户Id，唯一
        :type SubMchId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _Contact: 子商户联系人
<敏感信息>
        :type Contact: str
        :param _Address: 子商户地址
        :type Address: str
        :param _Mobile: 联系人手机号
<敏感信息>
        :type Mobile: str
        :param _Email: 邮箱 
<敏感信息>
        :type Email: str
        :param _SubMerchantMemberType: 子商户会员类型：
general:普通子账户
merchant:商户子账户
缺省： general
注意：此字段可能返回 null，表示取不到有效值。
        :type SubMerchantMemberType: str
        """
        self._SubMchType = None
        self._SubMchName = None
        self._SubAcctNo = None
        self._ShortName = None
        self._SubMchId = None
        self._SubAppId = None
        self._Contact = None
        self._Address = None
        self._Mobile = None
        self._Email = None
        self._SubMerchantMemberType = None

    @property
    def SubMchType(self):
        return self._SubMchType

    @SubMchType.setter
    def SubMchType(self, SubMchType):
        self._SubMchType = SubMchType

    @property
    def SubMchName(self):
        return self._SubMchName

    @SubMchName.setter
    def SubMchName(self, SubMchName):
        self._SubMchName = SubMchName

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def ShortName(self):
        return self._ShortName

    @ShortName.setter
    def ShortName(self, ShortName):
        self._ShortName = ShortName

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile

    @property
    def Email(self):
        return self._Email

    @Email.setter
    def Email(self, Email):
        self._Email = Email

    @property
    def SubMerchantMemberType(self):
        return self._SubMerchantMemberType

    @SubMerchantMemberType.setter
    def SubMerchantMemberType(self, SubMerchantMemberType):
        self._SubMerchantMemberType = SubMerchantMemberType


    def _deserialize(self, params):
        self._SubMchType = params.get("SubMchType")
        self._SubMchName = params.get("SubMchName")
        self._SubAcctNo = params.get("SubAcctNo")
        self._ShortName = params.get("ShortName")
        self._SubMchId = params.get("SubMchId")
        self._SubAppId = params.get("SubAppId")
        self._Contact = params.get("Contact")
        self._Address = params.get("Address")
        self._Mobile = params.get("Mobile")
        self._Email = params.get("Email")
        self._SubMerchantMemberType = params.get("SubMerchantMemberType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAgentStatementsRequest(AbstractModel):
    """QueryAgentStatements请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Date: 结算单日期，月结算单填每月1日
        :type Date: str
        :param _Type: 日结算单:daily
月结算单:monthly
        :type Type: str
        """
        self._Date = None
        self._Type = None

    @property
    def Date(self):
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type


    def _deserialize(self, params):
        self._Date = params.get("Date")
        self._Type = params.get("Type")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAgentStatementsResponse(AbstractModel):
    """QueryAgentStatements返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileUrl: 文件下载链接
注意：此字段可能返回 null，表示取不到有效值。
        :type FileUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileUrl = None
        self._RequestId = None

    @property
    def FileUrl(self):
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FileUrl = params.get("FileUrl")
        self._RequestId = params.get("RequestId")


class QueryAgentTaxPaymentBatchRequest(AbstractModel):
    """QueryAgentTaxPaymentBatch请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BatchNum: 批次号
        :type BatchNum: int
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._BatchNum = None
        self._Profile = None

    @property
    def BatchNum(self):
        return self._BatchNum

    @BatchNum.setter
    def BatchNum(self, BatchNum):
        self._BatchNum = BatchNum

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._BatchNum = params.get("BatchNum")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAgentTaxPaymentBatchResponse(AbstractModel):
    """QueryAgentTaxPaymentBatch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AgentTaxPaymentBatch: 代理商完税证明批次信息
        :type AgentTaxPaymentBatch: :class:`tencentcloud.cpdp.v20190820.models.AgentTaxPaymentBatch`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AgentTaxPaymentBatch = None
        self._RequestId = None

    @property
    def AgentTaxPaymentBatch(self):
        return self._AgentTaxPaymentBatch

    @AgentTaxPaymentBatch.setter
    def AgentTaxPaymentBatch(self, AgentTaxPaymentBatch):
        self._AgentTaxPaymentBatch = AgentTaxPaymentBatch

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AgentTaxPaymentBatch") is not None:
            self._AgentTaxPaymentBatch = AgentTaxPaymentBatch()
            self._AgentTaxPaymentBatch._deserialize(params.get("AgentTaxPaymentBatch"))
        self._RequestId = params.get("RequestId")


class QueryAnchorContractInfoRequest(AbstractModel):
    """QueryAnchorContractInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BeginTime: 起始时间，格式为yyyy-MM-dd
        :type BeginTime: str
        :param _EndTime: 起始时间，格式为yyyy-MM-dd
        :type EndTime: str
        """
        self._BeginTime = None
        self._EndTime = None

    @property
    def BeginTime(self):
        return self._BeginTime

    @BeginTime.setter
    def BeginTime(self, BeginTime):
        self._BeginTime = BeginTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime


    def _deserialize(self, params):
        self._BeginTime = params.get("BeginTime")
        self._EndTime = params.get("EndTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAnchorContractInfoResponse(AbstractModel):
    """QueryAnchorContractInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorContractInfoList: 签约主播数据
        :type AnchorContractInfoList: list of AnchorContractInfo
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._AnchorContractInfoList = None
        self._RequestId = None

    @property
    def AnchorContractInfoList(self):
        return self._AnchorContractInfoList

    @AnchorContractInfoList.setter
    def AnchorContractInfoList(self, AnchorContractInfoList):
        self._AnchorContractInfoList = AnchorContractInfoList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("AnchorContractInfoList") is not None:
            self._AnchorContractInfoList = []
            for item in params.get("AnchorContractInfoList"):
                obj = AnchorContractInfo()
                obj._deserialize(item)
                self._AnchorContractInfoList.append(obj)
        self._RequestId = params.get("RequestId")


class QueryApplicationMaterialRequest(AbstractModel):
    """QueryApplicationMaterial请求参数结构体

    """

    def __init__(self):
        r"""
        :param _DeclareId: 申报流水号
        :type DeclareId: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._DeclareId = None
        self._Profile = None

    @property
    def DeclareId(self):
        return self._DeclareId

    @DeclareId.setter
    def DeclareId(self, DeclareId):
        self._DeclareId = DeclareId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._DeclareId = params.get("DeclareId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryApplicationMaterialResponse(AbstractModel):
    """QueryApplicationMaterial返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 成功申报材料查询结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryDeclareResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryDeclareResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryAssignmentRequest(AbstractModel):
    """QueryAssignment请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播ID
        :type AnchorId: str
        """
        self._AnchorId = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryAssignmentResponse(AbstractModel):
    """QueryAssignment返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMsg: 响应消息
        :type ErrMsg: str
        :param _Result: 返回响应
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AssignmentData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        if params.get("Result") is not None:
            self._Result = AssignmentData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryBalanceRequest(AbstractModel):
    """QueryBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _QueryFlag: 2：普通会员子账号
3：功能子账号
        :type QueryFlag: str
        :param _PageOffset: 起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后
        :type PageOffset: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._QueryFlag = None
        self._PageOffset = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def QueryFlag(self):
        return self._QueryFlag

    @QueryFlag.setter
    def QueryFlag(self, QueryFlag):
        self._QueryFlag = QueryFlag

    @property
    def PageOffset(self):
        return self._PageOffset

    @PageOffset.setter
    def PageOffset(self, PageOffset):
        self._PageOffset = PageOffset

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._QueryFlag = params.get("QueryFlag")
        self._PageOffset = params.get("PageOffset")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBalanceResponse(AbstractModel):
    """QueryBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ResultCount: 本次交易返回查询结果记录数
        :type ResultCount: str
        :param _StartRecordOffset: 起始记录号
        :type StartRecordOffset: str
        :param _EndFlag: 结束标志
        :type EndFlag: str
        :param _TotalCount: 符合业务查询条件的记录总数
        :type TotalCount: str
        :param _QueryItems: 查询结果项
        :type QueryItems: list of QueryItem
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ResultCount = None
        self._StartRecordOffset = None
        self._EndFlag = None
        self._TotalCount = None
        self._QueryItems = None
        self._RequestId = None

    @property
    def ResultCount(self):
        return self._ResultCount

    @ResultCount.setter
    def ResultCount(self, ResultCount):
        self._ResultCount = ResultCount

    @property
    def StartRecordOffset(self):
        return self._StartRecordOffset

    @StartRecordOffset.setter
    def StartRecordOffset(self, StartRecordOffset):
        self._StartRecordOffset = StartRecordOffset

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def QueryItems(self):
        return self._QueryItems

    @QueryItems.setter
    def QueryItems(self, QueryItems):
        self._QueryItems = QueryItems

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ResultCount = params.get("ResultCount")
        self._StartRecordOffset = params.get("StartRecordOffset")
        self._EndFlag = params.get("EndFlag")
        self._TotalCount = params.get("TotalCount")
        if params.get("QueryItems") is not None:
            self._QueryItems = []
            for item in params.get("QueryItems"):
                obj = QueryItem()
                obj._deserialize(item)
                self._QueryItems.append(obj)
        self._RequestId = params.get("RequestId")


class QueryBankClearRequest(AbstractModel):
    """QueryBankClear请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1: 全部; 2: 指定时间段）
        :type FunctionFlag: str
        :param _PageNum: STRING (10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _StartDate: STRING(8)，开始日期（若是指定时间段查询，则必输，当查询全部时，不起作用。格式: 20190101）
        :type StartDate: str
        :param _EndDate: STRING(8)，终止日期（若是指定时间段查询，则必输，当查询全部时，不起作用。格式：20190101）
        :type EndDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._PageNum = None
        self._StartDate = None
        self._EndDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._PageNum = params.get("PageNum")
        self._StartDate = params.get("StartDate")
        self._EndDate = params.get("EndDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBankClearResponse(AbstractModel):
    """QueryBankClear返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING (10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0: 否; 1: 是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING (10)，符合业务查询条件的记录总数（重复次数, 一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of ClearItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = ClearItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryBankTransactionDetailsRequest(AbstractModel):
    """QueryBankTransactionDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1: 当日; 2: 历史）
        :type FunctionFlag: str
        :param _SubAcctNo: STRING(50)，见证子帐户的帐号
        :type SubAcctNo: str
        :param _QueryFlag: STRING(4)，查询标志（1: 全部; 2: 转出; 3: 转入 ）
        :type QueryFlag: str
        :param _PageNum: STRING(10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _StartDate: STRING(8)，开始日期（若是历史查询，则必输，当日查询时，不起作用。格式：20190101）
        :type StartDate: str
        :param _EndDate: STRING(8)，终止日期（若是历史查询，则必输，当日查询时，不起作用。格式：20190101）
        :type EndDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._SubAcctNo = None
        self._QueryFlag = None
        self._PageNum = None
        self._StartDate = None
        self._EndDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def QueryFlag(self):
        return self._QueryFlag

    @QueryFlag.setter
    def QueryFlag(self, QueryFlag):
        self._QueryFlag = QueryFlag

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._SubAcctNo = params.get("SubAcctNo")
        self._QueryFlag = params.get("QueryFlag")
        self._PageNum = params.get("PageNum")
        self._StartDate = params.get("StartDate")
        self._EndDate = params.get("EndDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBankTransactionDetailsResponse(AbstractModel):
    """QueryBankTransactionDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING(10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0: 否; 1: 是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING(10)，符合业务查询条件的记录总数（重复次数，一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of TransactionItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = TransactionItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryBankWithdrawCashDetailsRequest(AbstractModel):
    """QueryBankWithdrawCashDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1: 当日; 2: 历史）
        :type FunctionFlag: str
        :param _SubAcctNo: STRING(50)，见证子帐户的帐号
        :type SubAcctNo: str
        :param _QueryFlag: STRING(4)，查询标志（2: 提现; 3: 清分）
        :type QueryFlag: str
        :param _PageNum: STRING(10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _BeginDate: STRING(8)，开始日期（若是历史查询，则必输，当日查询时，不起作用。格式：20190101）
        :type BeginDate: str
        :param _EndDate: STRING(8)，结束日期（若是历史查询，则必输，当日查询时，不起作用。格式：20190101）
        :type EndDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._SubAcctNo = None
        self._QueryFlag = None
        self._PageNum = None
        self._BeginDate = None
        self._EndDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def QueryFlag(self):
        return self._QueryFlag

    @QueryFlag.setter
    def QueryFlag(self, QueryFlag):
        self._QueryFlag = QueryFlag

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def BeginDate(self):
        return self._BeginDate

    @BeginDate.setter
    def BeginDate(self, BeginDate):
        self._BeginDate = BeginDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._SubAcctNo = params.get("SubAcctNo")
        self._QueryFlag = params.get("QueryFlag")
        self._PageNum = params.get("PageNum")
        self._BeginDate = params.get("BeginDate")
        self._EndDate = params.get("EndDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBankWithdrawCashDetailsResponse(AbstractModel):
    """QueryBankWithdrawCashDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING(10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0:否; 1:是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING(10)，符合业务查询条件的记录总数（重复次数，一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of WithdrawItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = WithdrawItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryBatchPaymentResultData(AbstractModel):
    """QueryBatchPaymentResult接口返回响应

    """

    def __init__(self):
        r"""
        :param _BatchId: 批次号
注意：此字段可能返回 null，表示取不到有效值。
        :type BatchId: str
        :param _TotalAmount: 批次总额
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalAmount: int
        :param _TotalCount: 批次总量
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _ReqReserved: 批次预留字段
注意：此字段可能返回 null，表示取不到有效值。
        :type ReqReserved: str
        :param _Remark: 批次备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _TransferType: 渠道类型
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferType: int
        :param _TransferInfoList: 转账明细
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferInfoList: list of QueryBatchPaymentResultDataInfo
        """
        self._BatchId = None
        self._TotalAmount = None
        self._TotalCount = None
        self._ReqReserved = None
        self._Remark = None
        self._TransferType = None
        self._TransferInfoList = None

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def ReqReserved(self):
        return self._ReqReserved

    @ReqReserved.setter
    def ReqReserved(self, ReqReserved):
        self._ReqReserved = ReqReserved

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def TransferInfoList(self):
        return self._TransferInfoList

    @TransferInfoList.setter
    def TransferInfoList(self, TransferInfoList):
        self._TransferInfoList = TransferInfoList


    def _deserialize(self, params):
        self._BatchId = params.get("BatchId")
        self._TotalAmount = params.get("TotalAmount")
        self._TotalCount = params.get("TotalCount")
        self._ReqReserved = params.get("ReqReserved")
        self._Remark = params.get("Remark")
        self._TransferType = params.get("TransferType")
        if params.get("TransferInfoList") is not None:
            self._TransferInfoList = []
            for item in params.get("TransferInfoList"):
                obj = QueryBatchPaymentResultDataInfo()
                obj._deserialize(item)
                self._TransferInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBatchPaymentResultDataInfo(AbstractModel):
    """QueryBatchPaymentResultData复杂类型中的TransferInfoList

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _AgentId: 代理商ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentId: str
        :param _AgentName: 代理商名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        :param _Status: 交易状态。
0 处理中  
1 预占成功 
2 交易成功 
3 交易失败 
4 未知渠道异常 
5 预占额度失败
6 提交成功
7 提交失败
8 订单重复提交
99 未知系统异常
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: int
        :param _StatusDesc: 状态描述
注意：此字段可能返回 null，表示取不到有效值。
        :type StatusDesc: str
        :param _TransferAmount: 转账金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferAmount: int
        """
        self._OrderId = None
        self._AgentId = None
        self._AgentName = None
        self._Status = None
        self._StatusDesc = None
        self._TransferAmount = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._TransferAmount = params.get("TransferAmount")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBatchPaymentResultRequest(AbstractModel):
    """QueryBatchPaymentResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BatchId: 批次号
        :type BatchId: str
        """
        self._BatchId = None

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId


    def _deserialize(self, params):
        self._BatchId = params.get("BatchId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBatchPaymentResultResponse(AbstractModel):
    """QueryBatchPaymentResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 返回响应
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryBatchPaymentResultData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryBatchPaymentResultData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryBillDownloadURLData(AbstractModel):
    """智能代发-单笔代发转账对账单返回数据

    """

    def __init__(self):
        r"""
        :param _BillDownloadURL: 统一对账单下载链接
注意：此字段可能返回 null，表示取不到有效值。
        :type BillDownloadURL: str
        :param _OriginalBillDownloadURL: 渠道原始对账单下载链接
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalBillDownloadURL: str
        """
        self._BillDownloadURL = None
        self._OriginalBillDownloadURL = None

    @property
    def BillDownloadURL(self):
        return self._BillDownloadURL

    @BillDownloadURL.setter
    def BillDownloadURL(self, BillDownloadURL):
        self._BillDownloadURL = BillDownloadURL

    @property
    def OriginalBillDownloadURL(self):
        return self._OriginalBillDownloadURL

    @OriginalBillDownloadURL.setter
    def OriginalBillDownloadURL(self, OriginalBillDownloadURL):
        self._OriginalBillDownloadURL = OriginalBillDownloadURL


    def _deserialize(self, params):
        self._BillDownloadURL = params.get("BillDownloadURL")
        self._OriginalBillDownloadURL = params.get("OriginalBillDownloadURL")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBillDownloadURLRequest(AbstractModel):
    """QueryBillDownloadURL请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TransferType: 代发类型：
1、 微信企业付款 
2、 支付宝转账 
3、 平安银企直联代发转账
        :type TransferType: int
        :param _BillDate: 账单日期，格式yyyy-MM-dd
        :type BillDate: str
        """
        self._MerchantId = None
        self._TransferType = None
        self._BillDate = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TransferType = params.get("TransferType")
        self._BillDate = params.get("BillDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryBillDownloadURLResponse(AbstractModel):
    """QueryBillDownloadURL返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功
        :type ErrCode: str
        :param _ErrMessage: 响应消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryBillDownloadURLData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryBillDownloadURLData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryCityCodeRequest(AbstractModel):
    """QueryCityCode请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCityCodeResponse(AbstractModel):
    """QueryCityCode返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询城市编码响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of CityCodeResult
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = CityCodeResult()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryCloudChannelDataRequest(AbstractModel):
    """QueryCloudChannelData请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _OutOrderNo: 业务订单号，外部订单号
        :type OutOrderNo: str
        :param _ExternalChannelDataType: 数据类型
PAYMENT:支付
        :type ExternalChannelDataType: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        :param _SubAppId: 子应用ID
        :type SubAppId: str
        :param _ChannelOrderId: 渠道订单号
        :type ChannelOrderId: str
        :param _Channel: 渠道名称，指定渠道查询
wechat:微信支付
        :type Channel: str
        """
        self._MidasAppId = None
        self._OutOrderNo = None
        self._ExternalChannelDataType = None
        self._MidasEnvironment = None
        self._SubAppId = None
        self._ChannelOrderId = None
        self._Channel = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def OutOrderNo(self):
        return self._OutOrderNo

    @OutOrderNo.setter
    def OutOrderNo(self, OutOrderNo):
        self._OutOrderNo = OutOrderNo

    @property
    def ExternalChannelDataType(self):
        return self._ExternalChannelDataType

    @ExternalChannelDataType.setter
    def ExternalChannelDataType(self, ExternalChannelDataType):
        self._ExternalChannelDataType = ExternalChannelDataType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._OutOrderNo = params.get("OutOrderNo")
        self._ExternalChannelDataType = params.get("ExternalChannelDataType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._SubAppId = params.get("SubAppId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._Channel = params.get("Channel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCloudChannelDataResponse(AbstractModel):
    """QueryCloudChannelData返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OutOrderNo: 外部订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutOrderNo: str
        :param _ChannelOrderId: 渠道订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelOrderId: str
        :param _ExternalChannelDataType: 第三方渠道数据类型
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalChannelDataType: str
        :param _Channel: 渠道名称
注意：此字段可能返回 null，表示取不到有效值。
        :type Channel: str
        :param _ExternalChannelDataList: 第三方渠道数据列表
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalChannelDataList: list of CloudExternalChannelData
        :param _SubAppId: 子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAppId: str
        :param _AppId: 米大师分配的支付主MidasAppId
注意：此字段可能返回 null，表示取不到有效值。
        :type AppId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OutOrderNo = None
        self._ChannelOrderId = None
        self._ExternalChannelDataType = None
        self._Channel = None
        self._ExternalChannelDataList = None
        self._SubAppId = None
        self._AppId = None
        self._RequestId = None

    @property
    def OutOrderNo(self):
        return self._OutOrderNo

    @OutOrderNo.setter
    def OutOrderNo(self, OutOrderNo):
        self._OutOrderNo = OutOrderNo

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ExternalChannelDataType(self):
        return self._ExternalChannelDataType

    @ExternalChannelDataType.setter
    def ExternalChannelDataType(self, ExternalChannelDataType):
        self._ExternalChannelDataType = ExternalChannelDataType

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def ExternalChannelDataList(self):
        return self._ExternalChannelDataList

    @ExternalChannelDataList.setter
    def ExternalChannelDataList(self, ExternalChannelDataList):
        self._ExternalChannelDataList = ExternalChannelDataList

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def AppId(self):
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._OutOrderNo = params.get("OutOrderNo")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ExternalChannelDataType = params.get("ExternalChannelDataType")
        self._Channel = params.get("Channel")
        if params.get("ExternalChannelDataList") is not None:
            self._ExternalChannelDataList = []
            for item in params.get("ExternalChannelDataList"):
                obj = CloudExternalChannelData()
                obj._deserialize(item)
                self._ExternalChannelDataList.append(obj)
        self._SubAppId = params.get("SubAppId")
        self._AppId = params.get("AppId")
        self._RequestId = params.get("RequestId")


class QueryCloudOrderRequest(AbstractModel):
    """QueryCloudOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户Id，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _Type: 查询类型
by_order:根据订单号查订单
        :type Type: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        :param _OutTradeNo: 开发者的主订单号
        :type OutTradeNo: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._Type = None
        self._MidasEnvironment = None
        self._OutTradeNo = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._Type = params.get("Type")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._OutTradeNo = params.get("OutTradeNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCloudOrderResponse(AbstractModel):
    """QueryCloudOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalNum: 订单数量
        :type TotalNum: int
        :param _OrderList: 订单列表
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderList: list of CloudOrderReturn
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalNum = None
        self._OrderList = None
        self._RequestId = None

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def OrderList(self):
        return self._OrderList

    @OrderList.setter
    def OrderList(self, OrderList):
        self._OrderList = OrderList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalNum = params.get("TotalNum")
        if params.get("OrderList") is not None:
            self._OrderList = []
            for item in params.get("OrderList"):
                obj = CloudOrderReturn()
                obj._deserialize(item)
                self._OrderList.append(obj)
        self._RequestId = params.get("RequestId")


class QueryCloudRefundOrderRequest(AbstractModel):
    """QueryCloudRefundOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户Id，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _RefundId: 退款订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type RefundId: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._RefundId = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._RefundId = params.get("RefundId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCloudRefundOrderResponse(AbstractModel):
    """QueryCloudRefundOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _OutTradeNo: 该笔退款订单对应的UnifiedOrder下单时传入的OutTradeNo
        :type OutTradeNo: str
        :param _ChannelExternalOrderId: 该笔退款订单对应的支付成功后支付机构返回的支付订单号
        :type ChannelExternalOrderId: str
        :param _ChannelExternalRefundId: 该笔退款订单退款后支付机构返回的退款单号
        :type ChannelExternalRefundId: str
        :param _ChannelOrderId: 内部请求微信支付、银行等支付机构的订单号
        :type ChannelOrderId: str
        :param _RefundId: 请求退款时传的退款ID后查询退款时传的RefundId
        :type RefundId: str
        :param _UsedRefundId: 被使用的RefundId，业务可忽略该字段
        :type UsedRefundId: str
        :param _TotalRefundAmt: 退款总金额
        :type TotalRefundAmt: int
        :param _CurrencyType: ISO货币代码
        :type CurrencyType: str
        :param _State: 退款状态码，退款提交成功后返回
1:退款中
2:退款成功
3:退款失败
        :type State: str
        :param _SubRefundList: 子单退款信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type SubRefundList: list of CloudSubRefundItem
        :param _Metadata: 透传字段，退款成功回调透传给应用，用于开发者透传自定义内容
        :type Metadata: str
        :param _AppId: 米大师分配的支付主MidasAppId
注意：此字段可能返回 null，表示取不到有效值。
        :type AppId: str
        :param _ChannelRefundId: 该笔退款订单退款后内部返回的退款单号
        :type ChannelRefundId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._OutTradeNo = None
        self._ChannelExternalOrderId = None
        self._ChannelExternalRefundId = None
        self._ChannelOrderId = None
        self._RefundId = None
        self._UsedRefundId = None
        self._TotalRefundAmt = None
        self._CurrencyType = None
        self._State = None
        self._SubRefundList = None
        self._Metadata = None
        self._AppId = None
        self._ChannelRefundId = None
        self._RequestId = None

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def ChannelExternalRefundId(self):
        return self._ChannelExternalRefundId

    @ChannelExternalRefundId.setter
    def ChannelExternalRefundId(self, ChannelExternalRefundId):
        self._ChannelExternalRefundId = ChannelExternalRefundId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def UsedRefundId(self):
        return self._UsedRefundId

    @UsedRefundId.setter
    def UsedRefundId(self, UsedRefundId):
        self._UsedRefundId = UsedRefundId

    @property
    def TotalRefundAmt(self):
        return self._TotalRefundAmt

    @TotalRefundAmt.setter
    def TotalRefundAmt(self, TotalRefundAmt):
        self._TotalRefundAmt = TotalRefundAmt

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def SubRefundList(self):
        return self._SubRefundList

    @SubRefundList.setter
    def SubRefundList(self, SubRefundList):
        self._SubRefundList = SubRefundList

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def AppId(self):
        return self._AppId

    @AppId.setter
    def AppId(self, AppId):
        self._AppId = AppId

    @property
    def ChannelRefundId(self):
        return self._ChannelRefundId

    @ChannelRefundId.setter
    def ChannelRefundId(self, ChannelRefundId):
        self._ChannelRefundId = ChannelRefundId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._OutTradeNo = params.get("OutTradeNo")
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._ChannelExternalRefundId = params.get("ChannelExternalRefundId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._RefundId = params.get("RefundId")
        self._UsedRefundId = params.get("UsedRefundId")
        self._TotalRefundAmt = params.get("TotalRefundAmt")
        self._CurrencyType = params.get("CurrencyType")
        self._State = params.get("State")
        if params.get("SubRefundList") is not None:
            self._SubRefundList = []
            for item in params.get("SubRefundList"):
                obj = CloudSubRefundItem()
                obj._deserialize(item)
                self._SubRefundList.append(obj)
        self._Metadata = params.get("Metadata")
        self._AppId = params.get("AppId")
        self._ChannelRefundId = params.get("ChannelRefundId")
        self._RequestId = params.get("RequestId")


class QueryCommonTransferRechargeRequest(AbstractModel):
    """QueryCommonTransferRecharge请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1为查询当日数据，0查询历史数据）
        :type FunctionFlag: str
        :param _StartDate: STRING(8)，开始日期（格式：20190101）
        :type StartDate: str
        :param _EndDate: STRING(8)，终止日期（格式：20190101）
        :type EndDate: str
        :param _PageNum: STRING(10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._StartDate = None
        self._EndDate = None
        self._PageNum = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._StartDate = params.get("StartDate")
        self._EndDate = params.get("EndDate")
        self._PageNum = params.get("PageNum")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCommonTransferRechargeResponse(AbstractModel):
    """QueryCommonTransferRecharge返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING(10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0: 否; 1: 是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING(10)，符合业务查询条件的记录总数（重复次数，一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of TransferItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = TransferItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryCompanyTitleRequest(AbstractModel):
    """QueryCompanyTitle请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CompanyTitleKeyword: 公司抬头关键字
        :type CompanyTitleKeyword: str
        :param _InvoicePlatformId: 开票平台ID。0：高灯，1：票易通
        :type InvoicePlatformId: int
        :param _SellerTaxpayerNum: 销方纳税人识别号
        :type SellerTaxpayerNum: str
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        """
        self._CompanyTitleKeyword = None
        self._InvoicePlatformId = None
        self._SellerTaxpayerNum = None
        self._Profile = None

    @property
    def CompanyTitleKeyword(self):
        return self._CompanyTitleKeyword

    @CompanyTitleKeyword.setter
    def CompanyTitleKeyword(self, CompanyTitleKeyword):
        self._CompanyTitleKeyword = CompanyTitleKeyword

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def SellerTaxpayerNum(self):
        return self._SellerTaxpayerNum

    @SellerTaxpayerNum.setter
    def SellerTaxpayerNum(self, SellerTaxpayerNum):
        self._SellerTaxpayerNum = SellerTaxpayerNum

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._CompanyTitleKeyword = params.get("CompanyTitleKeyword")
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._SellerTaxpayerNum = params.get("SellerTaxpayerNum")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCompanyTitleResponse(AbstractModel):
    """QueryCompanyTitle返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 公司抬头结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of CompanyTitleResult
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = CompanyTitleResult()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryContractPayFeeRequest(AbstractModel):
    """QueryContractPayFee请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _PaymentId: 支付方式编号
        :type PaymentId: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._PaymentId = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def PaymentId(self):
        return self._PaymentId

    @PaymentId.setter
    def PaymentId(self, PaymentId):
        self._PaymentId = PaymentId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._PaymentId = params.get("PaymentId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractPayFeeResponse(AbstractModel):
    """QueryContractPayFee返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _Result: 查询支付方式费率及自定义表单项响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryContractPayFeeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = QueryContractPayFeeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryContractPayFeeResult(AbstractModel):
    """支付方式费率及自定义表单项

    """

    def __init__(self):
        r"""
        :param _Pay: pay支付方式json数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Pay: :class:`tencentcloud.cpdp.v20190820.models.PayDataResult`
        :param _ExtraInput: 合同扩展自定义字段
        :type ExtraInput: list of str
        :param _PayFee: pay_fee支付方式行业分类费率json数据
注意：此字段可能返回 null，表示取不到有效值。
        :type PayFee: list of PayFeeDataResult
        """
        self._Pay = None
        self._ExtraInput = None
        self._PayFee = None

    @property
    def Pay(self):
        return self._Pay

    @Pay.setter
    def Pay(self, Pay):
        self._Pay = Pay

    @property
    def ExtraInput(self):
        return self._ExtraInput

    @ExtraInput.setter
    def ExtraInput(self, ExtraInput):
        self._ExtraInput = ExtraInput

    @property
    def PayFee(self):
        return self._PayFee

    @PayFee.setter
    def PayFee(self, PayFee):
        self._PayFee = PayFee


    def _deserialize(self, params):
        if params.get("Pay") is not None:
            self._Pay = PayDataResult()
            self._Pay._deserialize(params.get("Pay"))
        self._ExtraInput = params.get("ExtraInput")
        if params.get("PayFee") is not None:
            self._PayFee = []
            for item in params.get("PayFee"):
                obj = PayFeeDataResult()
                obj._deserialize(item)
                self._PayFee.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractPayWayListRequest(AbstractModel):
    """QueryContractPayWayList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractPayWayListResponse(AbstractModel):
    """QueryContractPayWayList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询合同支付方式响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of ContractPayListResult
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = ContractPayListResult()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryContractRelateShopRequest(AbstractModel):
    """QueryContractRelateShop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _ContractId: 合同主键
        :type ContractId: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._ContractId = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def ContractId(self):
        return self._ContractId

    @ContractId.setter
    def ContractId(self, ContractId):
        self._ContractId = ContractId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._ContractId = params.get("ContractId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractRelateShopResponse(AbstractModel):
    """QueryContractRelateShop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询合同可关联门店响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of QueryContractRelateShopResult
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = QueryContractRelateShopResult()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryContractRelateShopResult(AbstractModel):
    """合同可关联门店响应对象

    """

    def __init__(self):
        r"""
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _CityId: 城市编码
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        :param _ShopName: 门店简称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopName: str
        :param _TerminalCount: 终端数量
注意：此字段可能返回 null，表示取不到有效值。
        :type TerminalCount: str
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _ShopStatus: 门店状态（0未审核，1已审核，2审核未通过，3待审核，4已删除，5初审通过）
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopStatus: str
        :param _AliPayOnline: 若是支付宝合同，支付宝上线状态
注意：此字段可能返回 null，表示取不到有效值。
        :type AliPayOnline: str
        :param _ShopNo: 门店编号
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopNo: str
        :param _Country: 县/区
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: str
        :param _AliPayStatus: 若是支付宝合同，支付宝审核状态
注意：此字段可能返回 null，表示取不到有效值。
        :type AliPayStatus: str
        :param _IsChecked: 为空或者0表示未关联，大于0表示已关联
注意：此字段可能返回 null，表示取不到有效值。
        :type IsChecked: str
        :param _Address: 详细地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _AliPayDesc: 若是支付宝合同，支付宝审核描述
注意：此字段可能返回 null，表示取不到有效值。
        :type AliPayDesc: str
        """
        self._Province = None
        self._CityId = None
        self._ShopName = None
        self._TerminalCount = None
        self._City = None
        self._ShopStatus = None
        self._AliPayOnline = None
        self._ShopNo = None
        self._Country = None
        self._AliPayStatus = None
        self._IsChecked = None
        self._Address = None
        self._AliPayDesc = None

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def ShopName(self):
        return self._ShopName

    @ShopName.setter
    def ShopName(self, ShopName):
        self._ShopName = ShopName

    @property
    def TerminalCount(self):
        return self._TerminalCount

    @TerminalCount.setter
    def TerminalCount(self, TerminalCount):
        self._TerminalCount = TerminalCount

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def ShopStatus(self):
        return self._ShopStatus

    @ShopStatus.setter
    def ShopStatus(self, ShopStatus):
        self._ShopStatus = ShopStatus

    @property
    def AliPayOnline(self):
        return self._AliPayOnline

    @AliPayOnline.setter
    def AliPayOnline(self, AliPayOnline):
        self._AliPayOnline = AliPayOnline

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def AliPayStatus(self):
        return self._AliPayStatus

    @AliPayStatus.setter
    def AliPayStatus(self, AliPayStatus):
        self._AliPayStatus = AliPayStatus

    @property
    def IsChecked(self):
        return self._IsChecked

    @IsChecked.setter
    def IsChecked(self, IsChecked):
        self._IsChecked = IsChecked

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def AliPayDesc(self):
        return self._AliPayDesc

    @AliPayDesc.setter
    def AliPayDesc(self, AliPayDesc):
        self._AliPayDesc = AliPayDesc


    def _deserialize(self, params):
        self._Province = params.get("Province")
        self._CityId = params.get("CityId")
        self._ShopName = params.get("ShopName")
        self._TerminalCount = params.get("TerminalCount")
        self._City = params.get("City")
        self._ShopStatus = params.get("ShopStatus")
        self._AliPayOnline = params.get("AliPayOnline")
        self._ShopNo = params.get("ShopNo")
        self._Country = params.get("Country")
        self._AliPayStatus = params.get("AliPayStatus")
        self._IsChecked = params.get("IsChecked")
        self._Address = params.get("Address")
        self._AliPayDesc = params.get("AliPayDesc")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractRequest(AbstractModel):
    """QueryContract请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _Channel: 指定渠道：  wechat：微信支付  qqwallet：QQ钱包 
 bank：网银支付  只有一个渠道时需要指定
        :type Channel: str
        :param _ContractQueryMode: 枚举值：
CONTRACT_QUERY_MODE_BY_OUT_CONTRACT_CODE：按 OutContractCode + ContractSceneId 查询
CONTRACT_QUERY_MODE_BY_CHANNEL_CONTRACT_CODE：按ChannelContractCode查询
        :type ContractQueryMode: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _OutContractCode: 业务签约合同协议号 当 ContractQueryMode=CONTRACT_QUERY_MODE_BY_OUT_CONTRACT_CODE 时 ，必填
        :type OutContractCode: str
        :param _ContractSceneId: 签约场景ID，当 ContractQueryMode=CONTRACT_QUERY_MODE_BY_OUT_CONTRACT_CODE 时 必填，在米大师侧托管后生成
        :type ContractSceneId: str
        :param _ChannelContractCode: 米大师生成的协议号 ，当 ContractQueryMode=CONTRACT_QUERY_MODE_BY_CHANNEL_CONTRACT_CODE 时必填
        :type ChannelContractCode: str
        :param _ExternalContractData: 第三方渠道合约数据，为json字符串，与特定渠道有关
        :type ExternalContractData: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _UserType: USER_ID: 用户ID
ANONYMOUS: 匿名类型 USER_ID
默认值为 USER_ID
        :type UserType: str
        :param _MigrateMode: 签约代扣穿透查询存量数据迁移模式
        :type MigrateMode: str
        :param _ContractMethod: 签约方式
        :type ContractMethod: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._Channel = None
        self._ContractQueryMode = None
        self._MidasSignature = None
        self._MidasSecretId = None
        self._SubAppId = None
        self._OutContractCode = None
        self._ContractSceneId = None
        self._ChannelContractCode = None
        self._ExternalContractData = None
        self._MidasEnvironment = None
        self._UserType = None
        self._MigrateMode = None
        self._ContractMethod = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def ContractQueryMode(self):
        return self._ContractQueryMode

    @ContractQueryMode.setter
    def ContractQueryMode(self, ContractQueryMode):
        self._ContractQueryMode = ContractQueryMode

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def ContractSceneId(self):
        return self._ContractSceneId

    @ContractSceneId.setter
    def ContractSceneId(self, ContractSceneId):
        self._ContractSceneId = ContractSceneId

    @property
    def ChannelContractCode(self):
        return self._ChannelContractCode

    @ChannelContractCode.setter
    def ChannelContractCode(self, ChannelContractCode):
        self._ChannelContractCode = ChannelContractCode

    @property
    def ExternalContractData(self):
        return self._ExternalContractData

    @ExternalContractData.setter
    def ExternalContractData(self, ExternalContractData):
        self._ExternalContractData = ExternalContractData

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def MigrateMode(self):
        return self._MigrateMode

    @MigrateMode.setter
    def MigrateMode(self, MigrateMode):
        self._MigrateMode = MigrateMode

    @property
    def ContractMethod(self):
        return self._ContractMethod

    @ContractMethod.setter
    def ContractMethod(self, ContractMethod):
        self._ContractMethod = ContractMethod


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._Channel = params.get("Channel")
        self._ContractQueryMode = params.get("ContractQueryMode")
        self._MidasSignature = params.get("MidasSignature")
        self._MidasSecretId = params.get("MidasSecretId")
        self._SubAppId = params.get("SubAppId")
        self._OutContractCode = params.get("OutContractCode")
        self._ContractSceneId = params.get("ContractSceneId")
        self._ChannelContractCode = params.get("ChannelContractCode")
        self._ExternalContractData = params.get("ExternalContractData")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._UserType = params.get("UserType")
        self._MigrateMode = params.get("MigrateMode")
        self._ContractMethod = params.get("ContractMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryContractResponse(AbstractModel):
    """QueryContract返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ContractData: 签约数据
        :type ContractData: :class:`tencentcloud.cpdp.v20190820.models.ResponseQueryContract`
        :param _Msg: 请求处理信息
        :type Msg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ContractData = None
        self._Msg = None
        self._RequestId = None

    @property
    def ContractData(self):
        return self._ContractData

    @ContractData.setter
    def ContractData(self, ContractData):
        self._ContractData = ContractData

    @property
    def Msg(self):
        return self._Msg

    @Msg.setter
    def Msg(self, Msg):
        self._Msg = Msg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ContractData") is not None:
            self._ContractData = ResponseQueryContract()
            self._ContractData._deserialize(params.get("ContractData"))
        self._Msg = params.get("Msg")
        self._RequestId = params.get("RequestId")


class QueryCustAcctIdBalanceRequest(AbstractModel):
    """QueryCustAcctIdBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _QueryFlag: STRING(4)，查询标志（2: 普通会员子账号; 3: 功能子账号）
        :type QueryFlag: str
        :param _PageNum: STRING(10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _SubAcctNo: STRING(50)，见证子账户的账号（若SelectFlag为2时，子账号必输）
        :type SubAcctNo: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._QueryFlag = None
        self._PageNum = None
        self._SubAcctNo = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def QueryFlag(self):
        return self._QueryFlag

    @QueryFlag.setter
    def QueryFlag(self, QueryFlag):
        self._QueryFlag = QueryFlag

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._QueryFlag = params.get("QueryFlag")
        self._PageNum = params.get("PageNum")
        self._SubAcctNo = params.get("SubAcctNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryCustAcctIdBalanceResponse(AbstractModel):
    """QueryCustAcctIdBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING(10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0: 否; 1: 是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING(10)，符合业务查询条件的记录总数（重复次数，一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _AcctArray: 账户信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type AcctArray: list of Acct
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._AcctArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def AcctArray(self):
        return self._AcctArray

    @AcctArray.setter
    def AcctArray(self, AcctArray):
        self._AcctArray = AcctArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("AcctArray") is not None:
            self._AcctArray = []
            for item in params.get("AcctArray"):
                obj = Acct()
                obj._deserialize(item)
                self._AcctArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryDeclareData(AbstractModel):
    """成功申报材料查询数据

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _DeclareId: 申报流水号
        :type DeclareId: str
        :param _OriginalDeclareId: 原申报流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalDeclareId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _SourceCurrency: 源币种
        :type SourceCurrency: str
        :param _SourceAmount: 源金额
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceAmount: str
        :param _TargetCurrency: 目的币种
        :type TargetCurrency: str
        :param _TargetAmount: 目的金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TargetAmount: str
        :param _TradeCode: 交易编码
        :type TradeCode: str
        :param _Status: 状态
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        """
        self._MerchantId = None
        self._TransactionId = None
        self._DeclareId = None
        self._OriginalDeclareId = None
        self._PayerId = None
        self._SourceCurrency = None
        self._SourceAmount = None
        self._TargetCurrency = None
        self._TargetAmount = None
        self._TradeCode = None
        self._Status = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def DeclareId(self):
        return self._DeclareId

    @DeclareId.setter
    def DeclareId(self, DeclareId):
        self._DeclareId = DeclareId

    @property
    def OriginalDeclareId(self):
        return self._OriginalDeclareId

    @OriginalDeclareId.setter
    def OriginalDeclareId(self, OriginalDeclareId):
        self._OriginalDeclareId = OriginalDeclareId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def SourceAmount(self):
        return self._SourceAmount

    @SourceAmount.setter
    def SourceAmount(self, SourceAmount):
        self._SourceAmount = SourceAmount

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def TargetAmount(self):
        return self._TargetAmount

    @TargetAmount.setter
    def TargetAmount(self, TargetAmount):
        self._TargetAmount = TargetAmount

    @property
    def TradeCode(self):
        return self._TradeCode

    @TradeCode.setter
    def TradeCode(self, TradeCode):
        self._TradeCode = TradeCode

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TransactionId = params.get("TransactionId")
        self._DeclareId = params.get("DeclareId")
        self._OriginalDeclareId = params.get("OriginalDeclareId")
        self._PayerId = params.get("PayerId")
        self._SourceCurrency = params.get("SourceCurrency")
        self._SourceAmount = params.get("SourceAmount")
        self._TargetCurrency = params.get("TargetCurrency")
        self._TargetAmount = params.get("TargetAmount")
        self._TradeCode = params.get("TradeCode")
        self._Status = params.get("Status")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryDeclareResult(AbstractModel):
    """成功申报材料查询结果

    """

    def __init__(self):
        r"""
        :param _Data: 成功申报材料查询数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryDeclareData`
        :param _Code: 错误码
        :type Code: str
        """
        self._Data = None
        self._Code = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = QueryDeclareData()
            self._Data._deserialize(params.get("Data"))
        self._Code = params.get("Code")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryDownloadBillURLRequest(AbstractModel):
    """QueryDownloadBillURL请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的AppId。进件成功后返给商户方的AppId。
        :type MerchantAppId: str
        :param _ChannelCode: 渠道编号。固定值：ZSB2B
        :type ChannelCode: str
        :param _BillDate: 对账单日期，格式yyyyMMdd
        :type BillDate: str
        """
        self._MerchantAppId = None
        self._ChannelCode = None
        self._BillDate = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def ChannelCode(self):
        return self._ChannelCode

    @ChannelCode.setter
    def ChannelCode(self, ChannelCode):
        self._ChannelCode = ChannelCode

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._ChannelCode = params.get("ChannelCode")
        self._BillDate = params.get("BillDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryDownloadBillURLResponse(AbstractModel):
    """QueryDownloadBillURL返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的AppId。进件成功后返给商户方的AppId。
        :type MerchantAppId: str
        :param _DownloadUrl: 对账单下载地址。
        :type DownloadUrl: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._DownloadUrl = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._DownloadUrl = params.get("DownloadUrl")
        self._RequestId = params.get("RequestId")


class QueryExceedingInfoData(AbstractModel):
    """超额信息数据

    """

    def __init__(self):
        r"""
        :param _AgentId: 代理商ID。
        :type AgentId: str
        :param _AgentName: 代理商名称。
        :type AgentName: str
        :param _AnchorId: 主播ID。当入参Dimension为ANCHOR或ORDER时，该字段才会有值。
注意：此字段可能返回 null，表示取不到有效值。
        :type AnchorId: str
        :param _AnchorName: 主播名称。当入参Dimension为ANCHOR或ORDER时，该字段才会有值。
注意：此字段可能返回 null，表示取不到有效值。
        :type AnchorName: str
        :param _OrderId: 订单号。当入参Dimension为ORDER时，该字段才会有值。
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _ExceedingType: 超额类型。目前支持 AGENT_EXCEED_100 和 ANCHOR_EXCEED_100_12 两种类型。
        :type ExceedingType: str
        """
        self._AgentId = None
        self._AgentName = None
        self._AnchorId = None
        self._AnchorName = None
        self._OrderId = None
        self._ExceedingType = None

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def AnchorName(self):
        return self._AnchorName

    @AnchorName.setter
    def AnchorName(self, AnchorName):
        self._AnchorName = AnchorName

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def ExceedingType(self):
        return self._ExceedingType

    @ExceedingType.setter
    def ExceedingType(self, ExceedingType):
        self._ExceedingType = ExceedingType


    def _deserialize(self, params):
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        self._AnchorId = params.get("AnchorId")
        self._AnchorName = params.get("AnchorName")
        self._OrderId = params.get("OrderId")
        self._ExceedingType = params.get("ExceedingType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExceedingInfoRequest(AbstractModel):
    """QueryExceedingInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TimeStr: 超额日期。格式为yyyy-MM-dd。
        :type TimeStr: str
        :param _Dimension: 维度。目前支持三个维度: AGENT, ANCHOR, ORDER。不填默认使用AGENT维度。
        :type Dimension: str
        :param _PageNumber: 分页信息。不填默认Index为1，Count为100。
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        """
        self._TimeStr = None
        self._Dimension = None
        self._PageNumber = None

    @property
    def TimeStr(self):
        return self._TimeStr

    @TimeStr.setter
    def TimeStr(self, TimeStr):
        self._TimeStr = TimeStr

    @property
    def Dimension(self):
        return self._Dimension

    @Dimension.setter
    def Dimension(self, Dimension):
        self._Dimension = Dimension

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber


    def _deserialize(self, params):
        self._TimeStr = params.get("TimeStr")
        self._Dimension = params.get("Dimension")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExceedingInfoResponse(AbstractModel):
    """QueryExceedingInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 超额信息结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryExceedingInfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryExceedingInfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryExceedingInfoResult(AbstractModel):
    """超额信息结果

    """

    def __init__(self):
        r"""
        :param _Count: 记录总数。
        :type Count: int
        :param _Data: 超额信息数据。
注意：此字段可能返回 null，表示取不到有效值。
        :type Data: list of QueryExceedingInfoData
        """
        self._Count = None
        self._Data = None

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Count = params.get("Count")
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = QueryExceedingInfoData()
                obj._deserialize(item)
                self._Data.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExchangeRateRequest(AbstractModel):
    """QueryExchangeRate请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SourceCurrency: 源币种 (默认CNY)
        :type SourceCurrency: str
        :param _TargetCurrency: 目的币种 (见常见问题-汇出币种)
        :type TargetCurrency: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._SourceCurrency = None
        self._TargetCurrency = None
        self._Profile = None

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._SourceCurrency = params.get("SourceCurrency")
        self._TargetCurrency = params.get("TargetCurrency")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExchangeRateResponse(AbstractModel):
    """QueryExchangeRate返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 查询汇率结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryExchangerateResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryExchangerateResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryExchangerateData(AbstractModel):
    """查询汇率数据

    """

    def __init__(self):
        r"""
        :param _Rate: 汇率
        :type Rate: str
        :param _SourceCurrency: 源币种
        :type SourceCurrency: str
        :param _TargetCurrency: 目的币种
        :type TargetCurrency: str
        :param _RateTime: 汇率时间
        :type RateTime: str
        :param _BaseCurrency: 基准币种
        :type BaseCurrency: str
        """
        self._Rate = None
        self._SourceCurrency = None
        self._TargetCurrency = None
        self._RateTime = None
        self._BaseCurrency = None

    @property
    def Rate(self):
        return self._Rate

    @Rate.setter
    def Rate(self, Rate):
        self._Rate = Rate

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def RateTime(self):
        return self._RateTime

    @RateTime.setter
    def RateTime(self, RateTime):
        self._RateTime = RateTime

    @property
    def BaseCurrency(self):
        return self._BaseCurrency

    @BaseCurrency.setter
    def BaseCurrency(self, BaseCurrency):
        self._BaseCurrency = BaseCurrency


    def _deserialize(self, params):
        self._Rate = params.get("Rate")
        self._SourceCurrency = params.get("SourceCurrency")
        self._TargetCurrency = params.get("TargetCurrency")
        self._RateTime = params.get("RateTime")
        self._BaseCurrency = params.get("BaseCurrency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExchangerateResult(AbstractModel):
    """查询汇率结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 查询汇率数据数组
        :type Data: list of QueryExchangerateData
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = []
            for item in params.get("Data"):
                obj = QueryExchangerateData()
                obj._deserialize(item)
                self._Data.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryExternalAccountBookResult(AbstractModel):
    """查询第三方电子记账本余额返回值

    """

    def __init__(self):
        r"""
        :param _ChannelAccountBookId: 渠道记账本ID
        :type ChannelAccountBookId: str
        :param _AvailableBalance: 可用余额。
注意：此字段可能返回 null，表示取不到有效值。
        :type AvailableBalance: str
        :param _CollectMoneyAccountInfo: 电子记账本对外收款的账户信息。为JSON格式字符串（成功状态下返回）。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type CollectMoneyAccountInfo: str
        """
        self._ChannelAccountBookId = None
        self._AvailableBalance = None
        self._CollectMoneyAccountInfo = None

    @property
    def ChannelAccountBookId(self):
        return self._ChannelAccountBookId

    @ChannelAccountBookId.setter
    def ChannelAccountBookId(self, ChannelAccountBookId):
        self._ChannelAccountBookId = ChannelAccountBookId

    @property
    def AvailableBalance(self):
        return self._AvailableBalance

    @AvailableBalance.setter
    def AvailableBalance(self, AvailableBalance):
        self._AvailableBalance = AvailableBalance

    @property
    def CollectMoneyAccountInfo(self):
        return self._CollectMoneyAccountInfo

    @CollectMoneyAccountInfo.setter
    def CollectMoneyAccountInfo(self, CollectMoneyAccountInfo):
        self._CollectMoneyAccountInfo = CollectMoneyAccountInfo


    def _deserialize(self, params):
        self._ChannelAccountBookId = params.get("ChannelAccountBookId")
        self._AvailableBalance = params.get("AvailableBalance")
        self._CollectMoneyAccountInfo = params.get("CollectMoneyAccountInfo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFinancialDataUrlRequest(AbstractModel):
    """QueryFinancialDataUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _EndTime: 数据查询范围:结束时间 yyyy-MM-dd HH:mm:ss
        :type EndTime: str
        :param _StartTime: 数据查询范围:开始时间 yyyy-MM-dd HH:mm:ss
        :type StartTime: str
        :param _DataType: 数据类型：ADDED_INVOICE_REPORT  增值税开票数据，NATURAL_FINANCE_REPORT 自然人金融数据,
NATURAL_FINANCE_REPORT_BY_TIME 按次报税数据导出,
NATURAL_FINANCE_REPORT_STAT_BY_DAY 按日累计报税数据导出
        :type DataType: str
        """
        self._EndTime = None
        self._StartTime = None
        self._DataType = None

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def DataType(self):
        return self._DataType

    @DataType.setter
    def DataType(self, DataType):
        self._DataType = DataType


    def _deserialize(self, params):
        self._EndTime = params.get("EndTime")
        self._StartTime = params.get("StartTime")
        self._DataType = params.get("DataType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFinancialDataUrlResponse(AbstractModel):
    """QueryFinancialDataUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _CosUrl: 下载链接
注意：此字段可能返回 null，表示取不到有效值。
        :type CosUrl: str
        :param _ExpireTime: 过期时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpireTime: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._CosUrl = None
        self._ExpireTime = None
        self._RequestId = None

    @property
    def CosUrl(self):
        return self._CosUrl

    @CosUrl.setter
    def CosUrl(self, CosUrl):
        self._CosUrl = CosUrl

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._CosUrl = params.get("CosUrl")
        self._ExpireTime = params.get("ExpireTime")
        self._RequestId = params.get("RequestId")


class QueryFlexAmountBeforeTaxRequest(AbstractModel):
    """QueryFlexAmountBeforeTax请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _AmountAfterTax: 税后金额
        :type AmountAfterTax: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._IncomeType = None
        self._AmountAfterTax = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def AmountAfterTax(self):
        return self._AmountAfterTax

    @AmountAfterTax.setter
    def AmountAfterTax(self, AmountAfterTax):
        self._AmountAfterTax = AmountAfterTax

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._IncomeType = params.get("IncomeType")
        self._AmountAfterTax = params.get("AmountAfterTax")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexAmountBeforeTaxResponse(AbstractModel):
    """QueryFlexAmountBeforeTax返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.AmountBeforeTaxResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = AmountBeforeTaxResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexBillDownloadUrlRequest(AbstractModel):
    """QueryFlexBillDownloadUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _BillDate: 对账单日期
        :type BillDate: str
        :param _BillType: 对账单类型：FREEZE, SETTLEMENT,PAYMENT
        :type BillType: str
        :param _ServiceProviderId: 服务商ID，如不填则查询平台级别对账单文件
        :type ServiceProviderId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._BillDate = None
        self._BillType = None
        self._ServiceProviderId = None
        self._Environment = None

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate

    @property
    def BillType(self):
        return self._BillType

    @BillType.setter
    def BillType(self, BillType):
        self._BillType = BillType

    @property
    def ServiceProviderId(self):
        return self._ServiceProviderId

    @ServiceProviderId.setter
    def ServiceProviderId(self, ServiceProviderId):
        self._ServiceProviderId = ServiceProviderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._BillDate = params.get("BillDate")
        self._BillType = params.get("BillType")
        self._ServiceProviderId = params.get("ServiceProviderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexBillDownloadUrlResponse(AbstractModel):
    """QueryFlexBillDownloadUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.FlexBillDownloadUrlResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = FlexBillDownloadUrlResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexFreezeOrderListRequest(AbstractModel):
    """QueryFlexFreezeOrderList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OperationType: 操作类型
FREEZE:冻结
UNFREEZE:解冻
        :type OperationType: str
        :param _StartTime: 开始时间，格式"yyyy-MM-dd hh:mm:ss"
        :type StartTime: str
        :param _EndTime: 结束时间，格式"yyyy-MM-dd hh:mm:ss"
        :type EndTime: str
        :param _PageNumber: 分页
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._OperationType = None
        self._StartTime = None
        self._EndTime = None
        self._PageNumber = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OperationType(self):
        return self._OperationType

    @OperationType.setter
    def OperationType(self, OperationType):
        self._OperationType = OperationType

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._OperationType = params.get("OperationType")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexFreezeOrderListResponse(AbstractModel):
    """QueryFlexFreezeOrderList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.FreezeOrders`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = FreezeOrders()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexOrderSummaryListRequest(AbstractModel):
    """QueryFlexOrderSummaryList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _SummaryDate: 汇总日期:yyyy-MM-dd
        :type SummaryDate: str
        :param _PageNumber: 分页
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _OrderType: 汇总订单类型:FREEZE, SETTLEMENT,PAYMENT
        :type OrderType: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._SummaryDate = None
        self._PageNumber = None
        self._OrderType = None
        self._PayeeId = None
        self._Environment = None

    @property
    def SummaryDate(self):
        return self._SummaryDate

    @SummaryDate.setter
    def SummaryDate(self, SummaryDate):
        self._SummaryDate = SummaryDate

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def OrderType(self):
        return self._OrderType

    @OrderType.setter
    def OrderType(self, OrderType):
        self._OrderType = OrderType

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._SummaryDate = params.get("SummaryDate")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._OrderType = params.get("OrderType")
        self._PayeeId = params.get("PayeeId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexOrderSummaryListResponse(AbstractModel):
    """QueryFlexOrderSummaryList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.OrderSummaries`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = OrderSummaries()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPayeeAccountBalanceRequest(AbstractModel):
    """QueryFlexPayeeAccountBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _SnapshotDate: 快照日期。格式yyyy-MM-dd
        :type SnapshotDate: str
        """
        self._PayeeId = None
        self._IncomeType = None
        self._Environment = None
        self._SnapshotDate = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def SnapshotDate(self):
        return self._SnapshotDate

    @SnapshotDate.setter
    def SnapshotDate(self, SnapshotDate):
        self._SnapshotDate = SnapshotDate


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._IncomeType = params.get("IncomeType")
        self._Environment = params.get("Environment")
        self._SnapshotDate = params.get("SnapshotDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPayeeAccountBalanceResponse(AbstractModel):
    """QueryFlexPayeeAccountBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PayeeAccountBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPayeeAccountInfoRequest(AbstractModel):
    """QueryFlexPayeeAccountInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._OutUserId = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPayeeAccountInfoResponse(AbstractModel):
    """QueryFlexPayeeAccountInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountInfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PayeeAccountInfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPayeeAccountListRequest(AbstractModel):
    """QueryFlexPayeeAccountList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PropertyInfo: 账户属性信息
        :type PropertyInfo: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountPropertyInfo`
        :param _StartTime: 开始时间
        :type StartTime: str
        :param _EndTime: 结束时间
        :type EndTime: str
        :param _PageNumber: 分页
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PropertyInfo = None
        self._StartTime = None
        self._EndTime = None
        self._PageNumber = None
        self._Environment = None

    @property
    def PropertyInfo(self):
        return self._PropertyInfo

    @PropertyInfo.setter
    def PropertyInfo(self, PropertyInfo):
        self._PropertyInfo = PropertyInfo

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        if params.get("PropertyInfo") is not None:
            self._PropertyInfo = PayeeAccountPropertyInfo()
            self._PropertyInfo._deserialize(params.get("PropertyInfo"))
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPayeeAccountListResponse(AbstractModel):
    """QueryFlexPayeeAccountList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayeeAccountInfos`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PayeeAccountInfos()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPayeeInfoRequest(AbstractModel):
    """QueryFlexPayeeInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._OutUserId = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPayeeInfoResponse(AbstractModel):
    """QueryFlexPayeeInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayeeInfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PayeeInfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPaymentOrderListRequest(AbstractModel):
    """QueryFlexPaymentOrderList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _StartTime: 开始时间，格式"yyyy-MM-dd hh:mm:ss"
        :type StartTime: str
        :param _EndTime: 结束时间，格式"yyyy-MM-dd hh:mm:ss"
        :type EndTime: str
        :param _PageNumber: 分页
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._StartTime = None
        self._EndTime = None
        self._PageNumber = None
        self._PayeeId = None
        self._Environment = None

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._PayeeId = params.get("PayeeId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPaymentOrderListResponse(AbstractModel):
    """QueryFlexPaymentOrderList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PaymentOrders`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PaymentOrders()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPaymentOrderStatusRequest(AbstractModel):
    """QueryFlexPaymentOrderStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._OutOrderId = None
        self._OrderId = None
        self._Environment = None

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._OutOrderId = params.get("OutOrderId")
        self._OrderId = params.get("OrderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPaymentOrderStatusResponse(AbstractModel):
    """QueryFlexPaymentOrderStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PaymentOrderStatusResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PaymentOrderStatusResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexPlatformAccountBalanceRequest(AbstractModel):
    """QueryFlexPlatformAccountBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        :param _SnapshotDate: 快照日期。格式yyyy-MM-dd
        :type SnapshotDate: str
        """
        self._IncomeType = None
        self._Environment = None
        self._SnapshotDate = None

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def SnapshotDate(self):
        return self._SnapshotDate

    @SnapshotDate.setter
    def SnapshotDate(self, SnapshotDate):
        self._SnapshotDate = SnapshotDate


    def _deserialize(self, params):
        self._IncomeType = params.get("IncomeType")
        self._Environment = params.get("Environment")
        self._SnapshotDate = params.get("SnapshotDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexPlatformAccountBalanceResponse(AbstractModel):
    """QueryFlexPlatformAccountBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PlatformAccountBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = PlatformAccountBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexServiceProviderAccountBalanceRequest(AbstractModel):
    """QueryFlexServiceProviderAccountBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ServiceProviderId: 服务商ID
        :type ServiceProviderId: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._ServiceProviderId = None
        self._Environment = None

    @property
    def ServiceProviderId(self):
        return self._ServiceProviderId

    @ServiceProviderId.setter
    def ServiceProviderId(self, ServiceProviderId):
        self._ServiceProviderId = ServiceProviderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ServiceProviderId = params.get("ServiceProviderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexServiceProviderAccountBalanceResponse(AbstractModel):
    """QueryFlexServiceProviderAccountBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ServiceProviderAccountBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = ServiceProviderAccountBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexSettlementOrderListRequest(AbstractModel):
    """QueryFlexSettlementOrderList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _StartTime: 开始时间，格式"yyyy-MM-dd hh:mm:ss"
        :type StartTime: str
        :param _EndTime: 结束时间，格式"yyyy-MM-dd hh:mm:ss"
        :type EndTime: str
        :param _PageNumber: 分页
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _OperationType: 操作类型。
ENABLE_SETTLE: 正常结算
DISABLE_SETTLE: 停用结算
UNFREEZE_SETTLE: 解冻结算
若需要支持多个操作类型，则以;分隔
        :type OperationType: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
__test__:测试环境
缺省默认为生产环境
        :type Environment: str
        """
        self._PayeeId = None
        self._StartTime = None
        self._EndTime = None
        self._PageNumber = None
        self._OperationType = None
        self._Environment = None

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def OperationType(self):
        return self._OperationType

    @OperationType.setter
    def OperationType(self, OperationType):
        self._OperationType = OperationType

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._PayeeId = params.get("PayeeId")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._OperationType = params.get("OperationType")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexSettlementOrderListResponse(AbstractModel):
    """QueryFlexSettlementOrderList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.SettlementOrders`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = SettlementOrders()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFlexWechatAuthResultRequest(AbstractModel):
    """QueryFlexWechatAuthResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AuthNo: 商户核身单号
        :type AuthNo: str
        :param _Environment: 环境类型
test 测试
release 生产
sandbox 沙箱
        :type Environment: str
        """
        self._AuthNo = None
        self._Environment = None

    @property
    def AuthNo(self):
        return self._AuthNo

    @AuthNo.setter
    def AuthNo(self, AuthNo):
        self._AuthNo = AuthNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._AuthNo = params.get("AuthNo")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFlexWechatAuthResultResponse(AbstractModel):
    """QueryFlexWechatAuthResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。SUCCESS为成功，其他为失败
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryWechatAuthResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryWechatAuthResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFundsTransactionDetailsRequest(AbstractModel):
    """QueryFundsTransactionDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _QueryDateType: 查询的交易发生时间类型。
__1__：当日
__2__：历史
        :type QueryDateType: str
        :param _QueryTranType: 查询的交易类型。
__2__：提现/退款
__3__：清分/充值
        :type QueryTranType: str
        :param _BankAccountNumber: 父账户账号。
_平安渠道为资金汇总账号_
        :type BankAccountNumber: str
        :param _SubAccountNumber: 子账户账号。
_平安渠道为见证子账户的账号_
        :type SubAccountNumber: str
        :param _PageOffSet: 分页号, 起始值为1。
        :type PageOffSet: str
        :param _QueryStartDate: 查询开始日期，格式：yyyyMMdd。
__若是历史查询，则必输，当日查询时，不起作用；开始日期不能超过当前日期__
        :type QueryStartDate: str
        :param _QueryEndDate: 查询终止日期，格式：yyyyMMdd。
__若是历史查询，则必输，当日查询时，不起作用；终止日期不能超过当前日期__
        :type QueryEndDate: str
        :param _MidasEnvironment: 环境名。
__release__: 现网环境
__sandbox__: 沙箱环境
__development__: 开发环境
_缺省: release_
        :type MidasEnvironment: str
        """
        self._QueryDateType = None
        self._QueryTranType = None
        self._BankAccountNumber = None
        self._SubAccountNumber = None
        self._PageOffSet = None
        self._QueryStartDate = None
        self._QueryEndDate = None
        self._MidasEnvironment = None

    @property
    def QueryDateType(self):
        return self._QueryDateType

    @QueryDateType.setter
    def QueryDateType(self, QueryDateType):
        self._QueryDateType = QueryDateType

    @property
    def QueryTranType(self):
        return self._QueryTranType

    @QueryTranType.setter
    def QueryTranType(self, QueryTranType):
        self._QueryTranType = QueryTranType

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def SubAccountNumber(self):
        return self._SubAccountNumber

    @SubAccountNumber.setter
    def SubAccountNumber(self, SubAccountNumber):
        self._SubAccountNumber = SubAccountNumber

    @property
    def PageOffSet(self):
        return self._PageOffSet

    @PageOffSet.setter
    def PageOffSet(self, PageOffSet):
        self._PageOffSet = PageOffSet

    @property
    def QueryStartDate(self):
        return self._QueryStartDate

    @QueryStartDate.setter
    def QueryStartDate(self, QueryStartDate):
        self._QueryStartDate = QueryStartDate

    @property
    def QueryEndDate(self):
        return self._QueryEndDate

    @QueryEndDate.setter
    def QueryEndDate(self, QueryEndDate):
        self._QueryEndDate = QueryEndDate

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._QueryDateType = params.get("QueryDateType")
        self._QueryTranType = params.get("QueryTranType")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._SubAccountNumber = params.get("SubAccountNumber")
        self._PageOffSet = params.get("PageOffSet")
        self._QueryStartDate = params.get("QueryStartDate")
        self._QueryEndDate = params.get("QueryEndDate")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryFundsTransactionDetailsResponse(AbstractModel):
    """QueryFundsTransactionDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryFundsTransactionDetailsResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryFundsTransactionDetailsResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryFundsTransactionDetailsResult(AbstractModel):
    """查询会员资金交易信息列表结果

    """

    def __init__(self):
        r"""
        :param _ResultCount: 本次交易返回查询结果记录数。
        :type ResultCount: int
        :param _TotalCount: 符合业务查询条件的记录总数。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _EndFlag: 结束标志。
__0__：否
__1__：是
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TranItemArray: 会员资金交易信息数组。
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of FundsTransactionItem
        """
        self._ResultCount = None
        self._TotalCount = None
        self._EndFlag = None
        self._TranItemArray = None

    @property
    def ResultCount(self):
        return self._ResultCount

    @ResultCount.setter
    def ResultCount(self, ResultCount):
        self._ResultCount = ResultCount

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray


    def _deserialize(self, params):
        self._ResultCount = params.get("ResultCount")
        self._TotalCount = params.get("TotalCount")
        self._EndFlag = params.get("EndFlag")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = FundsTransactionItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryInvoiceRequest(AbstractModel):
    """QueryInvoice请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
0 : 高灯
1 : 票易通
        :type InvoicePlatformId: int
        :param _OrderId: 订单号
        :type OrderId: str
        :param _OrderSn: 业务开票号
        :type OrderSn: str
        :param _IsRed: 发票种类：
0：蓝票
1：红票【该字段默认为0， 如果需要查询红票信息，本字段必须传1，否则可能查询不到需要的发票信息】。
        :type IsRed: int
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        :param _InvoiceChannel: 开票渠道。0：线上渠道，1：线下渠道。不填默认为线上渠道
        :type InvoiceChannel: int
        :param _SellerTaxpayerNum: 当渠道为线下渠道时，必填
        :type SellerTaxpayerNum: str
        """
        self._InvoicePlatformId = None
        self._OrderId = None
        self._OrderSn = None
        self._IsRed = None
        self._Profile = None
        self._InvoiceChannel = None
        self._SellerTaxpayerNum = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def OrderSn(self):
        return self._OrderSn

    @OrderSn.setter
    def OrderSn(self, OrderSn):
        self._OrderSn = OrderSn

    @property
    def IsRed(self):
        return self._IsRed

    @IsRed.setter
    def IsRed(self, IsRed):
        self._IsRed = IsRed

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel

    @property
    def SellerTaxpayerNum(self):
        return self._SellerTaxpayerNum

    @SellerTaxpayerNum.setter
    def SellerTaxpayerNum(self, SellerTaxpayerNum):
        self._SellerTaxpayerNum = SellerTaxpayerNum


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._OrderId = params.get("OrderId")
        self._OrderSn = params.get("OrderSn")
        self._IsRed = params.get("IsRed")
        self._Profile = params.get("Profile")
        self._InvoiceChannel = params.get("InvoiceChannel")
        self._SellerTaxpayerNum = params.get("SellerTaxpayerNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryInvoiceResponse(AbstractModel):
    """QueryInvoice返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 发票查询结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryInvoiceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryInvoiceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryInvoiceResult(AbstractModel):
    """查询发票结果

    """

    def __init__(self):
        r"""
        :param _Message: 错误消息
        :type Message: str
        :param _Code: 错误码
        :type Code: int
        :param _Data: 查询发票数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryInvoiceResultData`
        :param _Order: 订单数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Order: :class:`tencentcloud.cpdp.v20190820.models.Order`
        """
        self._Message = None
        self._Code = None
        self._Data = None
        self._Order = None

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Order(self):
        return self._Order

    @Order.setter
    def Order(self, Order):
        self._Order = Order


    def _deserialize(self, params):
        self._Message = params.get("Message")
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = QueryInvoiceResultData()
            self._Data._deserialize(params.get("Data"))
        if params.get("Order") is not None:
            self._Order = Order()
            self._Order._deserialize(params.get("Order"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryInvoiceResultData(AbstractModel):
    """查询发票结果数据

    """

    def __init__(self):
        r"""
        :param _OrderId: 订单号
        :type OrderId: str
        :param _OrderSn: 业务开票号
        :type OrderSn: str
        :param _Status: 发票状态
        :type Status: int
        :param _Message: 开票描述
        :type Message: str
        :param _TicketDate: 开票日期
        :type TicketDate: str
        :param _TicketSn: 发票号码
        :type TicketSn: str
        :param _TicketCode: 发票代码
        :type TicketCode: str
        :param _CheckCode: 检验码
        :type CheckCode: str
        :param _AmountWithTax: 含税金额(元)
        :type AmountWithTax: str
        :param _AmountWithoutTax: 不含税金额(元)
        :type AmountWithoutTax: str
        :param _TaxAmount: 税额(元)
        :type TaxAmount: str
        :param _IsRedWashed: 是否被红冲
        :type IsRedWashed: int
        :param _PdfUrl: pdf地址
        :type PdfUrl: str
        :param _ImageUrl: png地址
注意：此字段可能返回 null，表示取不到有效值。
        :type ImageUrl: str
        """
        self._OrderId = None
        self._OrderSn = None
        self._Status = None
        self._Message = None
        self._TicketDate = None
        self._TicketSn = None
        self._TicketCode = None
        self._CheckCode = None
        self._AmountWithTax = None
        self._AmountWithoutTax = None
        self._TaxAmount = None
        self._IsRedWashed = None
        self._PdfUrl = None
        self._ImageUrl = None

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def OrderSn(self):
        return self._OrderSn

    @OrderSn.setter
    def OrderSn(self, OrderSn):
        self._OrderSn = OrderSn

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Message(self):
        return self._Message

    @Message.setter
    def Message(self, Message):
        self._Message = Message

    @property
    def TicketDate(self):
        return self._TicketDate

    @TicketDate.setter
    def TicketDate(self, TicketDate):
        self._TicketDate = TicketDate

    @property
    def TicketSn(self):
        return self._TicketSn

    @TicketSn.setter
    def TicketSn(self, TicketSn):
        self._TicketSn = TicketSn

    @property
    def TicketCode(self):
        return self._TicketCode

    @TicketCode.setter
    def TicketCode(self, TicketCode):
        self._TicketCode = TicketCode

    @property
    def CheckCode(self):
        return self._CheckCode

    @CheckCode.setter
    def CheckCode(self, CheckCode):
        self._CheckCode = CheckCode

    @property
    def AmountWithTax(self):
        return self._AmountWithTax

    @AmountWithTax.setter
    def AmountWithTax(self, AmountWithTax):
        self._AmountWithTax = AmountWithTax

    @property
    def AmountWithoutTax(self):
        return self._AmountWithoutTax

    @AmountWithoutTax.setter
    def AmountWithoutTax(self, AmountWithoutTax):
        self._AmountWithoutTax = AmountWithoutTax

    @property
    def TaxAmount(self):
        return self._TaxAmount

    @TaxAmount.setter
    def TaxAmount(self, TaxAmount):
        self._TaxAmount = TaxAmount

    @property
    def IsRedWashed(self):
        return self._IsRedWashed

    @IsRedWashed.setter
    def IsRedWashed(self, IsRedWashed):
        self._IsRedWashed = IsRedWashed

    @property
    def PdfUrl(self):
        return self._PdfUrl

    @PdfUrl.setter
    def PdfUrl(self, PdfUrl):
        self._PdfUrl = PdfUrl

    @property
    def ImageUrl(self):
        return self._ImageUrl

    @ImageUrl.setter
    def ImageUrl(self, ImageUrl):
        self._ImageUrl = ImageUrl


    def _deserialize(self, params):
        self._OrderId = params.get("OrderId")
        self._OrderSn = params.get("OrderSn")
        self._Status = params.get("Status")
        self._Message = params.get("Message")
        self._TicketDate = params.get("TicketDate")
        self._TicketSn = params.get("TicketSn")
        self._TicketCode = params.get("TicketCode")
        self._CheckCode = params.get("CheckCode")
        self._AmountWithTax = params.get("AmountWithTax")
        self._AmountWithoutTax = params.get("AmountWithoutTax")
        self._TaxAmount = params.get("TaxAmount")
        self._IsRedWashed = params.get("IsRedWashed")
        self._PdfUrl = params.get("PdfUrl")
        self._ImageUrl = params.get("ImageUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryInvoiceV2Request(AbstractModel):
    """QueryInvoiceV2请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
0 : 高灯
1 : 票易通
        :type InvoicePlatformId: int
        :param _OrderId: 订单号
        :type OrderId: str
        :param _IsRed: 发票种类：
0：蓝票
1：红票【该字段默认为0， 如果需要查询红票信息，本字段必须传1，否则可能查询不到需要的发票信息】。
        :type IsRed: int
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        :param _InvoiceChannel: 开票渠道。0：线上渠道，1：线下渠道。不填默认为线上渠道
        :type InvoiceChannel: int
        :param _SellerTaxpayerNum: 当渠道为线下渠道时，必填
        :type SellerTaxpayerNum: str
        """
        self._InvoicePlatformId = None
        self._OrderId = None
        self._IsRed = None
        self._Profile = None
        self._InvoiceChannel = None
        self._SellerTaxpayerNum = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def IsRed(self):
        return self._IsRed

    @IsRed.setter
    def IsRed(self, IsRed):
        self._IsRed = IsRed

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def InvoiceChannel(self):
        return self._InvoiceChannel

    @InvoiceChannel.setter
    def InvoiceChannel(self, InvoiceChannel):
        self._InvoiceChannel = InvoiceChannel

    @property
    def SellerTaxpayerNum(self):
        return self._SellerTaxpayerNum

    @SellerTaxpayerNum.setter
    def SellerTaxpayerNum(self, SellerTaxpayerNum):
        self._SellerTaxpayerNum = SellerTaxpayerNum


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._OrderId = params.get("OrderId")
        self._IsRed = params.get("IsRed")
        self._Profile = params.get("Profile")
        self._InvoiceChannel = params.get("InvoiceChannel")
        self._SellerTaxpayerNum = params.get("SellerTaxpayerNum")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryInvoiceV2Response(AbstractModel):
    """QueryInvoiceV2返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 发票查询结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryInvoiceResultData`
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._ErrCode = None
        self._ErrMessage = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryInvoiceResultData()
            self._Result._deserialize(params.get("Result"))
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._RequestId = params.get("RequestId")


class QueryItem(AbstractModel):
    """聚鑫商户余额查询输出项

    """

    def __init__(self):
        r"""
        :param _SubAcctNo: 子商户账户
        :type SubAcctNo: str
        :param _SubAcctProperty: 子账户属性 
1：普通会员子账号 
2：挂账子账号 
3：手续费子账号 
4：利息子账号
5：平台担保子账号
        :type SubAcctProperty: str
        :param _SubMchId: 业务平台的子商户Id，唯一
        :type SubMchId: str
        :param _SubAcctName: 子账户名称
        :type SubAcctName: str
        :param _AcctAvailBal: 账户可用余额
        :type AcctAvailBal: str
        :param _CashAmt: 可提现金额
        :type CashAmt: str
        :param _MaintenanceDate: 维护日期 开户日期或修改日期
        :type MaintenanceDate: str
        """
        self._SubAcctNo = None
        self._SubAcctProperty = None
        self._SubMchId = None
        self._SubAcctName = None
        self._AcctAvailBal = None
        self._CashAmt = None
        self._MaintenanceDate = None

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def SubAcctProperty(self):
        return self._SubAcctProperty

    @SubAcctProperty.setter
    def SubAcctProperty(self, SubAcctProperty):
        self._SubAcctProperty = SubAcctProperty

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def SubAcctName(self):
        return self._SubAcctName

    @SubAcctName.setter
    def SubAcctName(self, SubAcctName):
        self._SubAcctName = SubAcctName

    @property
    def AcctAvailBal(self):
        return self._AcctAvailBal

    @AcctAvailBal.setter
    def AcctAvailBal(self, AcctAvailBal):
        self._AcctAvailBal = AcctAvailBal

    @property
    def CashAmt(self):
        return self._CashAmt

    @CashAmt.setter
    def CashAmt(self, CashAmt):
        self._CashAmt = CashAmt

    @property
    def MaintenanceDate(self):
        return self._MaintenanceDate

    @MaintenanceDate.setter
    def MaintenanceDate(self, MaintenanceDate):
        self._MaintenanceDate = MaintenanceDate


    def _deserialize(self, params):
        self._SubAcctNo = params.get("SubAcctNo")
        self._SubAcctProperty = params.get("SubAcctProperty")
        self._SubMchId = params.get("SubMchId")
        self._SubAcctName = params.get("SubAcctName")
        self._AcctAvailBal = params.get("AcctAvailBal")
        self._CashAmt = params.get("CashAmt")
        self._MaintenanceDate = params.get("MaintenanceDate")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMaliciousRegistrationRequest(AbstractModel):
    """QueryMaliciousRegistration请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户ID，调用方使用的商户号信息，与商户主体一一对应
        :type MerchantId: str
        :param _MerchantName: 商户名称
        :type MerchantName: str
        :param _CompanyName: 企业工商注册标准名称
        :type CompanyName: str
        :param _RegAddress: 注册地址
        :type RegAddress: str
        :param _RegTime: 商户进件Unix时间，单位秒（非企业注册工商时间)
        :type RegTime: int
        :param _USCI: 统一社会信用代码
        :type USCI: str
        :param _RegNumber: 工商注册码，匹配优先级为Usci>RegNumber>CompanyName
        :type RegNumber: str
        :param _EncryptedPhoneNumber: 手机号码32位MD5加密结果，全大写，格式为0086-13812345678
        :type EncryptedPhoneNumber: str
        :param _EncryptedEmailAddress: 邮箱32位MD5加密结果，全大写
        :type EncryptedEmailAddress: str
        :param _EncryptedPersonId: 身份证MD5加密结果，最后一位x大写
        :type EncryptedPersonId: str
        :param _Ip: 填写信息设备的IP地址
        :type Ip: str
        :param _Channel: 进件渠道号，客户自行编码即可
        :type Channel: str
        """
        self._MerchantId = None
        self._MerchantName = None
        self._CompanyName = None
        self._RegAddress = None
        self._RegTime = None
        self._USCI = None
        self._RegNumber = None
        self._EncryptedPhoneNumber = None
        self._EncryptedEmailAddress = None
        self._EncryptedPersonId = None
        self._Ip = None
        self._Channel = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def CompanyName(self):
        return self._CompanyName

    @CompanyName.setter
    def CompanyName(self, CompanyName):
        self._CompanyName = CompanyName

    @property
    def RegAddress(self):
        return self._RegAddress

    @RegAddress.setter
    def RegAddress(self, RegAddress):
        self._RegAddress = RegAddress

    @property
    def RegTime(self):
        return self._RegTime

    @RegTime.setter
    def RegTime(self, RegTime):
        self._RegTime = RegTime

    @property
    def USCI(self):
        return self._USCI

    @USCI.setter
    def USCI(self, USCI):
        self._USCI = USCI

    @property
    def RegNumber(self):
        return self._RegNumber

    @RegNumber.setter
    def RegNumber(self, RegNumber):
        self._RegNumber = RegNumber

    @property
    def EncryptedPhoneNumber(self):
        return self._EncryptedPhoneNumber

    @EncryptedPhoneNumber.setter
    def EncryptedPhoneNumber(self, EncryptedPhoneNumber):
        self._EncryptedPhoneNumber = EncryptedPhoneNumber

    @property
    def EncryptedEmailAddress(self):
        return self._EncryptedEmailAddress

    @EncryptedEmailAddress.setter
    def EncryptedEmailAddress(self, EncryptedEmailAddress):
        self._EncryptedEmailAddress = EncryptedEmailAddress

    @property
    def EncryptedPersonId(self):
        return self._EncryptedPersonId

    @EncryptedPersonId.setter
    def EncryptedPersonId(self, EncryptedPersonId):
        self._EncryptedPersonId = EncryptedPersonId

    @property
    def Ip(self):
        return self._Ip

    @Ip.setter
    def Ip(self, Ip):
        self._Ip = Ip

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantName = params.get("MerchantName")
        self._CompanyName = params.get("CompanyName")
        self._RegAddress = params.get("RegAddress")
        self._RegTime = params.get("RegTime")
        self._USCI = params.get("USCI")
        self._RegNumber = params.get("RegNumber")
        self._EncryptedPhoneNumber = params.get("EncryptedPhoneNumber")
        self._EncryptedEmailAddress = params.get("EncryptedEmailAddress")
        self._EncryptedPersonId = params.get("EncryptedPersonId")
        self._Ip = params.get("Ip")
        self._Channel = params.get("Channel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMaliciousRegistrationResponse(AbstractModel):
    """QueryMaliciousRegistration返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMsg: 错误消息
        :type ErrMsg: str
        :param _Result: 商户风险信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.MerchantRiskInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMsg = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMsg(self):
        return self._ErrMsg

    @ErrMsg.setter
    def ErrMsg(self, ErrMsg):
        self._ErrMsg = ErrMsg

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMsg = params.get("ErrMsg")
        if params.get("Result") is not None:
            self._Result = MerchantRiskInfo()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryMemberBindRequest(AbstractModel):
    """QueryMemberBind请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _QueryFlag: STRING(4)，查询标志（1: 全部会员; 2: 单个会员; 3: 单个会员的证件信息）
        :type QueryFlag: str
        :param _PageNum: STRING (10)，页码（起始值为1，每次最多返回20条记录，第二页返回的记录数为第21至40条记录，第三页为41至60条记录，顺序均按照建立时间的先后）
        :type PageNum: str
        :param _SubAcctNo: STRING(50)，见证子账户的账号（若SelectFlag为2或3时，子账户账号必输）
        :type SubAcctNo: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._QueryFlag = None
        self._PageNum = None
        self._SubAcctNo = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def QueryFlag(self):
        return self._QueryFlag

    @QueryFlag.setter
    def QueryFlag(self, QueryFlag):
        self._QueryFlag = QueryFlag

    @property
    def PageNum(self):
        return self._PageNum

    @PageNum.setter
    def PageNum(self, PageNum):
        self._PageNum = PageNum

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._QueryFlag = params.get("QueryFlag")
        self._PageNum = params.get("PageNum")
        self._SubAcctNo = params.get("SubAcctNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMemberBindResponse(AbstractModel):
    """QueryMemberBind返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ResultNum: STRING (10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _StartRecordNo: STRING(30)，起始记录号
注意：此字段可能返回 null，表示取不到有效值。
        :type StartRecordNo: str
        :param _EndFlag: STRING(2)，结束标志（0: 否; 1: 是）
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TotalNum: STRING (10)，符合业务查询条件的记录总数（重复次数，一次最多返回20条记录）
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of TranItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ResultNum = None
        self._StartRecordNo = None
        self._EndFlag = None
        self._TotalNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._RequestId = None

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def StartRecordNo(self):
        return self._StartRecordNo

    @StartRecordNo.setter
    def StartRecordNo(self, StartRecordNo):
        self._StartRecordNo = StartRecordNo

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ResultNum = params.get("ResultNum")
        self._StartRecordNo = params.get("StartRecordNo")
        self._EndFlag = params.get("EndFlag")
        self._TotalNum = params.get("TotalNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = TranItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._RequestId = params.get("RequestId")


class QueryMemberTransactionDetailsRequest(AbstractModel):
    """QueryMemberTransactionDetails请求参数结构体

    """

    def __init__(self):
        r"""
        :param _QueryDateType: 查询的交易发生时间类型。
__1__：当日
__2__：历史
        :type QueryDateType: str
        :param _QueryTranType: 查询的交易类型。
__1__：全部
__2__：转出
__3__：转入
        :type QueryTranType: str
        :param _BankAccountNumber: 父账户账号。
_平安渠道为资金汇总账号_
        :type BankAccountNumber: str
        :param _SubAccountNumber: 子账户账号。
_平安渠道为见证子账户的账号_
        :type SubAccountNumber: str
        :param _PageOffSet: 分页号, 起始值为1。
        :type PageOffSet: str
        :param _QueryStartDate: 查询开始日期，格式：yyyyMMdd。
__若是历史查询，则必输，当日查询时，不起作用；开始日期不能超过当前日期__
        :type QueryStartDate: str
        :param _QueryEndDate: 查询终止日期，格式：yyyyMMdd。
__若是历史查询，则必输，当日查询时，不起作用；终止日期不能超过当前日期__
        :type QueryEndDate: str
        :param _MidasEnvironment: 环境名。
__release__: 现网环境
__sandbox__: 沙箱环境
__development__: 开发环境
_缺省: release_
        :type MidasEnvironment: str
        """
        self._QueryDateType = None
        self._QueryTranType = None
        self._BankAccountNumber = None
        self._SubAccountNumber = None
        self._PageOffSet = None
        self._QueryStartDate = None
        self._QueryEndDate = None
        self._MidasEnvironment = None

    @property
    def QueryDateType(self):
        return self._QueryDateType

    @QueryDateType.setter
    def QueryDateType(self, QueryDateType):
        self._QueryDateType = QueryDateType

    @property
    def QueryTranType(self):
        return self._QueryTranType

    @QueryTranType.setter
    def QueryTranType(self, QueryTranType):
        self._QueryTranType = QueryTranType

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def SubAccountNumber(self):
        return self._SubAccountNumber

    @SubAccountNumber.setter
    def SubAccountNumber(self, SubAccountNumber):
        self._SubAccountNumber = SubAccountNumber

    @property
    def PageOffSet(self):
        return self._PageOffSet

    @PageOffSet.setter
    def PageOffSet(self, PageOffSet):
        self._PageOffSet = PageOffSet

    @property
    def QueryStartDate(self):
        return self._QueryStartDate

    @QueryStartDate.setter
    def QueryStartDate(self, QueryStartDate):
        self._QueryStartDate = QueryStartDate

    @property
    def QueryEndDate(self):
        return self._QueryEndDate

    @QueryEndDate.setter
    def QueryEndDate(self, QueryEndDate):
        self._QueryEndDate = QueryEndDate

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._QueryDateType = params.get("QueryDateType")
        self._QueryTranType = params.get("QueryTranType")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._SubAccountNumber = params.get("SubAccountNumber")
        self._PageOffSet = params.get("PageOffSet")
        self._QueryStartDate = params.get("QueryStartDate")
        self._QueryEndDate = params.get("QueryEndDate")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMemberTransactionDetailsResponse(AbstractModel):
    """QueryMemberTransactionDetails返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryMemberTransactionDetailsResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryMemberTransactionDetailsResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryMemberTransactionDetailsResult(AbstractModel):
    """聚鑫-查询会员间交易信息列表结果

    """

    def __init__(self):
        r"""
        :param _ResultCount: 本次交易返回查询结果记录数。
        :type ResultCount: int
        :param _TotalCount: 符合业务查询条件的记录总数。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalCount: int
        :param _EndFlag: 结束标志。
__0__：否
__1__：是
注意：此字段可能返回 null，表示取不到有效值。
        :type EndFlag: str
        :param _TranItemArray: 会员间交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of MemberTransactionItem
        """
        self._ResultCount = None
        self._TotalCount = None
        self._EndFlag = None
        self._TranItemArray = None

    @property
    def ResultCount(self):
        return self._ResultCount

    @ResultCount.setter
    def ResultCount(self, ResultCount):
        self._ResultCount = ResultCount

    @property
    def TotalCount(self):
        return self._TotalCount

    @TotalCount.setter
    def TotalCount(self, TotalCount):
        self._TotalCount = TotalCount

    @property
    def EndFlag(self):
        return self._EndFlag

    @EndFlag.setter
    def EndFlag(self, EndFlag):
        self._EndFlag = EndFlag

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray


    def _deserialize(self, params):
        self._ResultCount = params.get("ResultCount")
        self._TotalCount = params.get("TotalCount")
        self._EndFlag = params.get("EndFlag")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = MemberTransactionItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMemberTransactionRequest(AbstractModel):
    """QueryMemberTransaction请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1: 下单预支付; 2: 确认并付款; 3: 退款; 6: 直接支付T+1; 9: 直接支付T+0）
        :type FunctionFlag: str
        :param _OutSubAcctNo: STRING(50)，转出方的见证子账户的账号（付款方）
        :type OutSubAcctNo: str
        :param _OutMemberCode: STRING(32)，转出方的交易网会员代码
        :type OutMemberCode: str
        :param _OutSubAcctName: STRING(150)，转出方的见证子账户的户名（户名是绑卡时上送的账户名称，如果未绑卡，就送OpenCustAcctId接口上送的用户昵称UserNickname）
        :type OutSubAcctName: str
        :param _InSubAcctNo: STRING(50)，转入方的见证子账户的账号（收款方）
        :type InSubAcctNo: str
        :param _InMemberCode: STRING(32)，转入方的交易网会员代码
        :type InMemberCode: str
        :param _InSubAcctName: STRING(150)，转入方的见证子账户的户名（户名是绑卡时上送的账户名称，如果未绑卡，就送OpenCustAcctId接口上送的用户昵称UserNickname）
        :type InSubAcctName: str
        :param _TranAmt: STRING(20)，交易金额
        :type TranAmt: str
        :param _TranFee: STRING(20)，交易费用（平台收取交易费用）
        :type TranFee: str
        :param _TranType: STRING(20)，交易类型（01: 普通交易）
        :type TranType: str
        :param _Ccy: STRING(3)，币种（默认: RMB）
        :type Ccy: str
        :param _OrderNo: STRING(50)，订单号（功能标志为1,2,3时必输）
        :type OrderNo: str
        :param _OrderContent: STRING(500)，订单内容
        :type OrderContent: str
        :param _Remark: STRING(300)，备注（建议可送订单号，可在对账文件的备注字段获取到）
        :type Remark: str
        :param _ReservedMsg: STRING(1027)，保留域（若需短信验证码则此项必输短信指令号）
        :type ReservedMsg: str
        :param _WebSign: STRING(300)，网银签名（若需短信验证码则此项必输）
        :type WebSign: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._OutSubAcctNo = None
        self._OutMemberCode = None
        self._OutSubAcctName = None
        self._InSubAcctNo = None
        self._InMemberCode = None
        self._InSubAcctName = None
        self._TranAmt = None
        self._TranFee = None
        self._TranType = None
        self._Ccy = None
        self._OrderNo = None
        self._OrderContent = None
        self._Remark = None
        self._ReservedMsg = None
        self._WebSign = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def OutSubAcctNo(self):
        return self._OutSubAcctNo

    @OutSubAcctNo.setter
    def OutSubAcctNo(self, OutSubAcctNo):
        self._OutSubAcctNo = OutSubAcctNo

    @property
    def OutMemberCode(self):
        return self._OutMemberCode

    @OutMemberCode.setter
    def OutMemberCode(self, OutMemberCode):
        self._OutMemberCode = OutMemberCode

    @property
    def OutSubAcctName(self):
        return self._OutSubAcctName

    @OutSubAcctName.setter
    def OutSubAcctName(self, OutSubAcctName):
        self._OutSubAcctName = OutSubAcctName

    @property
    def InSubAcctNo(self):
        return self._InSubAcctNo

    @InSubAcctNo.setter
    def InSubAcctNo(self, InSubAcctNo):
        self._InSubAcctNo = InSubAcctNo

    @property
    def InMemberCode(self):
        return self._InMemberCode

    @InMemberCode.setter
    def InMemberCode(self, InMemberCode):
        self._InMemberCode = InMemberCode

    @property
    def InSubAcctName(self):
        return self._InSubAcctName

    @InSubAcctName.setter
    def InSubAcctName(self, InSubAcctName):
        self._InSubAcctName = InSubAcctName

    @property
    def TranAmt(self):
        return self._TranAmt

    @TranAmt.setter
    def TranAmt(self, TranAmt):
        self._TranAmt = TranAmt

    @property
    def TranFee(self):
        return self._TranFee

    @TranFee.setter
    def TranFee(self, TranFee):
        self._TranFee = TranFee

    @property
    def TranType(self):
        return self._TranType

    @TranType.setter
    def TranType(self, TranType):
        self._TranType = TranType

    @property
    def Ccy(self):
        return self._Ccy

    @Ccy.setter
    def Ccy(self, Ccy):
        self._Ccy = Ccy

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def OrderContent(self):
        return self._OrderContent

    @OrderContent.setter
    def OrderContent(self, OrderContent):
        self._OrderContent = OrderContent

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def WebSign(self):
        return self._WebSign

    @WebSign.setter
    def WebSign(self, WebSign):
        self._WebSign = WebSign

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._OutSubAcctNo = params.get("OutSubAcctNo")
        self._OutMemberCode = params.get("OutMemberCode")
        self._OutSubAcctName = params.get("OutSubAcctName")
        self._InSubAcctNo = params.get("InSubAcctNo")
        self._InMemberCode = params.get("InMemberCode")
        self._InSubAcctName = params.get("InSubAcctName")
        self._TranAmt = params.get("TranAmt")
        self._TranFee = params.get("TranFee")
        self._TranType = params.get("TranType")
        self._Ccy = params.get("Ccy")
        self._OrderNo = params.get("OrderNo")
        self._OrderContent = params.get("OrderContent")
        self._Remark = params.get("Remark")
        self._ReservedMsg = params.get("ReservedMsg")
        self._WebSign = params.get("WebSign")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMemberTransactionResponse(AbstractModel):
    """QueryMemberTransaction返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号（即电商见证宝系统生成的流水号，可关联具体一笔请求）
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryMerchantBalanceData(AbstractModel):
    """对接账户余额查询数据

    """

    def __init__(self):
        r"""
        :param _Currency: 余额币种
        :type Currency: str
        :param _Balance: 账户余额
        :type Balance: str
        :param _MerchantId: 商户ID
        :type MerchantId: str
        """
        self._Currency = None
        self._Balance = None
        self._MerchantId = None

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def Balance(self):
        return self._Balance

    @Balance.setter
    def Balance(self, Balance):
        self._Balance = Balance

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId


    def _deserialize(self, params):
        self._Currency = params.get("Currency")
        self._Balance = params.get("Balance")
        self._MerchantId = params.get("MerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantBalanceRequest(AbstractModel):
    """QueryMerchantBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Currency: 余额币种
        :type Currency: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._Currency = None
        self._Profile = None

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._Currency = params.get("Currency")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantBalanceResponse(AbstractModel):
    """QueryMerchantBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 对接方账户余额查询结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryMerchantBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryMerchantBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryMerchantBalanceResult(AbstractModel):
    """对接账户余额查询结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 对接账户余额查询数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryMerchantBalanceData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = QueryMerchantBalanceData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantClassificationRequest(AbstractModel):
    """QueryMerchantClassification请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantClassificationResponse(AbstractModel):
    """QueryMerchantClassification返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 查询商户分类响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of MerchantClassificationId
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = MerchantClassificationId()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryMerchantInfoForManagementRequest(AbstractModel):
    """QueryMerchantInfoForManagement请求参数结构体

    """

    def __init__(self):
        r"""
        :param _InvoicePlatformId: 开票平台ID
        :type InvoicePlatformId: int
        :param _Offset: 页码
        :type Offset: int
        :param _Limit: 页大小
        :type Limit: int
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        """
        self._InvoicePlatformId = None
        self._Offset = None
        self._Limit = None
        self._Profile = None

    @property
    def InvoicePlatformId(self):
        return self._InvoicePlatformId

    @InvoicePlatformId.setter
    def InvoicePlatformId(self, InvoicePlatformId):
        self._InvoicePlatformId = InvoicePlatformId

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._InvoicePlatformId = params.get("InvoicePlatformId")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantInfoForManagementResponse(AbstractModel):
    """QueryMerchantInfoForManagement返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 商户结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.MerchantManagementResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = MerchantManagementResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryMerchantOrderRequest(AbstractModel):
    """QueryMerchantOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的AppId。
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。平台唯一订单号。
        :type OrderNo: str
        """
        self._MerchantAppId = None
        self._OrderNo = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantOrderResponse(AbstractModel):
    """QueryMerchantOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的AppId。
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。平台唯一订单号。
        :type OrderNo: str
        :param _Status: 订单支付状态。0-下单失败 1-下单成功未支付 2-支付成功 3-支付失败 4-退款中 5-退款成功 6-退款失败 7-待付款 8-待确认。
        :type Status: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._OrderNo = None
        self._Status = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        self._Status = params.get("Status")
        self._RequestId = params.get("RequestId")


class QueryMerchantPayWayListRequest(AbstractModel):
    """QueryMerchantPayWayList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _PayType: 支付类型，逗号分隔。1-现金，2-主扫，3-被扫，4-JSAPI。
        :type PayType: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._PayType = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def PayType(self):
        return self._PayType

    @PayType.setter
    def PayType(self, PayType):
        self._PayType = PayType

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._PayType = params.get("PayType")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantPayWayListResponse(AbstractModel):
    """QueryMerchantPayWayList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 查询商户支付方式列表结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: list of MerchantPayWayData
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = []
            for item in params.get("Result"):
                obj = MerchantPayWayData()
                obj._deserialize(item)
                self._Result.append(obj)
        self._RequestId = params.get("RequestId")


class QueryMerchantRequest(AbstractModel):
    """QueryMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的 AppId
        :type MerchantAppId: str
        """
        self._MerchantAppId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryMerchantResponse(AbstractModel):
    """QueryMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 分配给商户的 AppId，该 AppId 为后续各项 交易的商户标识。
        :type MerchantAppId: str
        :param _MerchantName: 收款商户名称。
        :type MerchantName: str
        :param _BusinessPayFlag: B2B 支付标志。是否开通 B2B 支付， 1:开通 0:不开通。
        :type BusinessPayFlag: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._MerchantName = None
        self._BusinessPayFlag = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def BusinessPayFlag(self):
        return self._BusinessPayFlag

    @BusinessPayFlag.setter
    def BusinessPayFlag(self, BusinessPayFlag):
        self._BusinessPayFlag = BusinessPayFlag

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._MerchantName = params.get("MerchantName")
        self._BusinessPayFlag = params.get("BusinessPayFlag")
        self._RequestId = params.get("RequestId")


class QueryOpenBankBankAccountBalanceRequest(AbstractModel):
    """QueryOpenBankBankAccountBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 云企付渠道子商户号。入驻在渠道商户下的子商户ID，如付款方的商户ID，对应创建支付订单中接口参数中的PayerInfo中的payerId。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式，如
__EBANK_PAYMENT__:ebank付款
__OPENBANK_PAYMENT__: openbank付款
        :type PaymentMethod: str
        :param _BindSerialNo: 绑卡序列号，银行账户唯一ID，区分多卡或多账户的场景
        :type BindSerialNo: str
        :param _Environment: 环境类型
release:生产环境
sandbox:沙箱环境
缺省默认为生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BindSerialNo = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BindSerialNo = params.get("BindSerialNo")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBankAccountBalanceResponse(AbstractModel):
    """QueryOpenBankBankAccountBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 账户余额查询响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankBankAccountBalanceResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankBankAccountBalanceResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankBankAccountBalanceResult(AbstractModel):
    """云企付-查询账户余额

    """

    def __init__(self):
        r"""
        :param _TotalBalance: 总余额，单位分
        :type TotalBalance: str
        :param _YesterdayBalance: 昨日余额，单位分
        :type YesterdayBalance: str
        """
        self._TotalBalance = None
        self._YesterdayBalance = None

    @property
    def TotalBalance(self):
        return self._TotalBalance

    @TotalBalance.setter
    def TotalBalance(self, TotalBalance):
        self._TotalBalance = TotalBalance

    @property
    def YesterdayBalance(self):
        return self._YesterdayBalance

    @YesterdayBalance.setter
    def YesterdayBalance(self, YesterdayBalance):
        self._YesterdayBalance = YesterdayBalance


    def _deserialize(self, params):
        self._TotalBalance = params.get("TotalBalance")
        self._YesterdayBalance = params.get("YesterdayBalance")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBankBranchListRequest(AbstractModel):
    """QueryOpenBankBankBranchList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
__EBANK_PAYMENT__:ebank付款
__OPENBANK_PAYMENT__: openbank付款
        :type PaymentMethod: str
        :param _BankBranchName: 支行名称。
        :type BankBranchName: str
        :param _BankAbbreviation: 银行简称。
        :type BankAbbreviation: str
        :param _PageNumber: 页码。Index和Count必须大于等于1。Count建议不超过100。
        :type PageNumber: :class:`tencentcloud.cpdp.v20190820.models.Paging`
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BankBranchName = None
        self._BankAbbreviation = None
        self._PageNumber = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName

    @property
    def BankAbbreviation(self):
        return self._BankAbbreviation

    @BankAbbreviation.setter
    def BankAbbreviation(self, BankAbbreviation):
        self._BankAbbreviation = BankAbbreviation

    @property
    def PageNumber(self):
        return self._PageNumber

    @PageNumber.setter
    def PageNumber(self, PageNumber):
        self._PageNumber = PageNumber

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BankBranchName = params.get("BankBranchName")
        self._BankAbbreviation = params.get("BankAbbreviation")
        if params.get("PageNumber") is not None:
            self._PageNumber = Paging()
            self._PageNumber._deserialize(params.get("PageNumber"))
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBankBranchListResponse(AbstractModel):
    """QueryOpenBankBankBranchList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankBankBranchListResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankBankBranchListResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankBankBranchListResult(AbstractModel):
    """查询联行号返回结果

    """

    def __init__(self):
        r"""
        :param _BankBranchList: 支行列表。
        :type BankBranchList: list of BankBranchInfo
        :param _Count: 列表总数。
        :type Count: int
        """
        self._BankBranchList = None
        self._Count = None

    @property
    def BankBranchList(self):
        return self._BankBranchList

    @BankBranchList.setter
    def BankBranchList(self, BankBranchList):
        self._BankBranchList = BankBranchList

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("BankBranchList") is not None:
            self._BankBranchList = []
            for item in params.get("BankBranchList"):
                obj = BankBranchInfo()
                obj._deserialize(item)
                self._BankBranchList.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBillData(AbstractModel):
    """云企付-分页查询对账单数据结果

    """

    def __init__(self):
        r"""
        :param _BillDate: 交易日期
        :type BillDate: str
        :param _Channel: 渠道编码
        :type Channel: str
        :param _SubChannel: 二级渠道
注意：此字段可能返回 null，表示取不到有效值。
        :type SubChannel: str
        :param _ParentMerchantId: 系统父商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type ParentMerchantId: str
        :param _OutMerchantId: 外部商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutMerchantId: str
        :param _MerchantId: 系统商户号
        :type MerchantId: str
        :param _EndMerchantId: 第三方商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type EndMerchantId: str
        :param _OutTradeNo: 外部订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutTradeNo: str
        :param _TradeNo: 系统订单号
        :type TradeNo: str
        :param _EndTradeNo: 第三方订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type EndTradeNo: str
        :param _PaymentType: 收付类型，PAYMENT:付款，INCOME:收款
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentType: str
        :param _BusinessType: 业务类型，WITHDRAW:提现，PAY:支付，RECHARGE:充值，TRANSFER:转账，REFUND:退款
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessType: str
        :param _TradeTime: 发起交易时间，格式yyyy-MM-dd HH:mm:ss
        :type TradeTime: str
        :param _FinishTime: 交易完成时间，格式yyyy-MM-dd HH:mm:ss
注意：此字段可能返回 null，表示取不到有效值。
        :type FinishTime: str
        :param _TradeStatus: 交易状态，0:未知，1:成功，2:失败
        :type TradeStatus: str
        :param _CheckStatus: 对账状态，1:成功，2:失败 3:长账 4:短账
        :type CheckStatus: str
        :param _CheckFailReason: 对账失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type CheckFailReason: str
        :param _OrderAmount: 交易金额（元）
        :type OrderAmount: str
        :param _ServiceFee: 服务费（元）
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceFee: str
        :param _PayeeAccount: 收款人账号
注意：此字段可能返回 null，表示取不到有效值。
        :type PayeeAccount: str
        :param _PayeeName: 收款人名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayeeName: str
        :param _PayerAccount: 付款人账号
注意：此字段可能返回 null，表示取不到有效值。
        :type PayerAccount: str
        :param _PayerName: 付款人名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayerName: str
        :param _Description: 支付信息描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        """
        self._BillDate = None
        self._Channel = None
        self._SubChannel = None
        self._ParentMerchantId = None
        self._OutMerchantId = None
        self._MerchantId = None
        self._EndMerchantId = None
        self._OutTradeNo = None
        self._TradeNo = None
        self._EndTradeNo = None
        self._PaymentType = None
        self._BusinessType = None
        self._TradeTime = None
        self._FinishTime = None
        self._TradeStatus = None
        self._CheckStatus = None
        self._CheckFailReason = None
        self._OrderAmount = None
        self._ServiceFee = None
        self._PayeeAccount = None
        self._PayeeName = None
        self._PayerAccount = None
        self._PayerName = None
        self._Description = None

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def SubChannel(self):
        return self._SubChannel

    @SubChannel.setter
    def SubChannel(self, SubChannel):
        self._SubChannel = SubChannel

    @property
    def ParentMerchantId(self):
        return self._ParentMerchantId

    @ParentMerchantId.setter
    def ParentMerchantId(self, ParentMerchantId):
        self._ParentMerchantId = ParentMerchantId

    @property
    def OutMerchantId(self):
        return self._OutMerchantId

    @OutMerchantId.setter
    def OutMerchantId(self, OutMerchantId):
        self._OutMerchantId = OutMerchantId

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def EndMerchantId(self):
        return self._EndMerchantId

    @EndMerchantId.setter
    def EndMerchantId(self, EndMerchantId):
        self._EndMerchantId = EndMerchantId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def TradeNo(self):
        return self._TradeNo

    @TradeNo.setter
    def TradeNo(self, TradeNo):
        self._TradeNo = TradeNo

    @property
    def EndTradeNo(self):
        return self._EndTradeNo

    @EndTradeNo.setter
    def EndTradeNo(self, EndTradeNo):
        self._EndTradeNo = EndTradeNo

    @property
    def PaymentType(self):
        return self._PaymentType

    @PaymentType.setter
    def PaymentType(self, PaymentType):
        self._PaymentType = PaymentType

    @property
    def BusinessType(self):
        return self._BusinessType

    @BusinessType.setter
    def BusinessType(self, BusinessType):
        self._BusinessType = BusinessType

    @property
    def TradeTime(self):
        return self._TradeTime

    @TradeTime.setter
    def TradeTime(self, TradeTime):
        self._TradeTime = TradeTime

    @property
    def FinishTime(self):
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def TradeStatus(self):
        return self._TradeStatus

    @TradeStatus.setter
    def TradeStatus(self, TradeStatus):
        self._TradeStatus = TradeStatus

    @property
    def CheckStatus(self):
        return self._CheckStatus

    @CheckStatus.setter
    def CheckStatus(self, CheckStatus):
        self._CheckStatus = CheckStatus

    @property
    def CheckFailReason(self):
        return self._CheckFailReason

    @CheckFailReason.setter
    def CheckFailReason(self, CheckFailReason):
        self._CheckFailReason = CheckFailReason

    @property
    def OrderAmount(self):
        return self._OrderAmount

    @OrderAmount.setter
    def OrderAmount(self, OrderAmount):
        self._OrderAmount = OrderAmount

    @property
    def ServiceFee(self):
        return self._ServiceFee

    @ServiceFee.setter
    def ServiceFee(self, ServiceFee):
        self._ServiceFee = ServiceFee

    @property
    def PayeeAccount(self):
        return self._PayeeAccount

    @PayeeAccount.setter
    def PayeeAccount(self, PayeeAccount):
        self._PayeeAccount = PayeeAccount

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def PayerAccount(self):
        return self._PayerAccount

    @PayerAccount.setter
    def PayerAccount(self, PayerAccount):
        self._PayerAccount = PayerAccount

    @property
    def PayerName(self):
        return self._PayerName

    @PayerName.setter
    def PayerName(self, PayerName):
        self._PayerName = PayerName

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description


    def _deserialize(self, params):
        self._BillDate = params.get("BillDate")
        self._Channel = params.get("Channel")
        self._SubChannel = params.get("SubChannel")
        self._ParentMerchantId = params.get("ParentMerchantId")
        self._OutMerchantId = params.get("OutMerchantId")
        self._MerchantId = params.get("MerchantId")
        self._EndMerchantId = params.get("EndMerchantId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._TradeNo = params.get("TradeNo")
        self._EndTradeNo = params.get("EndTradeNo")
        self._PaymentType = params.get("PaymentType")
        self._BusinessType = params.get("BusinessType")
        self._TradeTime = params.get("TradeTime")
        self._FinishTime = params.get("FinishTime")
        self._TradeStatus = params.get("TradeStatus")
        self._CheckStatus = params.get("CheckStatus")
        self._CheckFailReason = params.get("CheckFailReason")
        self._OrderAmount = params.get("OrderAmount")
        self._ServiceFee = params.get("ServiceFee")
        self._PayeeAccount = params.get("PayeeAccount")
        self._PayeeName = params.get("PayeeName")
        self._PayerAccount = params.get("PayerAccount")
        self._PayerName = params.get("PayerName")
        self._Description = params.get("Description")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBillDataPageRequest(AbstractModel):
    """QueryOpenBankBillDataPage请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号，外部接入平台方入驻云企付平台后下发。
EBANK_PAYMENT支付方式下，填写渠道商户号；
SAFT_ISV支付方式下，填写渠道子商户号;
HELIPAY渠道下，填写渠道子商户号。
        :type ChannelMerchantId: str
        :param _BillDate: 账单日期,yyyy-MM-dd。
        :type BillDate: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
HELIPAY：合利宝
        :type ChannelName: str
        :param _PageNo: 分页页码。
        :type PageNo: int
        :param _PageSize: 分页大小，最大1000。
        :type PageSize: int
        :param _BillType: 账单类型，默认交易账单。
        :type BillType: str
        :param _PaymentMethod: 支付方式。详见附录-云企付枚举类说明-PaymentMethod。
        :type PaymentMethod: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._BillDate = None
        self._ChannelName = None
        self._PageNo = None
        self._PageSize = None
        self._BillType = None
        self._PaymentMethod = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PageNo(self):
        return self._PageNo

    @PageNo.setter
    def PageNo(self, PageNo):
        self._PageNo = PageNo

    @property
    def PageSize(self):
        return self._PageSize

    @PageSize.setter
    def PageSize(self, PageSize):
        self._PageSize = PageSize

    @property
    def BillType(self):
        return self._BillType

    @BillType.setter
    def BillType(self, BillType):
        self._BillType = BillType

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._BillDate = params.get("BillDate")
        self._ChannelName = params.get("ChannelName")
        self._PageNo = params.get("PageNo")
        self._PageSize = params.get("PageSize")
        self._BillType = params.get("BillType")
        self._PaymentMethod = params.get("PaymentMethod")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBillDataPageResponse(AbstractModel):
    """QueryOpenBankBillDataPage返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankBillDataPageResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankBillDataPageResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankBillDataPageResult(AbstractModel):
    """云企付-分页查询对账单数据结果

    """

    def __init__(self):
        r"""
        :param _PageNo: 页码
        :type PageNo: int
        :param _PageSize: 分页大小
        :type PageSize: int
        :param _Count: 总数
        :type Count: int
        :param _DataList: 账单数据明细
注意：此字段可能返回 null，表示取不到有效值。
        :type DataList: list of QueryOpenBankBillData
        """
        self._PageNo = None
        self._PageSize = None
        self._Count = None
        self._DataList = None

    @property
    def PageNo(self):
        return self._PageNo

    @PageNo.setter
    def PageNo(self, PageNo):
        self._PageNo = PageNo

    @property
    def PageSize(self):
        return self._PageSize

    @PageSize.setter
    def PageSize(self, PageSize):
        self._PageSize = PageSize

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def DataList(self):
        return self._DataList

    @DataList.setter
    def DataList(self, DataList):
        self._DataList = DataList


    def _deserialize(self, params):
        self._PageNo = params.get("PageNo")
        self._PageSize = params.get("PageSize")
        self._Count = params.get("Count")
        if params.get("DataList") is not None:
            self._DataList = []
            for item in params.get("DataList"):
                obj = QueryOpenBankBillData()
                obj._deserialize(item)
                self._DataList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBindExternalSubMerchantBankAccountRequest(AbstractModel):
    """QueryOpenBankBindExternalSubMerchantBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelApplyId: 渠道申请编号，与外部申请编号二者选填其一。
        :type ChannelApplyId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        :param _OutApplyId: 外部申请编号，与渠道申请编号二者选填其一。
        :type OutApplyId: str
        """
        self._ChannelSubMerchantId = None
        self._ChannelMerchantId = None
        self._ChannelApplyId = None
        self._Environment = None
        self._OutApplyId = None

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId


    def _deserialize(self, params):
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._Environment = params.get("Environment")
        self._OutApplyId = params.get("OutApplyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankBindExternalSubMerchantBankAccountResponse(AbstractModel):
    """QueryOpenBankBindExternalSubMerchantBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankBindExternalSubMerchantBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankBindExternalSubMerchantBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankBindExternalSubMerchantBankAccountResult(AbstractModel):
    """子商户银行卡绑定结果查询返回结果

    """

    def __init__(self):
        r"""
        :param _ExternalSubMerchantBankAccountReturnData: 渠道子商户收款方银行卡信息, 为JSON格式字符串（绑定成功状态下返回）。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalSubMerchantBankAccountReturnData: str
        :param _ChannelApplyId: 渠道申请编号。
        :type ChannelApplyId: str
        :param _BindStatus: 绑定状态。
__SUCCESS__: 绑定成功
__FAILED__: 绑定失败
__PROCESSING__: 绑定中
        :type BindStatus: str
        :param _BindMessage: 绑定返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type BindMessage: str
        :param _BindSerialNo: 绑卡序列号。
注意：此字段可能返回 null，表示取不到有效值。
        :type BindSerialNo: str
        """
        self._ExternalSubMerchantBankAccountReturnData = None
        self._ChannelApplyId = None
        self._BindStatus = None
        self._BindMessage = None
        self._BindSerialNo = None

    @property
    def ExternalSubMerchantBankAccountReturnData(self):
        return self._ExternalSubMerchantBankAccountReturnData

    @ExternalSubMerchantBankAccountReturnData.setter
    def ExternalSubMerchantBankAccountReturnData(self, ExternalSubMerchantBankAccountReturnData):
        self._ExternalSubMerchantBankAccountReturnData = ExternalSubMerchantBankAccountReturnData

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def BindStatus(self):
        return self._BindStatus

    @BindStatus.setter
    def BindStatus(self, BindStatus):
        self._BindStatus = BindStatus

    @property
    def BindMessage(self):
        return self._BindMessage

    @BindMessage.setter
    def BindMessage(self, BindMessage):
        self._BindMessage = BindMessage

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo


    def _deserialize(self, params):
        self._ExternalSubMerchantBankAccountReturnData = params.get("ExternalSubMerchantBankAccountReturnData")
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._BindStatus = params.get("BindStatus")
        self._BindMessage = params.get("BindMessage")
        self._BindSerialNo = params.get("BindSerialNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankDailyReceiptDownloadUrlRequest(AbstractModel):
    """QueryOpenBankDailyReceiptDownloadUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 云企付渠道子商户号。入驻在渠道商户下的子商户ID，如付款方的商户ID，对应创建支付订单中接口参数中的PayerInfo中的payerId。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 付款方式。如
__EBANK_PAYMENT__:ebank付款
__OPENBANK_PAYMENT__: openbank付款
        :type PaymentMethod: str
        :param _BindSerialNo: 绑卡序列号，银行卡唯一标记，资金账户ID，用于区分商户绑定多卡或多账户场景
        :type BindSerialNo: str
        :param _QueryDate: 查询日期，D日查询D-1日的回单文件
        :type QueryDate: str
        :param _Environment: 环境类型
release:生产环境
sandbox:沙箱环境
缺省默认为生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BindSerialNo = None
        self._QueryDate = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def QueryDate(self):
        return self._QueryDate

    @QueryDate.setter
    def QueryDate(self, QueryDate):
        self._QueryDate = QueryDate

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BindSerialNo = params.get("BindSerialNo")
        self._QueryDate = params.get("QueryDate")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankDailyReceiptDownloadUrlResponse(AbstractModel):
    """QueryOpenBankDailyReceiptDownloadUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 按日期查询回单下载地址响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankDailyReceiptDownloadUrlResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankDailyReceiptDownloadUrlResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankDailyReceiptDownloadUrlResult(AbstractModel):
    """云企付-按日期查询回单下载地址

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 回单文件下载链接
        :type DownloadUrl: str
        :param _ExpireTime: 过期时间
        :type ExpireTime: str
        :param _ReceiptStatus: 回单状态
PENDING: 处理中
READY: 可以下载
        :type ReceiptStatus: str
        """
        self._DownloadUrl = None
        self._ExpireTime = None
        self._ReceiptStatus = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime

    @property
    def ReceiptStatus(self):
        return self._ReceiptStatus

    @ReceiptStatus.setter
    def ReceiptStatus(self, ReceiptStatus):
        self._ReceiptStatus = ReceiptStatus


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._ExpireTime = params.get("ExpireTime")
        self._ReceiptStatus = params.get("ReceiptStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankDownLoadUrlRequest(AbstractModel):
    """QueryOpenBankDownLoadUrl请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号，外部接入平台方入驻云企付平台后下发。
EBANK_PAYMENT支付方式下，填写渠道商户号；
SAFT_ISV支付方式下，填写渠道子商户号。
        :type ChannelMerchantId: str
        :param _BillDate: 账单日期,yyyy-MM-dd。
        :type BillDate: str
        :param _BillType: 账单类型，默认交易账单。
        :type BillType: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境。
        :type Environment: str
        :param _ChannelName: 渠道名称。不填默认为商企付。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。不填默认为ebank支付。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
__SAFT_ISV__: 人资ISV支付
        :type PaymentMethod: str
        """
        self._ChannelMerchantId = None
        self._BillDate = None
        self._BillType = None
        self._Environment = None
        self._ChannelName = None
        self._PaymentMethod = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def BillDate(self):
        return self._BillDate

    @BillDate.setter
    def BillDate(self, BillDate):
        self._BillDate = BillDate

    @property
    def BillType(self):
        return self._BillType

    @BillType.setter
    def BillType(self, BillType):
        self._BillType = BillType

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._BillDate = params.get("BillDate")
        self._BillType = params.get("BillType")
        self._Environment = params.get("Environment")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankDownLoadUrlResponse(AbstractModel):
    """QueryOpenBankDownLoadUrl返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
        :type ErrMessage: str
        :param _Result: 查询对账文件下载响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankDownLoadUrlResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankDownLoadUrlResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankDownLoadUrlResult(AbstractModel):
    """云企付-查询对账单文件下载url

    """

    def __init__(self):
        r"""
        :param _DownloadUrl: 供下一步请求账单文件的下载地址。
        :type DownloadUrl: str
        :param _HashValue: 从 download_url 下载的文件的哈希值，用于校验文件的完整性。
        :type HashValue: str
        :param _HashType: 从 download_url 下载的文件的哈希类型，用于校验文件的完整性。
        :type HashType: str
        """
        self._DownloadUrl = None
        self._HashValue = None
        self._HashType = None

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def HashValue(self):
        return self._HashValue

    @HashValue.setter
    def HashValue(self, HashValue):
        self._HashValue = HashValue

    @property
    def HashType(self):
        return self._HashType

    @HashType.setter
    def HashType(self, HashType):
        self._HashType = HashType


    def _deserialize(self, params):
        self._DownloadUrl = params.get("DownloadUrl")
        self._HashValue = params.get("HashValue")
        self._HashType = params.get("HashType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubAccountBookBalanceRequest(AbstractModel):
    """QueryOpenBankExternalSubAccountBookBalance请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。目前只支持支付宝
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。目前只支持安心发支付
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
__SAFT_ISV__: 安心发支付
        :type PaymentMethod: str
        :param _OutAccountBookId: 外部账本号ID。与ChannelAccountBookId二者选填其一。
        :type OutAccountBookId: str
        :param _ChannelAccountBookId: 渠道账本号ID。与OutAccountBookId二者选填其一。
        :type ChannelAccountBookId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._OutAccountBookId = None
        self._ChannelAccountBookId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def OutAccountBookId(self):
        return self._OutAccountBookId

    @OutAccountBookId.setter
    def OutAccountBookId(self, OutAccountBookId):
        self._OutAccountBookId = OutAccountBookId

    @property
    def ChannelAccountBookId(self):
        return self._ChannelAccountBookId

    @ChannelAccountBookId.setter
    def ChannelAccountBookId(self, ChannelAccountBookId):
        self._ChannelAccountBookId = ChannelAccountBookId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._OutAccountBookId = params.get("OutAccountBookId")
        self._ChannelAccountBookId = params.get("ChannelAccountBookId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubAccountBookBalanceResponse(AbstractModel):
    """QueryOpenBankExternalSubAccountBookBalance返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryExternalAccountBookResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryExternalAccountBookResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankExternalSubMerchantBankAccountData(AbstractModel):
    """第三方子商户银行卡列表查询返回数据

    """

    def __init__(self):
        r"""
        :param _AccountBank: 开户银行。
        :type AccountBank: str
        :param _BindSerialNo: 绑卡序列号。
        :type BindSerialNo: str
        :param _AccountType: 账号类型。
__COLLECT_MONEY__: 收款卡
__PAYMENT__: 付款卡
        :type AccountType: str
        :param _BankBranchId: 支行号。
注意：此字段可能返回 null，表示取不到有效值。
        :type BankBranchId: str
        :param _AccountNumberLastFour: 银行卡卡后四位。
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountNumberLastFour: str
        """
        self._AccountBank = None
        self._BindSerialNo = None
        self._AccountType = None
        self._BankBranchId = None
        self._AccountNumberLastFour = None

    @property
    def AccountBank(self):
        return self._AccountBank

    @AccountBank.setter
    def AccountBank(self, AccountBank):
        self._AccountBank = AccountBank

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def AccountType(self):
        return self._AccountType

    @AccountType.setter
    def AccountType(self, AccountType):
        self._AccountType = AccountType

    @property
    def BankBranchId(self):
        return self._BankBranchId

    @BankBranchId.setter
    def BankBranchId(self, BankBranchId):
        self._BankBranchId = BankBranchId

    @property
    def AccountNumberLastFour(self):
        return self._AccountNumberLastFour

    @AccountNumberLastFour.setter
    def AccountNumberLastFour(self, AccountNumberLastFour):
        self._AccountNumberLastFour = AccountNumberLastFour


    def _deserialize(self, params):
        self._AccountBank = params.get("AccountBank")
        self._BindSerialNo = params.get("BindSerialNo")
        self._AccountType = params.get("AccountType")
        self._BankBranchId = params.get("BankBranchId")
        self._AccountNumberLastFour = params.get("AccountNumberLastFour")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubMerchantBankAccountRequest(AbstractModel):
    """QueryOpenBankExternalSubMerchantBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
        :type PaymentMethod: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubMerchantBankAccountResponse(AbstractModel):
    """QueryOpenBankExternalSubMerchantBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankExternalSubMerchantBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankExternalSubMerchantBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankExternalSubMerchantBankAccountResult(AbstractModel):
    """第三方子商户银行卡列表查询返回结果

    """

    def __init__(self):
        r"""
        :param _AccountList: 第三方渠道子商户查询银行账户返回。
        :type AccountList: list of QueryOpenBankExternalSubMerchantBankAccountData
        """
        self._AccountList = None

    @property
    def AccountList(self):
        return self._AccountList

    @AccountList.setter
    def AccountList(self, AccountList):
        self._AccountList = AccountList


    def _deserialize(self, params):
        if params.get("AccountList") is not None:
            self._AccountList = []
            for item in params.get("AccountList"):
                obj = QueryOpenBankExternalSubMerchantBankAccountData()
                obj._deserialize(item)
                self._AccountList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubMerchantRegistrationRequest(AbstractModel):
    """QueryOpenBankExternalSubMerchantRegistration请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。
        :type ChannelMerchantId: str
        :param _ChannelRegistrationNo: 渠道进件号，与外部进件号二者选填其一。
        :type ChannelRegistrationNo: str
        :param _OutRegistrationNo: 外部进件号，与渠道进件号二者选填其一。
        :type OutRegistrationNo: str
        :param _Environment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelRegistrationNo = None
        self._OutRegistrationNo = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def OutRegistrationNo(self):
        return self._OutRegistrationNo

    @OutRegistrationNo.setter
    def OutRegistrationNo(self, OutRegistrationNo):
        self._OutRegistrationNo = OutRegistrationNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._OutRegistrationNo = params.get("OutRegistrationNo")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankExternalSubMerchantRegistrationResponse(AbstractModel):
    """QueryOpenBankExternalSubMerchantRegistration返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankExternalSubMerchantRegistrationResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankExternalSubMerchantRegistrationResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankExternalSubMerchantRegistrationResult(AbstractModel):
    """第三方子商户进件结果查询返回结果

    """

    def __init__(self):
        r"""
        :param _RegistrationStatus: 进件状态。
__SUCCESS__: 进件成功
__FAILED__: 进件失败
__PROCESSING__: 进件中
        :type RegistrationStatus: str
        :param _RegistrationMessage: 进件返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type RegistrationMessage: str
        :param _ChannelRegistrationNo: 渠道进件号。
        :type ChannelRegistrationNo: str
        :param _ChannelSubMerchantId: 渠道子商户ID（进件成功返回）。
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubMerchantId: str
        :param _OutSubMerchantName: 外部子商户名称（进件成功返回）。
注意：此字段可能返回 null，表示取不到有效值。
        :type OutSubMerchantName: str
        :param _ChannelName: 渠道名称（进件成功返回）。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelName: str
        :param _PaymentMethod: 支付方式（进件成功返回）。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentMethod: str
        :param _BusinessLicenseNumber: 社会信用代码。
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicenseNumber: str
        :param _LegalName: 法人姓名
注意：此字段可能返回 null，表示取不到有效值。
        :type LegalName: str
        :param _ExternalReturnData: 第三方渠道查询进件返回数据。详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        """
        self._RegistrationStatus = None
        self._RegistrationMessage = None
        self._ChannelRegistrationNo = None
        self._ChannelSubMerchantId = None
        self._OutSubMerchantName = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BusinessLicenseNumber = None
        self._LegalName = None
        self._ExternalReturnData = None

    @property
    def RegistrationStatus(self):
        return self._RegistrationStatus

    @RegistrationStatus.setter
    def RegistrationStatus(self, RegistrationStatus):
        self._RegistrationStatus = RegistrationStatus

    @property
    def RegistrationMessage(self):
        return self._RegistrationMessage

    @RegistrationMessage.setter
    def RegistrationMessage(self, RegistrationMessage):
        self._RegistrationMessage = RegistrationMessage

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def OutSubMerchantName(self):
        return self._OutSubMerchantName

    @OutSubMerchantName.setter
    def OutSubMerchantName(self, OutSubMerchantName):
        self._OutSubMerchantName = OutSubMerchantName

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BusinessLicenseNumber(self):
        return self._BusinessLicenseNumber

    @BusinessLicenseNumber.setter
    def BusinessLicenseNumber(self, BusinessLicenseNumber):
        self._BusinessLicenseNumber = BusinessLicenseNumber

    @property
    def LegalName(self):
        return self._LegalName

    @LegalName.setter
    def LegalName(self, LegalName):
        self._LegalName = LegalName

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData


    def _deserialize(self, params):
        self._RegistrationStatus = params.get("RegistrationStatus")
        self._RegistrationMessage = params.get("RegistrationMessage")
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._OutSubMerchantName = params.get("OutSubMerchantName")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BusinessLicenseNumber = params.get("BusinessLicenseNumber")
        self._LegalName = params.get("LegalName")
        self._ExternalReturnData = params.get("ExternalReturnData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankOrderDetailReceiptInfoRequest(AbstractModel):
    """QueryOpenBankOrderDetailReceiptInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称，目前只支持ALIPAY
        :type ChannelName: str
        :param _PaymentMethod: 支付方式，目前只支持SAFT_ISV
        :type PaymentMethod: str
        :param _OutApplyId: 外部回单申请ID，与渠道回单申请ID二者选填其一
        :type OutApplyId: str
        :param _ChannelApplyId: 渠道回单申请ID，与外部回单申请ID二者选填其一
        :type ChannelApplyId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._OutApplyId = None
        self._ChannelApplyId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._OutApplyId = params.get("OutApplyId")
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankOrderDetailReceiptInfoResponse(AbstractModel):
    """QueryOpenBankOrderDetailReceiptInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankOrderDetailReceiptInfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankOrderDetailReceiptInfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankOrderDetailReceiptInfoResult(AbstractModel):
    """单笔交易回单申请结果查询

    """

    def __init__(self):
        r"""
        :param _ChannelApplyId: 渠道回单申请ID
        :type ChannelApplyId: str
        :param _ReceiptStatus: 申请状态。
SUCCESS：申请成功；
FAILED：申请失败；
PROCESSING：申请中。
注意：若返回申请中，需要再次调用回单申请结果查询接口，查询结果。
        :type ReceiptStatus: str
        :param _ReceiptMessage: 申请返回描述，例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type ReceiptMessage: str
        :param _DownloadUrl: 回单下载链接，申请成功时返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type DownloadUrl: str
        :param _ExpireTime: 过期时间，yyyy-MM-dd HH:mm:ss格式。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExpireTime: str
        """
        self._ChannelApplyId = None
        self._ReceiptStatus = None
        self._ReceiptMessage = None
        self._DownloadUrl = None
        self._ExpireTime = None

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def ReceiptStatus(self):
        return self._ReceiptStatus

    @ReceiptStatus.setter
    def ReceiptStatus(self, ReceiptStatus):
        self._ReceiptStatus = ReceiptStatus

    @property
    def ReceiptMessage(self):
        return self._ReceiptMessage

    @ReceiptMessage.setter
    def ReceiptMessage(self, ReceiptMessage):
        self._ReceiptMessage = ReceiptMessage

    @property
    def DownloadUrl(self):
        return self._DownloadUrl

    @DownloadUrl.setter
    def DownloadUrl(self, DownloadUrl):
        self._DownloadUrl = DownloadUrl

    @property
    def ExpireTime(self):
        return self._ExpireTime

    @ExpireTime.setter
    def ExpireTime(self, ExpireTime):
        self._ExpireTime = ExpireTime


    def _deserialize(self, params):
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._ReceiptStatus = params.get("ReceiptStatus")
        self._ReceiptMessage = params.get("ReceiptMessage")
        self._DownloadUrl = params.get("DownloadUrl")
        self._ExpireTime = params.get("ExpireTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankPaymentOrderRequest(AbstractModel):
    """QueryOpenBankPaymentOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。外部接入平台入驻云企付平台下发。
        :type ChannelMerchantId: str
        :param _OutOrderId: 外部商户订单号。与ChannelOrderId不能同时为空。若传空串即表示忽略该参数。
        :type OutOrderId: str
        :param _ChannelOrderId: 云平台订单号。与OutOrderId不能同时为空。若调用下单接口时，发生异常，无法取到ChannelOrderId，传空串即可
        :type ChannelOrderId: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境。
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankPaymentOrderResponse(AbstractModel):
    """QueryOpenBankPaymentOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
        :type ErrMessage: str
        :param _Result: 查询支付结果响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankPaymentOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankPaymentOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankPaymentOrderResult(AbstractModel):
    """云企付-查询订单支付结果

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。外部接入平台入驻云企付平台下发
        :type ChannelMerchantId: str
        :param _OutOrderId: 外部商户订单号
        :type OutOrderId: str
        :param _ChannelOrderId: 云企付平台订单号
        :type ChannelOrderId: str
        :param _ThirdPayOrderId: 第三方支付平台订单号
        :type ThirdPayOrderId: str
        :param _OrderStatus: 订单状态。
INIT：初始化
PAYING：支付中
ACCEPTED：支付受理成功
SUCCESS：支付成功
CLOSED：关单
PAY_FAIL：支付失败
REVOKE：退票
PART_REFUND：部分退款
FULL_REFUND：全部退款
        :type OrderStatus: str
        :param _ChannelName: 支付渠道名称，如TENPAY
        :type ChannelName: str
        :param _PaymentMethod: 付款方式。如EBANK_PAYMENT
OPENBANK_PAYMENT
        :type PaymentMethod: str
        :param _TotalAmount: 订单金额。单位分
        :type TotalAmount: int
        :param _PayAmount: 实际支付金额。单位分，支付成功时返回
        :type PayAmount: int
        :param _FailReason: 失败原因，若失败的返回
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _Attachment: 附加信息，查询时原样透传
注意：此字段可能返回 null，表示取不到有效值。
        :type Attachment: str
        :param _RedirectInfo: 重定向参数，用于客户端跳转，订单未支付时返回该参数
渠道为TENPAY，付款方式为EBANK_PAYMENT时返回
注意：此字段可能返回 null，表示取不到有效值。
        :type RedirectInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRedirectInfo`
        :param _ExternalReturnData: 第三方渠道返回信息，见渠道特殊说明,详情见附录-复杂类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        :param _BankApprovalGuideInfo: 银行复核指引。当TENPAY下OPENBANT_PAYMENT时，下单受理成功是返回。
注意：此字段可能返回 null，表示取不到有效值。
        :type BankApprovalGuideInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankApprovalGuideInfo`
        :param _FeeAmount: 手续费金额
注意：此字段可能返回 null，表示取不到有效值。
        :type FeeAmount: int
        :param _FeeRate: 手续费费率
注意：此字段可能返回 null，表示取不到有效值。
        :type FeeRate: int
        :param _ProfitShareRespInfoList: 分账信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ProfitShareRespInfoList: list of OpenBankProfitShareRespInfo
        :param _TimeFinish: 支付完成时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TimeFinish: str
        """
        self._ChannelMerchantId = None
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._ThirdPayOrderId = None
        self._OrderStatus = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._TotalAmount = None
        self._PayAmount = None
        self._FailReason = None
        self._Attachment = None
        self._RedirectInfo = None
        self._ExternalReturnData = None
        self._BankApprovalGuideInfo = None
        self._FeeAmount = None
        self._FeeRate = None
        self._ProfitShareRespInfoList = None
        self._TimeFinish = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def ThirdPayOrderId(self):
        return self._ThirdPayOrderId

    @ThirdPayOrderId.setter
    def ThirdPayOrderId(self, ThirdPayOrderId):
        self._ThirdPayOrderId = ThirdPayOrderId

    @property
    def OrderStatus(self):
        return self._OrderStatus

    @OrderStatus.setter
    def OrderStatus(self, OrderStatus):
        self._OrderStatus = OrderStatus

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def PayAmount(self):
        return self._PayAmount

    @PayAmount.setter
    def PayAmount(self, PayAmount):
        self._PayAmount = PayAmount

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def Attachment(self):
        return self._Attachment

    @Attachment.setter
    def Attachment(self, Attachment):
        self._Attachment = Attachment

    @property
    def RedirectInfo(self):
        return self._RedirectInfo

    @RedirectInfo.setter
    def RedirectInfo(self, RedirectInfo):
        self._RedirectInfo = RedirectInfo

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData

    @property
    def BankApprovalGuideInfo(self):
        return self._BankApprovalGuideInfo

    @BankApprovalGuideInfo.setter
    def BankApprovalGuideInfo(self, BankApprovalGuideInfo):
        self._BankApprovalGuideInfo = BankApprovalGuideInfo

    @property
    def FeeAmount(self):
        return self._FeeAmount

    @FeeAmount.setter
    def FeeAmount(self, FeeAmount):
        self._FeeAmount = FeeAmount

    @property
    def FeeRate(self):
        return self._FeeRate

    @FeeRate.setter
    def FeeRate(self, FeeRate):
        self._FeeRate = FeeRate

    @property
    def ProfitShareRespInfoList(self):
        return self._ProfitShareRespInfoList

    @ProfitShareRespInfoList.setter
    def ProfitShareRespInfoList(self, ProfitShareRespInfoList):
        self._ProfitShareRespInfoList = ProfitShareRespInfoList

    @property
    def TimeFinish(self):
        return self._TimeFinish

    @TimeFinish.setter
    def TimeFinish(self, TimeFinish):
        self._TimeFinish = TimeFinish


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._ThirdPayOrderId = params.get("ThirdPayOrderId")
        self._OrderStatus = params.get("OrderStatus")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._TotalAmount = params.get("TotalAmount")
        self._PayAmount = params.get("PayAmount")
        self._FailReason = params.get("FailReason")
        self._Attachment = params.get("Attachment")
        if params.get("RedirectInfo") is not None:
            self._RedirectInfo = OpenBankRedirectInfo()
            self._RedirectInfo._deserialize(params.get("RedirectInfo"))
        self._ExternalReturnData = params.get("ExternalReturnData")
        if params.get("BankApprovalGuideInfo") is not None:
            self._BankApprovalGuideInfo = OpenBankApprovalGuideInfo()
            self._BankApprovalGuideInfo._deserialize(params.get("BankApprovalGuideInfo"))
        self._FeeAmount = params.get("FeeAmount")
        self._FeeRate = params.get("FeeRate")
        if params.get("ProfitShareRespInfoList") is not None:
            self._ProfitShareRespInfoList = []
            for item in params.get("ProfitShareRespInfoList"):
                obj = OpenBankProfitShareRespInfo()
                obj._deserialize(item)
                self._ProfitShareRespInfoList.append(obj)
        self._TimeFinish = params.get("TimeFinish")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankProfitSharePayeeRequest(AbstractModel):
    """QueryOpenBankProfitSharePayee请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。代理商/集团ID
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户号。商户ID
        :type ChannelSubMerchantId: str
        :param _AccountId: 分账方绑定添加返回的AccountId，账户号和账户ID选其一
        :type AccountId: str
        :param _AccountNo: 银行账户号要与绑定收款方时保持一致，账户号AccountNo和账户AccoutId选其一
        :type AccountNo: str
        :param _Currency: 使用账户号时必选
        :type Currency: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._AccountId = None
        self._AccountNo = None
        self._Currency = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def AccountId(self):
        return self._AccountId

    @AccountId.setter
    def AccountId(self, AccountId):
        self._AccountId = AccountId

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._AccountId = params.get("AccountId")
        self._AccountNo = params.get("AccountNo")
        self._Currency = params.get("Currency")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankProfitSharePayeeResponse(AbstractModel):
    """QueryOpenBankProfitSharePayee返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误信息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankProfitSharePayeeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankProfitSharePayeeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankProfitSharePayeeResult(AbstractModel):
    """绑定分账收款方查询响应

    """

    def __init__(self):
        r"""
        :param _AccountId: 账户ID（受益ID）
        :type AccountId: str
        :param _AccountNo: 账户号。通联国际指客户银行账户号
        :type AccountNo: str
        :param _Currency: 账户货币。参考附录“币种类型”。
        :type Currency: str
        :param _AccountName: 收款人账户名称
        :type AccountName: str
        :param _BankName: 银行名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BankName: str
        :param _Nature: 账户类型。
00:借记卡
01:存折 
02:信用卡 
03:准贷记卡 
04:预付卡费 
05:境外卡
注意：此字段可能返回 null，表示取不到有效值。
        :type Nature: str
        :param _BindState: 状态
0-待审核；1-审核通过；2-审核不通过 3-关联实体未审核
        :type BindState: str
        :param _StateExplain: 状态描述
        :type StateExplain: str
        """
        self._AccountId = None
        self._AccountNo = None
        self._Currency = None
        self._AccountName = None
        self._BankName = None
        self._Nature = None
        self._BindState = None
        self._StateExplain = None

    @property
    def AccountId(self):
        return self._AccountId

    @AccountId.setter
    def AccountId(self, AccountId):
        self._AccountId = AccountId

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def Nature(self):
        return self._Nature

    @Nature.setter
    def Nature(self, Nature):
        self._Nature = Nature

    @property
    def BindState(self):
        return self._BindState

    @BindState.setter
    def BindState(self, BindState):
        self._BindState = BindState

    @property
    def StateExplain(self):
        return self._StateExplain

    @StateExplain.setter
    def StateExplain(self, StateExplain):
        self._StateExplain = StateExplain


    def _deserialize(self, params):
        self._AccountId = params.get("AccountId")
        self._AccountNo = params.get("AccountNo")
        self._Currency = params.get("Currency")
        self._AccountName = params.get("AccountName")
        self._BankName = params.get("BankName")
        self._Nature = params.get("Nature")
        self._BindState = params.get("BindState")
        self._StateExplain = params.get("StateExplain")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankRefundOrderRequest(AbstractModel):
    """QueryOpenBankRefundOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。
        :type ChannelMerchantId: str
        :param _OutRefundId: 外部商户退单号，与渠道退款单号二者选填其一。
        :type OutRefundId: str
        :param _ChannelRefundId: 渠道退款订单号，与外部商户退款单号二者选填其一。
        :type ChannelRefundId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._OutRefundId = None
        self._ChannelRefundId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutRefundId(self):
        return self._OutRefundId

    @OutRefundId.setter
    def OutRefundId(self, OutRefundId):
        self._OutRefundId = OutRefundId

    @property
    def ChannelRefundId(self):
        return self._ChannelRefundId

    @ChannelRefundId.setter
    def ChannelRefundId(self, ChannelRefundId):
        self._ChannelRefundId = ChannelRefundId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutRefundId = params.get("OutRefundId")
        self._ChannelRefundId = params.get("ChannelRefundId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankRefundOrderResponse(AbstractModel):
    """QueryOpenBankRefundOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.OpenBankQueryRefundOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = OpenBankQueryRefundOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSettleOrderRequest(AbstractModel):
    """QueryOpenBankSettleOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户号
        :type ChannelSubMerchantId: str
        :param _OutSettleId: 外部结算流水号，与渠道结算流水号二选一
        :type OutSettleId: str
        :param _ChannelSettleId: 渠道结算流水号，与外部结算流水号二选一
        :type ChannelSettleId: str
        :param _Environment: 接入环境。沙箱环境填 sandbox。缺省默认调用生产环境
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._OutSettleId = None
        self._ChannelSettleId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def OutSettleId(self):
        return self._OutSettleId

    @OutSettleId.setter
    def OutSettleId(self, OutSettleId):
        self._OutSettleId = OutSettleId

    @property
    def ChannelSettleId(self):
        return self._ChannelSettleId

    @ChannelSettleId.setter
    def ChannelSettleId(self, ChannelSettleId):
        self._ChannelSettleId = ChannelSettleId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._OutSettleId = params.get("OutSettleId")
        self._ChannelSettleId = params.get("ChannelSettleId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSettleOrderResponse(AbstractModel):
    """QueryOpenBankSettleOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankSettleOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankSettleOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSettleOrderResult(AbstractModel):
    """云企付结算查询结果

    """

    def __init__(self):
        r"""
        :param _OutSettleId: 外部结算流水号
        :type OutSettleId: str
        :param _ChannelSettleId: 渠道结算流水号
        :type ChannelSettleId: str
        :param _SettleStatus: 退款状态。
SUCCESS：结算成功；
FAILED：结算失败；
PROCESSING：结算中;
INIT:初始化;
ACCEPT_FAILED:受理失败,底层银行返回订单不存在
ACCEPTED：受理成功
_UNKNOWN：默认未知
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleStatus: str
        :param _SettleAmount: 结算金额
        :type SettleAmount: int
        :param _SettleDate: 结算日期，格式YYYYMMdd
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleDate: str
        :param _SettleType: 结算类型（T1/D1）
        :type SettleType: str
        :param _FailReason: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _TimeFinish: 完成时间，格式yyyy-MM-dd HH:mm:ss
注意：此字段可能返回 null，表示取不到有效值。
        :type TimeFinish: str
        :param _SettleFee: 结算手续费
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleFee: str
        :param _Currency: 账户货币。参考附录“币种类型”。
注意：此字段可能返回 null，表示取不到有效值。
        :type Currency: str
        """
        self._OutSettleId = None
        self._ChannelSettleId = None
        self._SettleStatus = None
        self._SettleAmount = None
        self._SettleDate = None
        self._SettleType = None
        self._FailReason = None
        self._TimeFinish = None
        self._SettleFee = None
        self._Currency = None

    @property
    def OutSettleId(self):
        return self._OutSettleId

    @OutSettleId.setter
    def OutSettleId(self, OutSettleId):
        self._OutSettleId = OutSettleId

    @property
    def ChannelSettleId(self):
        return self._ChannelSettleId

    @ChannelSettleId.setter
    def ChannelSettleId(self, ChannelSettleId):
        self._ChannelSettleId = ChannelSettleId

    @property
    def SettleStatus(self):
        return self._SettleStatus

    @SettleStatus.setter
    def SettleStatus(self, SettleStatus):
        self._SettleStatus = SettleStatus

    @property
    def SettleAmount(self):
        return self._SettleAmount

    @SettleAmount.setter
    def SettleAmount(self, SettleAmount):
        self._SettleAmount = SettleAmount

    @property
    def SettleDate(self):
        return self._SettleDate

    @SettleDate.setter
    def SettleDate(self, SettleDate):
        self._SettleDate = SettleDate

    @property
    def SettleType(self):
        return self._SettleType

    @SettleType.setter
    def SettleType(self, SettleType):
        self._SettleType = SettleType

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def TimeFinish(self):
        return self._TimeFinish

    @TimeFinish.setter
    def TimeFinish(self, TimeFinish):
        self._TimeFinish = TimeFinish

    @property
    def SettleFee(self):
        return self._SettleFee

    @SettleFee.setter
    def SettleFee(self, SettleFee):
        self._SettleFee = SettleFee

    @property
    def Currency(self):
        return self._Currency

    @Currency.setter
    def Currency(self, Currency):
        self._Currency = Currency


    def _deserialize(self, params):
        self._OutSettleId = params.get("OutSettleId")
        self._ChannelSettleId = params.get("ChannelSettleId")
        self._SettleStatus = params.get("SettleStatus")
        self._SettleAmount = params.get("SettleAmount")
        self._SettleDate = params.get("SettleDate")
        self._SettleType = params.get("SettleType")
        self._FailReason = params.get("FailReason")
        self._TimeFinish = params.get("TimeFinish")
        self._SettleFee = params.get("SettleFee")
        self._Currency = params.get("Currency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantCredentialRequest(AbstractModel):
    """QueryOpenBankSubMerchantCredential请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-枚举类型-ChannelName。
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
合利宝渠道不需要传。
        :type PaymentMethod: str
        :param _OutApplyId: 外部申请流水号。
外部申请流水号与渠道申请流水号两者选填其一。
        :type OutApplyId: str
        :param _ChannelApplyId: 渠道申请流水号。
外部申请流水号与渠道申请流水号两者选填其一。
        :type ChannelApplyId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._OutApplyId = None
        self._ChannelApplyId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._OutApplyId = params.get("OutApplyId")
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantCredentialResponse(AbstractModel):
    """QueryOpenBankSubMerchantCredential返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankSubMerchantCredentialResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankSubMerchantCredentialResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSubMerchantCredentialResult(AbstractModel):
    """子商户资质文件查询

    """

    def __init__(self):
        r"""
        :param _UploadStatus: 上传状态
        :type UploadStatus: str
        :param _UploadMessage: 上传描述
注意：此字段可能返回 null，表示取不到有效值。
        :type UploadMessage: str
        """
        self._UploadStatus = None
        self._UploadMessage = None

    @property
    def UploadStatus(self):
        return self._UploadStatus

    @UploadStatus.setter
    def UploadStatus(self, UploadStatus):
        self._UploadStatus = UploadStatus

    @property
    def UploadMessage(self):
        return self._UploadMessage

    @UploadMessage.setter
    def UploadMessage(self, UploadMessage):
        self._UploadMessage = UploadMessage


    def _deserialize(self, params):
        self._UploadStatus = params.get("UploadStatus")
        self._UploadMessage = params.get("UploadMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantRateConfigureRequest(AbstractModel):
    """QueryOpenBankSubMerchantRateConfigure请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelRegistrationNo: 渠道进件序列号。
        :type ChannelRegistrationNo: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
TENPAY: 商企付
WECHAT: 微信支付
ALIPAY: 支付宝
HELIPAY:合利宝
        :type ChannelName: str
        :param _ChannelProductFeeNo: 渠道产品费率序列号。与外部产品费率序列号二者选填其一。
        :type ChannelProductFeeNo: str
        :param _OutProductFeeNo: 外部产品费率序列号。与渠道产品费率序列号二者选填其一。
        :type OutProductFeeNo: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelRegistrationNo = None
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._ChannelProductFeeNo = None
        self._OutProductFeeNo = None
        self._Environment = None

    @property
    def ChannelRegistrationNo(self):
        return self._ChannelRegistrationNo

    @ChannelRegistrationNo.setter
    def ChannelRegistrationNo(self, ChannelRegistrationNo):
        self._ChannelRegistrationNo = ChannelRegistrationNo

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def ChannelProductFeeNo(self):
        return self._ChannelProductFeeNo

    @ChannelProductFeeNo.setter
    def ChannelProductFeeNo(self, ChannelProductFeeNo):
        self._ChannelProductFeeNo = ChannelProductFeeNo

    @property
    def OutProductFeeNo(self):
        return self._OutProductFeeNo

    @OutProductFeeNo.setter
    def OutProductFeeNo(self, OutProductFeeNo):
        self._OutProductFeeNo = OutProductFeeNo

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelRegistrationNo = params.get("ChannelRegistrationNo")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._ChannelProductFeeNo = params.get("ChannelProductFeeNo")
        self._OutProductFeeNo = params.get("OutProductFeeNo")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantRateConfigureResponse(AbstractModel):
    """QueryOpenBankSubMerchantRateConfigure返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankSubMerchantRateConfigureResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankSubMerchantRateConfigureResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSubMerchantRateConfigureResult(AbstractModel):
    """子商户费率配置查询结果

    """

    def __init__(self):
        r"""
        :param _DealStatus: 处理状态 
SUCCESS: 开通成功 
FAILED: 开通失败
PROCESSING: 开通中
        :type DealStatus: str
        :param _DealMessage: 处理描述
注意：此字段可能返回 null，表示取不到有效值。
        :type DealMessage: str
        """
        self._DealStatus = None
        self._DealMessage = None

    @property
    def DealStatus(self):
        return self._DealStatus

    @DealStatus.setter
    def DealStatus(self, DealStatus):
        self._DealStatus = DealStatus

    @property
    def DealMessage(self):
        return self._DealMessage

    @DealMessage.setter
    def DealMessage(self, DealMessage):
        self._DealMessage = DealMessage


    def _deserialize(self, params):
        self._DealStatus = params.get("DealStatus")
        self._DealMessage = params.get("DealMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantSignOnlineRequest(AbstractModel):
    """QueryOpenBankSubMerchantSignOnline请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。外部平台接入云企付平台下发。必填。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-枚举类型-ChannelName。
        :type ChannelName: str
        :param _OutSubMerchantId: 外部子商户ID。
        :type OutSubMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._OutSubMerchantId = None
        self._ChannelSubMerchantId = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def OutSubMerchantId(self):
        return self._OutSubMerchantId

    @OutSubMerchantId.setter
    def OutSubMerchantId(self, OutSubMerchantId):
        self._OutSubMerchantId = OutSubMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._OutSubMerchantId = params.get("OutSubMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSubMerchantSignOnlineResponse(AbstractModel):
    """QueryOpenBankSubMerchantSignOnline返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误信息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankSubMerchantSignOnlineResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankSubMerchantSignOnlineResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSubMerchantSignOnlineResult(AbstractModel):
    """子商户查询签约返回结果

    """

    def __init__(self):
        r"""
        :param _SignStatus: 处理状态
  SUCCESS：签约成功
  FAILED：签约失败
  PROCESSING：签约中
        :type SignStatus: str
        :param _SignMessage: 上传返回描述，例如失败原因等
注意：此字段可能返回 null，表示取不到有效值。
        :type SignMessage: str
        """
        self._SignStatus = None
        self._SignMessage = None

    @property
    def SignStatus(self):
        return self._SignStatus

    @SignStatus.setter
    def SignStatus(self, SignStatus):
        self._SignStatus = SignStatus

    @property
    def SignMessage(self):
        return self._SignMessage

    @SignMessage.setter
    def SignMessage(self, SignMessage):
        self._SignMessage = SignMessage


    def _deserialize(self, params):
        self._SignStatus = params.get("SignStatus")
        self._SignMessage = params.get("SignMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSupportBankListRequest(AbstractModel):
    """QueryOpenBankSupportBankList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
__EBANK_PAYMENT__:ebank付款
__OPENBANK_PAYMENT__: openbank付款
        :type PaymentMethod: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankSupportBankListResponse(AbstractModel):
    """QueryOpenBankSupportBankList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankSupportBankListResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankSupportBankListResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankSupportBankListResult(AbstractModel):
    """查询支持的银行列表返回结果

    """

    def __init__(self):
        r"""
        :param _SupportBankList: 支持的银行列表
        :type SupportBankList: list of SupportBankInfo
        """
        self._SupportBankList = None

    @property
    def SupportBankList(self):
        return self._SupportBankList

    @SupportBankList.setter
    def SupportBankList(self, SupportBankList):
        self._SupportBankList = SupportBankList


    def _deserialize(self, params):
        if params.get("SupportBankList") is not None:
            self._SupportBankList = []
            for item in params.get("SupportBankList"):
                obj = SupportBankInfo()
                obj._deserialize(item)
                self._SupportBankList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankUnbindExternalSubMerchantBankAccountRequest(AbstractModel):
    """QueryOpenBankUnbindExternalSubMerchantBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelApplyId: 渠道申请编号，与外部申请编号二者选填其一。
        :type ChannelApplyId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        :param _OutApplyId: 外部申请编号，与渠道申请编号二者选填其一。
        :type OutApplyId: str
        """
        self._ChannelSubMerchantId = None
        self._ChannelMerchantId = None
        self._ChannelApplyId = None
        self._Environment = None
        self._OutApplyId = None

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId


    def _deserialize(self, params):
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._Environment = params.get("Environment")
        self._OutApplyId = params.get("OutApplyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankUnbindExternalSubMerchantBankAccountResponse(AbstractModel):
    """QueryOpenBankUnbindExternalSubMerchantBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankUnbindExternalSubMerchantBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankUnbindExternalSubMerchantBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankUnbindExternalSubMerchantBankAccountResult(AbstractModel):
    """第三方子商户银行卡解绑结果查询返回结果

    """

    def __init__(self):
        r"""
        :param _ChannelApplyId: 渠道申请编号。
        :type ChannelApplyId: str
        :param _UnbindStatus: 解绑状态。
__SUCCESS__: 解绑成功
__FAILED__: 解绑失败
__PROCESSING__: 解绑中
        :type UnbindStatus: str
        :param _UnbindMessage: 解绑返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type UnbindMessage: str
        """
        self._ChannelApplyId = None
        self._UnbindStatus = None
        self._UnbindMessage = None

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def UnbindStatus(self):
        return self._UnbindStatus

    @UnbindStatus.setter
    def UnbindStatus(self, UnbindStatus):
        self._UnbindStatus = UnbindStatus

    @property
    def UnbindMessage(self):
        return self._UnbindMessage

    @UnbindMessage.setter
    def UnbindMessage(self, UnbindMessage):
        self._UnbindMessage = UnbindMessage


    def _deserialize(self, params):
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._UnbindStatus = params.get("UnbindStatus")
        self._UnbindMessage = params.get("UnbindMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankVerificationOrderRequest(AbstractModel):
    """QueryOpenBankVerificationOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 云企付渠道商户号。外部接入平台入驻云企付平台后下发。
        :type ChannelMerchantId: str
        :param _ChannelVerificationId: 云企付渠道核销订单号。与OutVerificationId不能同时为空。
        :type ChannelVerificationId: str
        :param _OutVerificationId: 外部核销申请订单号。与ChannelVerificationId不能同时为空。
        :type OutVerificationId: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelVerificationId = None
        self._OutVerificationId = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelVerificationId(self):
        return self._ChannelVerificationId

    @ChannelVerificationId.setter
    def ChannelVerificationId(self, ChannelVerificationId):
        self._ChannelVerificationId = ChannelVerificationId

    @property
    def OutVerificationId(self):
        return self._OutVerificationId

    @OutVerificationId.setter
    def OutVerificationId(self, OutVerificationId):
        self._OutVerificationId = OutVerificationId

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelVerificationId = params.get("ChannelVerificationId")
        self._OutVerificationId = params.get("OutVerificationId")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOpenBankVerificationOrderResponse(AbstractModel):
    """QueryOpenBankVerificationOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 核销查询响应对象。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOpenBankVerificationResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOpenBankVerificationResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOpenBankVerificationResult(AbstractModel):
    """云企付-查询核销申请结果

    """

    def __init__(self):
        r"""
        :param _ChannelVerificationId: 云企付渠道核销订单号
        :type ChannelVerificationId: str
        :param _ThirdVerificationId: 第三方支付渠道核销订单号
        :type ThirdVerificationId: str
        :param _VerificationAmount: 核销金额，单位分
        :type VerificationAmount: int
        :param _VerificationStatus: 核销状态
INIT("INIT","初始化"),
SUCCESS("SUCCESS","核销成功"),
FAILED("FAILED","核销失败"),
PROCESSING("PROCESSING","核销中");
        :type VerificationStatus: str
        :param _FailReason: 失败原因，若核销失败，附上原因。
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _ThirdVerificationReturnData: 渠道附加返回信息，一般情况可以不关注
注意：此字段可能返回 null，表示取不到有效值。
        :type ThirdVerificationReturnData: str
        """
        self._ChannelVerificationId = None
        self._ThirdVerificationId = None
        self._VerificationAmount = None
        self._VerificationStatus = None
        self._FailReason = None
        self._ThirdVerificationReturnData = None

    @property
    def ChannelVerificationId(self):
        return self._ChannelVerificationId

    @ChannelVerificationId.setter
    def ChannelVerificationId(self, ChannelVerificationId):
        self._ChannelVerificationId = ChannelVerificationId

    @property
    def ThirdVerificationId(self):
        return self._ThirdVerificationId

    @ThirdVerificationId.setter
    def ThirdVerificationId(self, ThirdVerificationId):
        self._ThirdVerificationId = ThirdVerificationId

    @property
    def VerificationAmount(self):
        return self._VerificationAmount

    @VerificationAmount.setter
    def VerificationAmount(self, VerificationAmount):
        self._VerificationAmount = VerificationAmount

    @property
    def VerificationStatus(self):
        return self._VerificationStatus

    @VerificationStatus.setter
    def VerificationStatus(self, VerificationStatus):
        self._VerificationStatus = VerificationStatus

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def ThirdVerificationReturnData(self):
        return self._ThirdVerificationReturnData

    @ThirdVerificationReturnData.setter
    def ThirdVerificationReturnData(self, ThirdVerificationReturnData):
        self._ThirdVerificationReturnData = ThirdVerificationReturnData


    def _deserialize(self, params):
        self._ChannelVerificationId = params.get("ChannelVerificationId")
        self._ThirdVerificationId = params.get("ThirdVerificationId")
        self._VerificationAmount = params.get("VerificationAmount")
        self._VerificationStatus = params.get("VerificationStatus")
        self._FailReason = params.get("FailReason")
        self._ThirdVerificationReturnData = params.get("ThirdVerificationReturnData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOrderOutOrderList(AbstractModel):
    """查询订单接口的出参，订单列表

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _Amt: 支付金额，单位：分
        :type Amt: int
        :param _UserId: 用户Id
        :type UserId: str
        :param _CashAmt: 现金支付金额
        :type CashAmt: str
        :param _Metadata: 发货标识，由业务在调用聚鑫下单 接口的时候下发
        :type Metadata: str
        :param _PayTime: 支付时间unix时间戳
        :type PayTime: str
        :param _CouponAmt: 抵扣券金额
        :type CouponAmt: str
        :param _OrderTime: 下单时间unix时间戳
        :type OrderTime: str
        :param _ProductId: 物品id
        :type ProductId: str
        :param _SceneInfo: 高速场景信息
        :type SceneInfo: str
        :param _OrderState: 当前订单的订单状态 
0：初始状态，获取聚鑫交易订单成功；  
1：拉起聚鑫支付页面成功，用户未 支付；
2：用户支付成功，正在发货；
3：用户支付成功，发货失败；
4：用户支付成功，发货成功；
5：聚鑫支付页面正在失效中；
6：聚鑫支付页面已经失效；
        :type OrderState: str
        :param _Channel: 支付渠道：wechat：微信支付;
qqwallet：QQ钱包;
bank：网银
        :type Channel: str
        :param _RefundFlag: 是否曾退款
        :type RefundFlag: str
        :param _OutTradeNo: 务支付订单号
        :type OutTradeNo: str
        :param _ProductName: 商品名称
        :type ProductName: str
        :param _CallBackTime: 支付回调时间，unix时间戳
        :type CallBackTime: str
        :param _CurrencyType: ISO 货币代码，CNY
        :type CurrencyType: str
        :param _AcctSubAppId: 微校场景账户Id
        :type AcctSubAppId: str
        :param _TransactionId: 调用下单接口获取的聚鑫交易订单
        :type TransactionId: str
        :param _ChannelOrderId: 聚鑫内部渠道订单号
        :type ChannelOrderId: str
        :param _SubOrderList: 调用下单接口传进来的 SubOutTradeNoList
        :type SubOrderList: list of QueryOrderOutSubOrderList
        :param _ChannelExternalOrderId: 支付机构订单号
        :type ChannelExternalOrderId: str
        :param _SettleCheck: 主单核销状态
注意：此字段可能返回 null，表示取不到有效值。
        :type SettleCheck: int
        :param _ChannelExternalUserInfoList: 渠道方用户信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalUserInfoList: list of OldChannelExternalUserInfo
        :param _AttachmentInfoList: 附加项信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type AttachmentInfoList: list of OldAttachmentInfo
        """
        self._MidasAppId = None
        self._Amt = None
        self._UserId = None
        self._CashAmt = None
        self._Metadata = None
        self._PayTime = None
        self._CouponAmt = None
        self._OrderTime = None
        self._ProductId = None
        self._SceneInfo = None
        self._OrderState = None
        self._Channel = None
        self._RefundFlag = None
        self._OutTradeNo = None
        self._ProductName = None
        self._CallBackTime = None
        self._CurrencyType = None
        self._AcctSubAppId = None
        self._TransactionId = None
        self._ChannelOrderId = None
        self._SubOrderList = None
        self._ChannelExternalOrderId = None
        self._SettleCheck = None
        self._ChannelExternalUserInfoList = None
        self._AttachmentInfoList = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def CashAmt(self):
        return self._CashAmt

    @CashAmt.setter
    def CashAmt(self, CashAmt):
        self._CashAmt = CashAmt

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def PayTime(self):
        return self._PayTime

    @PayTime.setter
    def PayTime(self, PayTime):
        self._PayTime = PayTime

    @property
    def CouponAmt(self):
        return self._CouponAmt

    @CouponAmt.setter
    def CouponAmt(self, CouponAmt):
        self._CouponAmt = CouponAmt

    @property
    def OrderTime(self):
        return self._OrderTime

    @OrderTime.setter
    def OrderTime(self, OrderTime):
        self._OrderTime = OrderTime

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId

    @property
    def SceneInfo(self):
        return self._SceneInfo

    @SceneInfo.setter
    def SceneInfo(self, SceneInfo):
        self._SceneInfo = SceneInfo

    @property
    def OrderState(self):
        return self._OrderState

    @OrderState.setter
    def OrderState(self, OrderState):
        self._OrderState = OrderState

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def RefundFlag(self):
        return self._RefundFlag

    @RefundFlag.setter
    def RefundFlag(self, RefundFlag):
        self._RefundFlag = RefundFlag

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def CallBackTime(self):
        return self._CallBackTime

    @CallBackTime.setter
    def CallBackTime(self, CallBackTime):
        self._CallBackTime = CallBackTime

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def AcctSubAppId(self):
        return self._AcctSubAppId

    @AcctSubAppId.setter
    def AcctSubAppId(self, AcctSubAppId):
        self._AcctSubAppId = AcctSubAppId

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def SubOrderList(self):
        return self._SubOrderList

    @SubOrderList.setter
    def SubOrderList(self, SubOrderList):
        self._SubOrderList = SubOrderList

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def SettleCheck(self):
        return self._SettleCheck

    @SettleCheck.setter
    def SettleCheck(self, SettleCheck):
        self._SettleCheck = SettleCheck

    @property
    def ChannelExternalUserInfoList(self):
        return self._ChannelExternalUserInfoList

    @ChannelExternalUserInfoList.setter
    def ChannelExternalUserInfoList(self, ChannelExternalUserInfoList):
        self._ChannelExternalUserInfoList = ChannelExternalUserInfoList

    @property
    def AttachmentInfoList(self):
        return self._AttachmentInfoList

    @AttachmentInfoList.setter
    def AttachmentInfoList(self, AttachmentInfoList):
        self._AttachmentInfoList = AttachmentInfoList


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._Amt = params.get("Amt")
        self._UserId = params.get("UserId")
        self._CashAmt = params.get("CashAmt")
        self._Metadata = params.get("Metadata")
        self._PayTime = params.get("PayTime")
        self._CouponAmt = params.get("CouponAmt")
        self._OrderTime = params.get("OrderTime")
        self._ProductId = params.get("ProductId")
        self._SceneInfo = params.get("SceneInfo")
        self._OrderState = params.get("OrderState")
        self._Channel = params.get("Channel")
        self._RefundFlag = params.get("RefundFlag")
        self._OutTradeNo = params.get("OutTradeNo")
        self._ProductName = params.get("ProductName")
        self._CallBackTime = params.get("CallBackTime")
        self._CurrencyType = params.get("CurrencyType")
        self._AcctSubAppId = params.get("AcctSubAppId")
        self._TransactionId = params.get("TransactionId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        if params.get("SubOrderList") is not None:
            self._SubOrderList = []
            for item in params.get("SubOrderList"):
                obj = QueryOrderOutSubOrderList()
                obj._deserialize(item)
                self._SubOrderList.append(obj)
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._SettleCheck = params.get("SettleCheck")
        if params.get("ChannelExternalUserInfoList") is not None:
            self._ChannelExternalUserInfoList = []
            for item in params.get("ChannelExternalUserInfoList"):
                obj = OldChannelExternalUserInfo()
                obj._deserialize(item)
                self._ChannelExternalUserInfoList.append(obj)
        if params.get("AttachmentInfoList") is not None:
            self._AttachmentInfoList = []
            for item in params.get("AttachmentInfoList"):
                obj = OldAttachmentInfo()
                obj._deserialize(item)
                self._AttachmentInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOrderOutSubOrderList(AbstractModel):
    """子订单列表

    """

    def __init__(self):
        r"""
        :param _Amt: 子订单支付金额
        :type Amt: int
        :param _SubMchIncome: 子订单结算应收金额，单位：分
        :type SubMchIncome: int
        :param _Metadata: 发货标识，由业务在调用Midas下单接口的时候下发。
        :type Metadata: str
        :param _OriginalAmt: 子订单原始金额
        :type OriginalAmt: int
        :param _PlatformIncome: 子订单平台应收金额，单位：分
        :type PlatformIncome: int
        :param _ProductDetail: 子订单商品详情
        :type ProductDetail: str
        :param _ProductName: 子订单商品名称
        :type ProductName: str
        :param _SettleCheck: 核销状态，1表示核销，0表示未核销
        :type SettleCheck: int
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        """
        self._Amt = None
        self._SubMchIncome = None
        self._Metadata = None
        self._OriginalAmt = None
        self._PlatformIncome = None
        self._ProductDetail = None
        self._ProductName = None
        self._SettleCheck = None
        self._SubAppId = None
        self._SubOutTradeNo = None

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def SubMchIncome(self):
        return self._SubMchIncome

    @SubMchIncome.setter
    def SubMchIncome(self, SubMchIncome):
        self._SubMchIncome = SubMchIncome

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def PlatformIncome(self):
        return self._PlatformIncome

    @PlatformIncome.setter
    def PlatformIncome(self, PlatformIncome):
        self._PlatformIncome = PlatformIncome

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def SettleCheck(self):
        return self._SettleCheck

    @SettleCheck.setter
    def SettleCheck(self, SettleCheck):
        self._SettleCheck = SettleCheck

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo


    def _deserialize(self, params):
        self._Amt = params.get("Amt")
        self._SubMchIncome = params.get("SubMchIncome")
        self._Metadata = params.get("Metadata")
        self._OriginalAmt = params.get("OriginalAmt")
        self._PlatformIncome = params.get("PlatformIncome")
        self._ProductDetail = params.get("ProductDetail")
        self._ProductName = params.get("ProductName")
        self._SettleCheck = params.get("SettleCheck")
        self._SubAppId = params.get("SubAppId")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOrderRequest(AbstractModel):
    """QueryOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主 MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID，长度不小于5位， 仅支持字母和数字的组合
        :type UserId: str
        :param _Type: type=by_order根据订单号 查订单；
type=by_user根据用户id 查订单 。
        :type Type: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _Count: 每页返回的记录数。根据用户 号码查询订单列表时需要传。 用于分页展示。Type=by_order时必填
        :type Count: int
        :param _Offset: 记录数偏移量，默认从0开 始。根据用户号码查询订单列 表时需要传。用于分页展示。Type=by_order时必填
        :type Offset: int
        :param _StartTime: 查询开始时间，Unix时间戳。Type=by_order时必填
        :type StartTime: str
        :param _EndTime: 查询结束时间，Unix时间戳。Type=by_order时必填
        :type EndTime: str
        :param _OutTradeNo: 业务订单号，OutTradeNo与 TransactionId不能同时为 空，都传优先使用 OutTradeNo
        :type OutTradeNo: str
        :param _TransactionId: 聚鑫订单号，OutTradeNo与 TransactionId不能同时为 空，都传优先使用 OutTradeNo
        :type TransactionId: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._Type = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._Count = None
        self._Offset = None
        self._StartTime = None
        self._EndTime = None
        self._OutTradeNo = None
        self._TransactionId = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Type(self):
        return self._Type

    @Type.setter
    def Type(self, Type):
        self._Type = Type

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def StartTime(self):
        return self._StartTime

    @StartTime.setter
    def StartTime(self, StartTime):
        self._StartTime = StartTime

    @property
    def EndTime(self):
        return self._EndTime

    @EndTime.setter
    def EndTime(self, EndTime):
        self._EndTime = EndTime

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._Type = params.get("Type")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._Count = params.get("Count")
        self._Offset = params.get("Offset")
        self._StartTime = params.get("StartTime")
        self._EndTime = params.get("EndTime")
        self._OutTradeNo = params.get("OutTradeNo")
        self._TransactionId = params.get("TransactionId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOrderResponse(AbstractModel):
    """QueryOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalNum: 返回订单数
        :type TotalNum: int
        :param _OrderList: 查询结果的订单列表
        :type OrderList: list of QueryOrderOutOrderList
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalNum = None
        self._OrderList = None
        self._RequestId = None

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def OrderList(self):
        return self._OrderList

    @OrderList.setter
    def OrderList(self, OrderList):
        self._OrderList = OrderList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalNum = params.get("TotalNum")
        if params.get("OrderList") is not None:
            self._OrderList = []
            for item in params.get("OrderList"):
                obj = QueryOrderOutOrderList()
                obj._deserialize(item)
                self._OrderList.append(obj)
        self._RequestId = params.get("RequestId")


class QueryOrderStatusRequest(AbstractModel):
    """QueryOrderStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _DeveloperNo: 开发者流水号
        :type DeveloperNo: str
        :param _OrderNo: 付款订单号
        :type OrderNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._DeveloperNo = None
        self._OrderNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._DeveloperNo = params.get("DeveloperNo")
        self._OrderNo = params.get("OrderNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOrderStatusResponse(AbstractModel):
    """QueryOrderStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 查询订单付款状态结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOrderStatusResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryOrderStatusResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOrderStatusResult(AbstractModel):
    """查询订单付款状态响应对象

    """

    def __init__(self):
        r"""
        :param _OrderNo: 付款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        :param _DeveloperNo: 开发者流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type DeveloperNo: str
        :param _TradeDiscountAmount: 交易优惠金额（免充值券）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeDiscountAmount: str
        :param _PayName: 付款方式名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayName: str
        :param _OrderMerchantId: 商户流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderMerchantId: str
        :param _TradeAccount: 交易帐号（银行卡号、支付宝帐号、微信帐号等，某些收单机构没有此数据）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeAccount: str
        :param _TradeAmount: 实际交易金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeAmount: str
        :param _CurrencySign: 币种签名
注意：此字段可能返回 null，表示取不到有效值。
        :type CurrencySign: str
        :param _TradePayTime: 付款完成时间（以收单机构为准）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradePayTime: str
        :param _ShopOrderId: 门店流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopOrderId: str
        :param _PayTag: 支付标签
注意：此字段可能返回 null，表示取不到有效值。
        :type PayTag: str
        :param _Status: 订单状态（1交易成功，2待支付，4已取消，9等待用户输入密码确认
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _OrderCurrency: 币种代码
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderCurrency: str
        :param _TradeQrcode: 二维码字符串
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeQrcode: str
        :param _TradeTime: 开始交易时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeTime: str
        :param _DiscountAmount: 折扣金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type DiscountAmount: str
        :param _MerchantNo: 商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        :param _Remark: 订单备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _OrderName: 订单标题
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderName: str
        :param _OriginalAmount: 原始金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalAmount: str
        :param _ShopNo: 门店编号
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopNo: str
        :param _TradeResult: 收单机构原始交易数据，如果返回非标准json数据，请自行转换
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeResult: str
        :param _OrderId: 订单流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _OrderType: 订单类型（1消费，2辙单）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderType: str
        :param _TradeNo: 收单机构交易号
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeNo: str
        :param _OriginalOrderNo: 原始订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalOrderNo: str
        :param _Tag: 订单标记，订单附加数据
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: str
        :param _AddTime: 下单时间
注意：此字段可能返回 null，表示取不到有效值。
        :type AddTime: str
        :param _CashierId: 收银员编号
注意：此字段可能返回 null，表示取不到有效值。
        :type CashierId: str
        :param _CashierRealName: 收银员名称
注意：此字段可能返回 null，表示取不到有效值。
        :type CashierRealName: str
        :param _ShopFullName: 店铺全称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopFullName: str
        :param _ShopName: 店铺名称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopName: str
        """
        self._OrderNo = None
        self._DeveloperNo = None
        self._TradeDiscountAmount = None
        self._PayName = None
        self._OrderMerchantId = None
        self._TradeAccount = None
        self._TradeAmount = None
        self._CurrencySign = None
        self._TradePayTime = None
        self._ShopOrderId = None
        self._PayTag = None
        self._Status = None
        self._OrderCurrency = None
        self._TradeQrcode = None
        self._TradeTime = None
        self._DiscountAmount = None
        self._MerchantNo = None
        self._Remark = None
        self._OrderName = None
        self._OriginalAmount = None
        self._ShopNo = None
        self._TradeResult = None
        self._OrderId = None
        self._OrderType = None
        self._TradeNo = None
        self._OriginalOrderNo = None
        self._Tag = None
        self._AddTime = None
        self._CashierId = None
        self._CashierRealName = None
        self._ShopFullName = None
        self._ShopName = None

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def TradeDiscountAmount(self):
        return self._TradeDiscountAmount

    @TradeDiscountAmount.setter
    def TradeDiscountAmount(self, TradeDiscountAmount):
        self._TradeDiscountAmount = TradeDiscountAmount

    @property
    def PayName(self):
        return self._PayName

    @PayName.setter
    def PayName(self, PayName):
        self._PayName = PayName

    @property
    def OrderMerchantId(self):
        return self._OrderMerchantId

    @OrderMerchantId.setter
    def OrderMerchantId(self, OrderMerchantId):
        self._OrderMerchantId = OrderMerchantId

    @property
    def TradeAccount(self):
        return self._TradeAccount

    @TradeAccount.setter
    def TradeAccount(self, TradeAccount):
        self._TradeAccount = TradeAccount

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def CurrencySign(self):
        return self._CurrencySign

    @CurrencySign.setter
    def CurrencySign(self, CurrencySign):
        self._CurrencySign = CurrencySign

    @property
    def TradePayTime(self):
        return self._TradePayTime

    @TradePayTime.setter
    def TradePayTime(self, TradePayTime):
        self._TradePayTime = TradePayTime

    @property
    def ShopOrderId(self):
        return self._ShopOrderId

    @ShopOrderId.setter
    def ShopOrderId(self, ShopOrderId):
        self._ShopOrderId = ShopOrderId

    @property
    def PayTag(self):
        return self._PayTag

    @PayTag.setter
    def PayTag(self, PayTag):
        self._PayTag = PayTag

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def OrderCurrency(self):
        return self._OrderCurrency

    @OrderCurrency.setter
    def OrderCurrency(self, OrderCurrency):
        self._OrderCurrency = OrderCurrency

    @property
    def TradeQrcode(self):
        return self._TradeQrcode

    @TradeQrcode.setter
    def TradeQrcode(self, TradeQrcode):
        self._TradeQrcode = TradeQrcode

    @property
    def TradeTime(self):
        return self._TradeTime

    @TradeTime.setter
    def TradeTime(self, TradeTime):
        self._TradeTime = TradeTime

    @property
    def DiscountAmount(self):
        return self._DiscountAmount

    @DiscountAmount.setter
    def DiscountAmount(self, DiscountAmount):
        self._DiscountAmount = DiscountAmount

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def OrderName(self):
        return self._OrderName

    @OrderName.setter
    def OrderName(self, OrderName):
        self._OrderName = OrderName

    @property
    def OriginalAmount(self):
        return self._OriginalAmount

    @OriginalAmount.setter
    def OriginalAmount(self, OriginalAmount):
        self._OriginalAmount = OriginalAmount

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def TradeResult(self):
        return self._TradeResult

    @TradeResult.setter
    def TradeResult(self, TradeResult):
        self._TradeResult = TradeResult

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def OrderType(self):
        return self._OrderType

    @OrderType.setter
    def OrderType(self, OrderType):
        self._OrderType = OrderType

    @property
    def TradeNo(self):
        return self._TradeNo

    @TradeNo.setter
    def TradeNo(self, TradeNo):
        self._TradeNo = TradeNo

    @property
    def OriginalOrderNo(self):
        return self._OriginalOrderNo

    @OriginalOrderNo.setter
    def OriginalOrderNo(self, OriginalOrderNo):
        self._OriginalOrderNo = OriginalOrderNo

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def AddTime(self):
        return self._AddTime

    @AddTime.setter
    def AddTime(self, AddTime):
        self._AddTime = AddTime

    @property
    def CashierId(self):
        return self._CashierId

    @CashierId.setter
    def CashierId(self, CashierId):
        self._CashierId = CashierId

    @property
    def CashierRealName(self):
        return self._CashierRealName

    @CashierRealName.setter
    def CashierRealName(self, CashierRealName):
        self._CashierRealName = CashierRealName

    @property
    def ShopFullName(self):
        return self._ShopFullName

    @ShopFullName.setter
    def ShopFullName(self, ShopFullName):
        self._ShopFullName = ShopFullName

    @property
    def ShopName(self):
        return self._ShopName

    @ShopName.setter
    def ShopName(self, ShopName):
        self._ShopName = ShopName


    def _deserialize(self, params):
        self._OrderNo = params.get("OrderNo")
        self._DeveloperNo = params.get("DeveloperNo")
        self._TradeDiscountAmount = params.get("TradeDiscountAmount")
        self._PayName = params.get("PayName")
        self._OrderMerchantId = params.get("OrderMerchantId")
        self._TradeAccount = params.get("TradeAccount")
        self._TradeAmount = params.get("TradeAmount")
        self._CurrencySign = params.get("CurrencySign")
        self._TradePayTime = params.get("TradePayTime")
        self._ShopOrderId = params.get("ShopOrderId")
        self._PayTag = params.get("PayTag")
        self._Status = params.get("Status")
        self._OrderCurrency = params.get("OrderCurrency")
        self._TradeQrcode = params.get("TradeQrcode")
        self._TradeTime = params.get("TradeTime")
        self._DiscountAmount = params.get("DiscountAmount")
        self._MerchantNo = params.get("MerchantNo")
        self._Remark = params.get("Remark")
        self._OrderName = params.get("OrderName")
        self._OriginalAmount = params.get("OriginalAmount")
        self._ShopNo = params.get("ShopNo")
        self._TradeResult = params.get("TradeResult")
        self._OrderId = params.get("OrderId")
        self._OrderType = params.get("OrderType")
        self._TradeNo = params.get("TradeNo")
        self._OriginalOrderNo = params.get("OriginalOrderNo")
        self._Tag = params.get("Tag")
        self._AddTime = params.get("AddTime")
        self._CashierId = params.get("CashierId")
        self._CashierRealName = params.get("CashierRealName")
        self._ShopFullName = params.get("ShopFullName")
        self._ShopName = params.get("ShopName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOutwardOrderData(AbstractModel):
    """查询汇出数据

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _AcctDate: 财务日期
注意：此字段可能返回 null，表示取不到有效值。
        :type AcctDate: str
        :param _PricingCurrency: 定价币种
注意：此字段可能返回 null，表示取不到有效值。
        :type PricingCurrency: str
        :param _SourceCurrency: 源币种
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceCurrency: str
        :param _SourceAmount: 源金额
注意：此字段可能返回 null，表示取不到有效值。
        :type SourceAmount: str
        :param _TargetCurrency: 目的币种
注意：此字段可能返回 null，表示取不到有效值。
        :type TargetCurrency: str
        :param _TargetAmount: 目的金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TargetAmount: str
        :param _FxRate: 汇率
注意：此字段可能返回 null，表示取不到有效值。
        :type FxRate: str
        :param _Status: 指令状态
        :type Status: str
        :param _FailReason: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _RefundAmount: 退汇金额
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundAmount: str
        :param _RefundCurrency: 退汇币种
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundCurrency: str
        """
        self._MerchantId = None
        self._TransactionId = None
        self._AcctDate = None
        self._PricingCurrency = None
        self._SourceCurrency = None
        self._SourceAmount = None
        self._TargetCurrency = None
        self._TargetAmount = None
        self._FxRate = None
        self._Status = None
        self._FailReason = None
        self._RefundAmount = None
        self._RefundCurrency = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def AcctDate(self):
        return self._AcctDate

    @AcctDate.setter
    def AcctDate(self, AcctDate):
        self._AcctDate = AcctDate

    @property
    def PricingCurrency(self):
        return self._PricingCurrency

    @PricingCurrency.setter
    def PricingCurrency(self, PricingCurrency):
        self._PricingCurrency = PricingCurrency

    @property
    def SourceCurrency(self):
        return self._SourceCurrency

    @SourceCurrency.setter
    def SourceCurrency(self, SourceCurrency):
        self._SourceCurrency = SourceCurrency

    @property
    def SourceAmount(self):
        return self._SourceAmount

    @SourceAmount.setter
    def SourceAmount(self, SourceAmount):
        self._SourceAmount = SourceAmount

    @property
    def TargetCurrency(self):
        return self._TargetCurrency

    @TargetCurrency.setter
    def TargetCurrency(self, TargetCurrency):
        self._TargetCurrency = TargetCurrency

    @property
    def TargetAmount(self):
        return self._TargetAmount

    @TargetAmount.setter
    def TargetAmount(self, TargetAmount):
        self._TargetAmount = TargetAmount

    @property
    def FxRate(self):
        return self._FxRate

    @FxRate.setter
    def FxRate(self, FxRate):
        self._FxRate = FxRate

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def RefundAmount(self):
        return self._RefundAmount

    @RefundAmount.setter
    def RefundAmount(self, RefundAmount):
        self._RefundAmount = RefundAmount

    @property
    def RefundCurrency(self):
        return self._RefundCurrency

    @RefundCurrency.setter
    def RefundCurrency(self, RefundCurrency):
        self._RefundCurrency = RefundCurrency


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TransactionId = params.get("TransactionId")
        self._AcctDate = params.get("AcctDate")
        self._PricingCurrency = params.get("PricingCurrency")
        self._SourceCurrency = params.get("SourceCurrency")
        self._SourceAmount = params.get("SourceAmount")
        self._TargetCurrency = params.get("TargetCurrency")
        self._TargetAmount = params.get("TargetAmount")
        self._FxRate = params.get("FxRate")
        self._Status = params.get("Status")
        self._FailReason = params.get("FailReason")
        self._RefundAmount = params.get("RefundAmount")
        self._RefundCurrency = params.get("RefundCurrency")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOutwardOrderRequest(AbstractModel):
    """QueryOutwardOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransactionId: 对接方汇出指令编号
        :type TransactionId: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._TransactionId = None
        self._Profile = None

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TransactionId = params.get("TransactionId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryOutwardOrderResponse(AbstractModel):
    """QueryOutwardOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 查询汇出结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryOutwardOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryOutwardOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryOutwardOrderResult(AbstractModel):
    """查询汇出结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 查询汇出数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryOutwardOrderData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = QueryOutwardOrderData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryPayerInfoRequest(AbstractModel):
    """QueryPayerInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._PayerId = None
        self._Profile = None

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._PayerId = params.get("PayerId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryPayerInfoResponse(AbstractModel):
    """QueryPayerInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 付款人查询结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryPayerinfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryPayerinfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryPayerinfoData(AbstractModel):
    """付款人查询数据

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _Status: 审核状态
        :type Status: str
        :param _FailReason: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _PayerType: 付款人类型
        :type PayerType: str
        :param _PayerName: 付款人姓名
        :type PayerName: str
        :param _PayerIdType: 付款人证件类型
        :type PayerIdType: str
        :param _PayerIdNo: 付款人证件号
        :type PayerIdNo: str
        :param _PayerContactNumber: 付款人联系电话
注意：此字段可能返回 null，表示取不到有效值。
        :type PayerContactNumber: str
        :param _PayerEmailAddress: 付款人联系邮箱
注意：此字段可能返回 null，表示取不到有效值。
        :type PayerEmailAddress: str
        :param _PayerCountryCode: 付款人常驻国家或地区编码
        :type PayerCountryCode: str
        :param _PayerContactName: 付款人联系名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayerContactName: str
        """
        self._MerchantId = None
        self._PayerId = None
        self._Status = None
        self._FailReason = None
        self._PayerType = None
        self._PayerName = None
        self._PayerIdType = None
        self._PayerIdNo = None
        self._PayerContactNumber = None
        self._PayerEmailAddress = None
        self._PayerCountryCode = None
        self._PayerContactName = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def PayerType(self):
        return self._PayerType

    @PayerType.setter
    def PayerType(self, PayerType):
        self._PayerType = PayerType

    @property
    def PayerName(self):
        return self._PayerName

    @PayerName.setter
    def PayerName(self, PayerName):
        self._PayerName = PayerName

    @property
    def PayerIdType(self):
        return self._PayerIdType

    @PayerIdType.setter
    def PayerIdType(self, PayerIdType):
        self._PayerIdType = PayerIdType

    @property
    def PayerIdNo(self):
        return self._PayerIdNo

    @PayerIdNo.setter
    def PayerIdNo(self, PayerIdNo):
        self._PayerIdNo = PayerIdNo

    @property
    def PayerContactNumber(self):
        return self._PayerContactNumber

    @PayerContactNumber.setter
    def PayerContactNumber(self, PayerContactNumber):
        self._PayerContactNumber = PayerContactNumber

    @property
    def PayerEmailAddress(self):
        return self._PayerEmailAddress

    @PayerEmailAddress.setter
    def PayerEmailAddress(self, PayerEmailAddress):
        self._PayerEmailAddress = PayerEmailAddress

    @property
    def PayerCountryCode(self):
        return self._PayerCountryCode

    @PayerCountryCode.setter
    def PayerCountryCode(self, PayerCountryCode):
        self._PayerCountryCode = PayerCountryCode

    @property
    def PayerContactName(self):
        return self._PayerContactName

    @PayerContactName.setter
    def PayerContactName(self, PayerContactName):
        self._PayerContactName = PayerContactName


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._PayerId = params.get("PayerId")
        self._Status = params.get("Status")
        self._FailReason = params.get("FailReason")
        self._PayerType = params.get("PayerType")
        self._PayerName = params.get("PayerName")
        self._PayerIdType = params.get("PayerIdType")
        self._PayerIdNo = params.get("PayerIdNo")
        self._PayerContactNumber = params.get("PayerContactNumber")
        self._PayerEmailAddress = params.get("PayerEmailAddress")
        self._PayerCountryCode = params.get("PayerCountryCode")
        self._PayerContactName = params.get("PayerContactName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryPayerinfoResult(AbstractModel):
    """付款人查询结果

    """

    def __init__(self):
        r"""
        :param _Code: 错误码
        :type Code: str
        :param _Data: 付款人查询数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryPayerinfoData`
        """
        self._Code = None
        self._Data = None

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data


    def _deserialize(self, params):
        self._Code = params.get("Code")
        if params.get("Data") is not None:
            self._Data = QueryPayerinfoData()
            self._Data._deserialize(params.get("Data"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryReconciliationDocumentRequest(AbstractModel):
    """QueryReconciliationDocument请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号
        :type MrchCode: str
        :param _FileType: STRING(10)，文件类型（充值文件-CZ; 提现文件-TX; 交易文件-JY; 余额文件-YE; 合约文件-HY）
        :type FileType: str
        :param _FileDate: STRING(8)，文件日期（格式：20190101）
        :type FileDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FileType = None
        self._FileDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FileType(self):
        return self._FileType

    @FileType.setter
    def FileType(self, FileType):
        self._FileType = FileType

    @property
    def FileDate(self):
        return self._FileDate

    @FileDate.setter
    def FileDate(self, FileDate):
        self._FileDate = FileDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FileType = params.get("FileType")
        self._FileDate = params.get("FileDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryReconciliationDocumentResponse(AbstractModel):
    """QueryReconciliationDocument返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ResultNum: STRING(10)，本次交易返回查询结果记录数
注意：此字段可能返回 null，表示取不到有效值。
        :type ResultNum: str
        :param _TranItemArray: 交易信息数组
注意：此字段可能返回 null，表示取不到有效值。
        :type TranItemArray: list of FileItem
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ResultNum = None
        self._TranItemArray = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ResultNum(self):
        return self._ResultNum

    @ResultNum.setter
    def ResultNum(self, ResultNum):
        self._ResultNum = ResultNum

    @property
    def TranItemArray(self):
        return self._TranItemArray

    @TranItemArray.setter
    def TranItemArray(self, TranItemArray):
        self._TranItemArray = TranItemArray

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ResultNum = params.get("ResultNum")
        if params.get("TranItemArray") is not None:
            self._TranItemArray = []
            for item in params.get("TranItemArray"):
                obj = FileItem()
                obj._deserialize(item)
                self._TranItemArray.append(obj)
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryReconciliationFileApplyInfoRequest(AbstractModel):
    """QueryReconciliationFileApplyInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ApplyFileId: 申请对账文件的任务ID。
        :type ApplyFileId: str
        :param _MidasEnvironment: 环境名。
__release__: 现网环境
__sandbox__: 沙箱环境
__development__: 开发环境
_缺省: release_
        :type MidasEnvironment: str
        """
        self._ApplyFileId = None
        self._MidasEnvironment = None

    @property
    def ApplyFileId(self):
        return self._ApplyFileId

    @ApplyFileId.setter
    def ApplyFileId(self, ApplyFileId):
        self._ApplyFileId = ApplyFileId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._ApplyFileId = params.get("ApplyFileId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryReconciliationFileApplyInfoResponse(AbstractModel):
    """QueryReconciliationFileApplyInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryReconciliationFileApplyInfoResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryReconciliationFileApplyInfoResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryReconciliationFileApplyInfoResult(AbstractModel):
    """查询对账文件申请结果

    """

    def __init__(self):
        r"""
        :param _ApplyFileId: 申请对账文件的任务ID。
        :type ApplyFileId: str
        :param _ApplyStatus: 对账文件申请状态。
__I__：申请中
__S__：申请成功
__F__：申请失败
        :type ApplyStatus: str
        :param _ApplyMessage: 申请结果描述。
注意：此字段可能返回 null，表示取不到有效值。
        :type ApplyMessage: str
        :param _FileUrlArray: 对账文件下载地址列表。
注意：此字段可能返回 null，表示取不到有效值。
        :type FileUrlArray: list of str
        """
        self._ApplyFileId = None
        self._ApplyStatus = None
        self._ApplyMessage = None
        self._FileUrlArray = None

    @property
    def ApplyFileId(self):
        return self._ApplyFileId

    @ApplyFileId.setter
    def ApplyFileId(self, ApplyFileId):
        self._ApplyFileId = ApplyFileId

    @property
    def ApplyStatus(self):
        return self._ApplyStatus

    @ApplyStatus.setter
    def ApplyStatus(self, ApplyStatus):
        self._ApplyStatus = ApplyStatus

    @property
    def ApplyMessage(self):
        return self._ApplyMessage

    @ApplyMessage.setter
    def ApplyMessage(self, ApplyMessage):
        self._ApplyMessage = ApplyMessage

    @property
    def FileUrlArray(self):
        return self._FileUrlArray

    @FileUrlArray.setter
    def FileUrlArray(self, FileUrlArray):
        self._FileUrlArray = FileUrlArray


    def _deserialize(self, params):
        self._ApplyFileId = params.get("ApplyFileId")
        self._ApplyStatus = params.get("ApplyStatus")
        self._ApplyMessage = params.get("ApplyMessage")
        self._FileUrlArray = params.get("FileUrlArray")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryRefundRequest(AbstractModel):
    """QueryRefund请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合。
        :type UserId: str
        :param _RefundId: 退款订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合。
        :type RefundId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._UserId = None
        self._RefundId = None
        self._MidasAppId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._MidasEnvironment = None

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._UserId = params.get("UserId")
        self._RefundId = params.get("RefundId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryRefundResponse(AbstractModel):
    """QueryRefund返回参数结构体

    """

    def __init__(self):
        r"""
        :param _State: 退款状态码，退款提交成功后返回  1：退款中；  2：退款成功；  3：退款失败。
        :type State: str
        :param _ChannelExternalOrderId: 支付机构订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalOrderId: str
        :param _ChannelExternalRefundId: 支付机构退款单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExternalRefundId: str
        :param _ChannelOrderId: 渠道订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelOrderId: str
        :param _TotalRefundAmt: 退款总金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalRefundAmt: int
        :param _CurrencyType: 货币类型
注意：此字段可能返回 null，表示取不到有效值。
        :type CurrencyType: str
        :param _OutTradeNo: 外部订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutTradeNo: str
        :param _RefundId: 退款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type RefundId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UsedRefundId: 指定退款订单号。与RefundId的区别是，UsedRefundId不会再做修饰，而RefundId则可能在查询退款处理时做了如添加前缀等的修饰
注意：此字段可能返回 null，表示取不到有效值。
        :type UsedRefundId: str
        :param _SubRefundList: 子单退款信息列表
注意：此字段可能返回 null，表示取不到有效值。
        :type SubRefundList: list of OldSubRefund
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._State = None
        self._ChannelExternalOrderId = None
        self._ChannelExternalRefundId = None
        self._ChannelOrderId = None
        self._TotalRefundAmt = None
        self._CurrencyType = None
        self._OutTradeNo = None
        self._RefundId = None
        self._MidasAppId = None
        self._UsedRefundId = None
        self._SubRefundList = None
        self._RequestId = None

    @property
    def State(self):
        return self._State

    @State.setter
    def State(self, State):
        self._State = State

    @property
    def ChannelExternalOrderId(self):
        return self._ChannelExternalOrderId

    @ChannelExternalOrderId.setter
    def ChannelExternalOrderId(self, ChannelExternalOrderId):
        self._ChannelExternalOrderId = ChannelExternalOrderId

    @property
    def ChannelExternalRefundId(self):
        return self._ChannelExternalRefundId

    @ChannelExternalRefundId.setter
    def ChannelExternalRefundId(self, ChannelExternalRefundId):
        self._ChannelExternalRefundId = ChannelExternalRefundId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def TotalRefundAmt(self):
        return self._TotalRefundAmt

    @TotalRefundAmt.setter
    def TotalRefundAmt(self, TotalRefundAmt):
        self._TotalRefundAmt = TotalRefundAmt

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UsedRefundId(self):
        return self._UsedRefundId

    @UsedRefundId.setter
    def UsedRefundId(self, UsedRefundId):
        self._UsedRefundId = UsedRefundId

    @property
    def SubRefundList(self):
        return self._SubRefundList

    @SubRefundList.setter
    def SubRefundList(self, SubRefundList):
        self._SubRefundList = SubRefundList

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._State = params.get("State")
        self._ChannelExternalOrderId = params.get("ChannelExternalOrderId")
        self._ChannelExternalRefundId = params.get("ChannelExternalRefundId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._TotalRefundAmt = params.get("TotalRefundAmt")
        self._CurrencyType = params.get("CurrencyType")
        self._OutTradeNo = params.get("OutTradeNo")
        self._RefundId = params.get("RefundId")
        self._MidasAppId = params.get("MidasAppId")
        self._UsedRefundId = params.get("UsedRefundId")
        if params.get("SubRefundList") is not None:
            self._SubRefundList = []
            for item in params.get("SubRefundList"):
                obj = OldSubRefund()
                obj._deserialize(item)
                self._SubRefundList.append(obj)
        self._RequestId = params.get("RequestId")


class QueryShopOpenIdRequest(AbstractModel):
    """QueryShopOpenId请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _ShopNo: 门店编号
        :type ShopNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._ShopNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._ShopNo = params.get("ShopNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryShopOpenIdResponse(AbstractModel):
    """QueryShopOpenId返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 获取门店OpenId响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryShopOpenIdResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = QueryShopOpenIdResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryShopOpenIdResult(AbstractModel):
    """获取门店OpenId响应对象

    """

    def __init__(self):
        r"""
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _ShopName: 门店简称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopName: str
        :param _MerchantNo: 商户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        :param _CityId: 城市编码
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        :param _OpenId: open_id
注意：此字段可能返回 null，表示取不到有效值。
        :type OpenId: str
        :param _Telephone: 门店电话
注意：此字段可能返回 null，表示取不到有效值。
        :type Telephone: str
        :param _ShopNo: 门店编号
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopNo: str
        :param _County: 县/区
注意：此字段可能返回 null，表示取不到有效值。
        :type County: str
        :param _ShopFullName: 门店全称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopFullName: str
        :param _BrandName: 品牌名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BrandName: str
        :param _Address: 详细地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _OpenKey: open_key
注意：此字段可能返回 null，表示取不到有效值。
        :type OpenKey: str
        :param _MerchantName: 商户名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantName: str
        """
        self._Province = None
        self._City = None
        self._ShopName = None
        self._MerchantNo = None
        self._CityId = None
        self._OpenId = None
        self._Telephone = None
        self._ShopNo = None
        self._County = None
        self._ShopFullName = None
        self._BrandName = None
        self._Address = None
        self._OpenKey = None
        self._MerchantName = None

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def ShopName(self):
        return self._ShopName

    @ShopName.setter
    def ShopName(self, ShopName):
        self._ShopName = ShopName

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def County(self):
        return self._County

    @County.setter
    def County(self, County):
        self._County = County

    @property
    def ShopFullName(self):
        return self._ShopFullName

    @ShopFullName.setter
    def ShopFullName(self, ShopFullName):
        self._ShopFullName = ShopFullName

    @property
    def BrandName(self):
        return self._BrandName

    @BrandName.setter
    def BrandName(self, BrandName):
        self._BrandName = BrandName

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName


    def _deserialize(self, params):
        self._Province = params.get("Province")
        self._City = params.get("City")
        self._ShopName = params.get("ShopName")
        self._MerchantNo = params.get("MerchantNo")
        self._CityId = params.get("CityId")
        self._OpenId = params.get("OpenId")
        self._Telephone = params.get("Telephone")
        self._ShopNo = params.get("ShopNo")
        self._County = params.get("County")
        self._ShopFullName = params.get("ShopFullName")
        self._BrandName = params.get("BrandName")
        self._Address = params.get("Address")
        self._OpenKey = params.get("OpenKey")
        self._MerchantName = params.get("MerchantName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QuerySinglePaymentResultData(AbstractModel):
    """QuerySinglePaymentResult接口返回响应

    """

    def __init__(self):
        r"""
        :param _TradeSerialNo: 平台交易流水号，唯一
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeSerialNo: str
        :param _OrderId: 订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderId: str
        :param _TradeStatus: 交易状态。
0 处理中  
1 预占成功 
2 交易成功 
3 交易失败 
4 未知渠道异常 
5 预占额度失败
6 提交成功
7 提交失败
8 订单重复提交
99 未知系统异常
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeStatus: int
        :param _Remark: 业务备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _AgentId: 代理商ID
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentId: str
        :param _AgentName: 代理商名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        :param _TradeStatusDesc: 交易状态描述。
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeStatusDesc: str
        """
        self._TradeSerialNo = None
        self._OrderId = None
        self._TradeStatus = None
        self._Remark = None
        self._AgentId = None
        self._AgentName = None
        self._TradeStatusDesc = None

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def TradeStatus(self):
        return self._TradeStatus

    @TradeStatus.setter
    def TradeStatus(self, TradeStatus):
        self._TradeStatus = TradeStatus

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def AgentId(self):
        return self._AgentId

    @AgentId.setter
    def AgentId(self, AgentId):
        self._AgentId = AgentId

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def TradeStatusDesc(self):
        return self._TradeStatusDesc

    @TradeStatusDesc.setter
    def TradeStatusDesc(self, TradeStatusDesc):
        self._TradeStatusDesc = TradeStatusDesc


    def _deserialize(self, params):
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._OrderId = params.get("OrderId")
        self._TradeStatus = params.get("TradeStatus")
        self._Remark = params.get("Remark")
        self._AgentId = params.get("AgentId")
        self._AgentName = params.get("AgentName")
        self._TradeStatusDesc = params.get("TradeStatusDesc")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QuerySinglePaymentResultRequest(AbstractModel):
    """QuerySinglePaymentResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TransferType: 转账类型
        :type TransferType: int
        :param _TradeSerialNo: 交易流水流水号，唯一
        :type TradeSerialNo: str
        :param _OrderId: 订单号，与TradeSerialNo不能同时为空
        :type OrderId: str
        """
        self._TransferType = None
        self._TradeSerialNo = None
        self._OrderId = None

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId


    def _deserialize(self, params):
        self._TransferType = params.get("TransferType")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._OrderId = params.get("OrderId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QuerySinglePaymentResultResponse(AbstractModel):
    """QuerySinglePaymentResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 返回响应
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QuerySinglePaymentResultData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QuerySinglePaymentResultData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QuerySingleTransactionStatusRequest(AbstractModel):
    """QuerySingleTransactionStatus请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（2: 会员间交易; 3: 提现; 4: 充值）
        :type FunctionFlag: str
        :param _TranNetSeqNo: STRING(52)，交易网流水号（提现，充值或会员交易请求时的CnsmrSeqNo值）
        :type TranNetSeqNo: str
        :param _SubAcctNo: STRING(50)，见证子帐户的帐号（未启用）
        :type SubAcctNo: str
        :param _TranDate: STRING(8)，交易日期（未启用）
        :type TranDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._TranNetSeqNo = None
        self._SubAcctNo = None
        self._TranDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def TranNetSeqNo(self):
        return self._TranNetSeqNo

    @TranNetSeqNo.setter
    def TranNetSeqNo(self, TranNetSeqNo):
        self._TranNetSeqNo = TranNetSeqNo

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def TranDate(self):
        return self._TranDate

    @TranDate.setter
    def TranDate(self, TranDate):
        self._TranDate = TranDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._TranNetSeqNo = params.get("TranNetSeqNo")
        self._SubAcctNo = params.get("SubAcctNo")
        self._TranDate = params.get("TranDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QuerySingleTransactionStatusResponse(AbstractModel):
    """QuerySingleTransactionStatus返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _BookingFlag: STRING(2)，记账标志（记账标志。1: 登记挂账; 2: 支付; 3: 提现; 4: 清分; 5: 下单预支付; 6: 确认并付款; 7: 退款; 8: 支付到平台; N: 其他）
注意：此字段可能返回 null，表示取不到有效值。
        :type BookingFlag: str
        :param _TranStatus: STRING(32)，交易状态（0: 成功; 1: 失败; 2: 待确认; 5: 待处理; 6: 处理中。0和1是终态，2、5、6是中间态，其中2是特指提现后待确认提现是否成功，5是银行收到交易等待处理，6是交易正在处理）
注意：此字段可能返回 null，表示取不到有效值。
        :type TranStatus: str
        :param _TranAmt: STRING(20)，交易金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TranAmt: str
        :param _TranDate: STRING(8)，交易日期
注意：此字段可能返回 null，表示取不到有效值。
        :type TranDate: str
        :param _TranTime: STRING(20)，交易时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TranTime: str
        :param _InSubAcctNo: STRING(50)，转入子账户账号
注意：此字段可能返回 null，表示取不到有效值。
        :type InSubAcctNo: str
        :param _OutSubAcctNo: STRING(50)，转出子账户账号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutSubAcctNo: str
        :param _FailMsg: STRING(300)，失败信息（当提现失败时，返回交易失败原因）
注意：此字段可能返回 null，表示取不到有效值。
        :type FailMsg: str
        :param _OldTranFrontSeqNo: STRING(50)，原前置流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type OldTranFrontSeqNo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._BookingFlag = None
        self._TranStatus = None
        self._TranAmt = None
        self._TranDate = None
        self._TranTime = None
        self._InSubAcctNo = None
        self._OutSubAcctNo = None
        self._FailMsg = None
        self._OldTranFrontSeqNo = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def BookingFlag(self):
        return self._BookingFlag

    @BookingFlag.setter
    def BookingFlag(self, BookingFlag):
        self._BookingFlag = BookingFlag

    @property
    def TranStatus(self):
        return self._TranStatus

    @TranStatus.setter
    def TranStatus(self, TranStatus):
        self._TranStatus = TranStatus

    @property
    def TranAmt(self):
        return self._TranAmt

    @TranAmt.setter
    def TranAmt(self, TranAmt):
        self._TranAmt = TranAmt

    @property
    def TranDate(self):
        return self._TranDate

    @TranDate.setter
    def TranDate(self, TranDate):
        self._TranDate = TranDate

    @property
    def TranTime(self):
        return self._TranTime

    @TranTime.setter
    def TranTime(self, TranTime):
        self._TranTime = TranTime

    @property
    def InSubAcctNo(self):
        return self._InSubAcctNo

    @InSubAcctNo.setter
    def InSubAcctNo(self, InSubAcctNo):
        self._InSubAcctNo = InSubAcctNo

    @property
    def OutSubAcctNo(self):
        return self._OutSubAcctNo

    @OutSubAcctNo.setter
    def OutSubAcctNo(self, OutSubAcctNo):
        self._OutSubAcctNo = OutSubAcctNo

    @property
    def FailMsg(self):
        return self._FailMsg

    @FailMsg.setter
    def FailMsg(self, FailMsg):
        self._FailMsg = FailMsg

    @property
    def OldTranFrontSeqNo(self):
        return self._OldTranFrontSeqNo

    @OldTranFrontSeqNo.setter
    def OldTranFrontSeqNo(self, OldTranFrontSeqNo):
        self._OldTranFrontSeqNo = OldTranFrontSeqNo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._BookingFlag = params.get("BookingFlag")
        self._TranStatus = params.get("TranStatus")
        self._TranAmt = params.get("TranAmt")
        self._TranDate = params.get("TranDate")
        self._TranTime = params.get("TranTime")
        self._InSubAcctNo = params.get("InSubAcctNo")
        self._OutSubAcctNo = params.get("OutSubAcctNo")
        self._FailMsg = params.get("FailMsg")
        self._OldTranFrontSeqNo = params.get("OldTranFrontSeqNo")
        self._RequestId = params.get("RequestId")


class QuerySmallAmountTransferRequest(AbstractModel):
    """QuerySmallAmountTransfer请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _OldTranSeqNo: STRING(52)，原交易流水号（小额鉴权交易请求时的CnsmrSeqNo值）
        :type OldTranSeqNo: str
        :param _TranDate: STRING(8)，交易日期（格式：20190101）
        :type TranDate: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._OldTranSeqNo = None
        self._TranDate = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def OldTranSeqNo(self):
        return self._OldTranSeqNo

    @OldTranSeqNo.setter
    def OldTranSeqNo(self, OldTranSeqNo):
        self._OldTranSeqNo = OldTranSeqNo

    @property
    def TranDate(self):
        return self._TranDate

    @TranDate.setter
    def TranDate(self, TranDate):
        self._TranDate = TranDate

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._OldTranSeqNo = params.get("OldTranSeqNo")
        self._TranDate = params.get("TranDate")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QuerySmallAmountTransferResponse(AbstractModel):
    """QuerySmallAmountTransfer返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ReturnStatus: STRING(10)，返回状态（0: 成功; 1: 失败; 2: 待确认）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReturnStatus: str
        :param _ReturnMsg: STRING(512)，返回信息（失败返回具体信息）
注意：此字段可能返回 null，表示取不到有效值。
        :type ReturnMsg: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ReturnStatus = None
        self._ReturnMsg = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ReturnStatus(self):
        return self._ReturnStatus

    @ReturnStatus.setter
    def ReturnStatus(self, ReturnStatus):
        self._ReturnStatus = ReturnStatus

    @property
    def ReturnMsg(self):
        return self._ReturnMsg

    @ReturnMsg.setter
    def ReturnMsg(self, ReturnMsg):
        self._ReturnMsg = ReturnMsg

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ReturnStatus = params.get("ReturnStatus")
        self._ReturnMsg = params.get("ReturnMsg")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class QueryTradeData(AbstractModel):
    """贸易材料明细查询数据

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _TradeFileId: 贸易材料流水号
        :type TradeFileId: str
        :param _TradeOrderId: 贸易材料订单号
        :type TradeOrderId: str
        :param _Status: 审核状态
        :type Status: str
        :param _FailReason: 失败原因
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _PayerId: 付款人ID
        :type PayerId: str
        :param _PayeeName: 收款人姓名
        :type PayeeName: str
        :param _PayeeCountryCode: 收款人常驻国家或地区编码
        :type PayeeCountryCode: str
        :param _TradeType: 交易类型
        :type TradeType: str
        :param _TradeTime: 交易日期
        :type TradeTime: str
        :param _TradeCurrency: 交易币种
        :type TradeCurrency: str
        :param _TradeAmount: 交易金额
        :type TradeAmount: str
        :param _TradeName: 交易名称
        :type TradeName: str
        :param _TradeCount: 交易数量
        :type TradeCount: int
        :param _GoodsCarrier: 货贸承运人
注意：此字段可能返回 null，表示取不到有效值。
        :type GoodsCarrier: str
        :param _ServiceDetail: 服贸交易细节
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceDetail: str
        :param _ServiceTime: 服贸服务时间
注意：此字段可能返回 null，表示取不到有效值。
        :type ServiceTime: str
        """
        self._MerchantId = None
        self._TradeFileId = None
        self._TradeOrderId = None
        self._Status = None
        self._FailReason = None
        self._PayerId = None
        self._PayeeName = None
        self._PayeeCountryCode = None
        self._TradeType = None
        self._TradeTime = None
        self._TradeCurrency = None
        self._TradeAmount = None
        self._TradeName = None
        self._TradeCount = None
        self._GoodsCarrier = None
        self._ServiceDetail = None
        self._ServiceTime = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def TradeFileId(self):
        return self._TradeFileId

    @TradeFileId.setter
    def TradeFileId(self, TradeFileId):
        self._TradeFileId = TradeFileId

    @property
    def TradeOrderId(self):
        return self._TradeOrderId

    @TradeOrderId.setter
    def TradeOrderId(self, TradeOrderId):
        self._TradeOrderId = TradeOrderId

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def PayerId(self):
        return self._PayerId

    @PayerId.setter
    def PayerId(self, PayerId):
        self._PayerId = PayerId

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def PayeeCountryCode(self):
        return self._PayeeCountryCode

    @PayeeCountryCode.setter
    def PayeeCountryCode(self, PayeeCountryCode):
        self._PayeeCountryCode = PayeeCountryCode

    @property
    def TradeType(self):
        return self._TradeType

    @TradeType.setter
    def TradeType(self, TradeType):
        self._TradeType = TradeType

    @property
    def TradeTime(self):
        return self._TradeTime

    @TradeTime.setter
    def TradeTime(self, TradeTime):
        self._TradeTime = TradeTime

    @property
    def TradeCurrency(self):
        return self._TradeCurrency

    @TradeCurrency.setter
    def TradeCurrency(self, TradeCurrency):
        self._TradeCurrency = TradeCurrency

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def TradeName(self):
        return self._TradeName

    @TradeName.setter
    def TradeName(self, TradeName):
        self._TradeName = TradeName

    @property
    def TradeCount(self):
        return self._TradeCount

    @TradeCount.setter
    def TradeCount(self, TradeCount):
        self._TradeCount = TradeCount

    @property
    def GoodsCarrier(self):
        return self._GoodsCarrier

    @GoodsCarrier.setter
    def GoodsCarrier(self, GoodsCarrier):
        self._GoodsCarrier = GoodsCarrier

    @property
    def ServiceDetail(self):
        return self._ServiceDetail

    @ServiceDetail.setter
    def ServiceDetail(self, ServiceDetail):
        self._ServiceDetail = ServiceDetail

    @property
    def ServiceTime(self):
        return self._ServiceTime

    @ServiceTime.setter
    def ServiceTime(self, ServiceTime):
        self._ServiceTime = ServiceTime


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._TradeFileId = params.get("TradeFileId")
        self._TradeOrderId = params.get("TradeOrderId")
        self._Status = params.get("Status")
        self._FailReason = params.get("FailReason")
        self._PayerId = params.get("PayerId")
        self._PayeeName = params.get("PayeeName")
        self._PayeeCountryCode = params.get("PayeeCountryCode")
        self._TradeType = params.get("TradeType")
        self._TradeTime = params.get("TradeTime")
        self._TradeCurrency = params.get("TradeCurrency")
        self._TradeAmount = params.get("TradeAmount")
        self._TradeName = params.get("TradeName")
        self._TradeCount = params.get("TradeCount")
        self._GoodsCarrier = params.get("GoodsCarrier")
        self._ServiceDetail = params.get("ServiceDetail")
        self._ServiceTime = params.get("ServiceTime")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTradeRequest(AbstractModel):
    """QueryTrade请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TradeFileId: 贸易材料流水号
        :type TradeFileId: str
        :param _Profile: 接入环境。沙箱环境填sandbox
        :type Profile: str
        """
        self._TradeFileId = None
        self._Profile = None

    @property
    def TradeFileId(self):
        return self._TradeFileId

    @TradeFileId.setter
    def TradeFileId(self, TradeFileId):
        self._TradeFileId = TradeFileId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TradeFileId = params.get("TradeFileId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTradeResponse(AbstractModel):
    """QueryTrade返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Result: 贸易材料明细查询结果
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryTradeResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Result = None
        self._RequestId = None

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("Result") is not None:
            self._Result = QueryTradeResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryTradeResult(AbstractModel):
    """贸易材料明细查询结果

    """

    def __init__(self):
        r"""
        :param _Data: 贸易材料明细查询数据
        :type Data: :class:`tencentcloud.cpdp.v20190820.models.QueryTradeData`
        :param _Code: 错误码
        :type Code: str
        """
        self._Data = None
        self._Code = None

    @property
    def Data(self):
        return self._Data

    @Data.setter
    def Data(self, Data):
        self._Data = Data

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code


    def _deserialize(self, params):
        if params.get("Data") is not None:
            self._Data = QueryTradeData()
            self._Data._deserialize(params.get("Data"))
        self._Code = params.get("Code")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTransferBatchRequest(AbstractModel):
    """QueryTransferBatch请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号。
示例值：129284394
        :type MerchantId: str
        :param _NeedQueryDetail: 微信明细单号。
微信区分明细单返回的唯一标识。
示例值：1030000071100999991182020050700019480101
        :type NeedQueryDetail: bool
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _BatchId: 是否查询账单明细。
true-是；
false-否，默认否。
商户可选择是否查询指定状态的转账明细单，当转账批次单状态为“FINISHED”（已完成）时，才会返回满足条件的转账明细单。
示例值：true
        :type BatchId: str
        :param _Profile: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type Profile: str
        :param _Offset: 请求资源起始位置。
从0开始，默认值为0。
示例值：20
        :type Offset: int
        :param _Limit: 最大资源条数。
该次请求可返回的最大资源（转账明细单）条数，最小20条，最大100条，不传则默认20条。不足20条按实际条数返回
示例值：20
        :type Limit: int
        :param _DetailStatus: 明细状态。
ALL：全部，需要同时查询转账成功喝失败的明细单；
SUCCESS：转账成功，只查询成功的明细单；
FAIL：转账失败，只查询转账失败的明细单。
示例值：FAIL
        :type DetailStatus: str
        """
        self._MerchantId = None
        self._NeedQueryDetail = None
        self._MerchantBatchNo = None
        self._BatchId = None
        self._Profile = None
        self._Offset = None
        self._Limit = None
        self._DetailStatus = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def NeedQueryDetail(self):
        return self._NeedQueryDetail

    @NeedQueryDetail.setter
    def NeedQueryDetail(self, NeedQueryDetail):
        self._NeedQueryDetail = NeedQueryDetail

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile

    @property
    def Offset(self):
        return self._Offset

    @Offset.setter
    def Offset(self, Offset):
        self._Offset = Offset

    @property
    def Limit(self):
        return self._Limit

    @Limit.setter
    def Limit(self, Limit):
        self._Limit = Limit

    @property
    def DetailStatus(self):
        return self._DetailStatus

    @DetailStatus.setter
    def DetailStatus(self, DetailStatus):
        self._DetailStatus = DetailStatus


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._NeedQueryDetail = params.get("NeedQueryDetail")
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._BatchId = params.get("BatchId")
        self._Profile = params.get("Profile")
        self._Offset = params.get("Offset")
        self._Limit = params.get("Limit")
        self._DetailStatus = params.get("DetailStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTransferBatchResponse(AbstractModel):
    """QueryTransferBatch返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号。
示例值：19300009329
        :type MerchantId: str
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _BatchId: 微信批次单号。
微信商家转账系统返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type BatchId: str
        :param _MerchantAppId: 直连商户appId。
商户号绑定的appid。
示例值：wxf636efh567hg4356
        :type MerchantAppId: str
        :param _BatchStatus: 批次状态。
ACCEPTED:已受理，批次已受理成功，若发起批量转账的30分钟后，转账批次单仍处于该状态，可能原因是商户账户余额不足等。商户可查询账户资金流水，若该笔转账批次单的扣款已经发生，则表示批次已经进入转账中，请再次查单确认；
PROCESSING:转账中，已开始处理批次内的转账明细单；
FINISHED:已完成，批次内的所有转账明细单都已处理完成；
CLOSED:已关闭，可查询具体的批次关闭原因确认；
示例值：ACCEPTED
        :type BatchStatus: str
        :param _CloseReason: 批次关闭原因。
如果批次单状态为“CLOSED”（已关闭），则有关闭原因；
MERCHANT_REVOCATION：商户主动撤销；
OVERDUE_CLOSE：系统超时关闭。
示例值：OVERDUE_CLOSE
注意：此字段可能返回 null，表示取不到有效值。
        :type CloseReason: str
        :param _TotalAmount: 转账总金额。
转账金额，单位为分。
示例值：4000000
        :type TotalAmount: int
        :param _TotalNum: 转账总笔数。
一个转账批次最多允许发起三千笔转账。
示例值：200
        :type TotalNum: int
        :param _CreateTime: 批次受理成功时返回，遵循rfc3339标准格式。格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss.sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。
示例值：2015-05-20T13:29:35.120+08:00
注意：此字段可能返回 null，表示取不到有效值。
        :type CreateTime: str
        :param _UpdateTime: 批次最近一次更新时间，遵循rfc3339标准格式。格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss.sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。
示例值：2015-05-20T13:29:35.120+08:00
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _SuccessAmount: 转账成功金额。
转账成功的金额，单位为分，可能随时变化。
示例值：4000000
注意：此字段可能返回 null，表示取不到有效值。
        :type SuccessAmount: int
        :param _SuccessNum: 转账成功的笔数。
可能随时变化。
示例值：200
注意：此字段可能返回 null，表示取不到有效值。
        :type SuccessNum: int
        :param _FailAmount: 转账失败金额。
转账失败的金额，单位为分，可能随时变化。
示例值：4000000
注意：此字段可能返回 null，表示取不到有效值。
        :type FailAmount: int
        :param _FailNum: 转账失败笔数。
可能随时变化。
示例值：200
注意：此字段可能返回 null，表示取不到有效值。
        :type FailNum: int
        :param _TransferDetails: 转账明细列表。
返回明细详情
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferDetails: list of TransferDetailResponse
        :param _BatchType: 批次类型。
注意：此字段可能返回 null，表示取不到有效值。
        :type BatchType: str
        :param _BatchName: 批次名称。
注意：此字段可能返回 null，表示取不到有效值。
        :type BatchName: str
        :param _BatchRemark: 批次标注。
注意：此字段可能返回 null，表示取不到有效值。
        :type BatchRemark: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantId = None
        self._MerchantBatchNo = None
        self._BatchId = None
        self._MerchantAppId = None
        self._BatchStatus = None
        self._CloseReason = None
        self._TotalAmount = None
        self._TotalNum = None
        self._CreateTime = None
        self._UpdateTime = None
        self._SuccessAmount = None
        self._SuccessNum = None
        self._FailAmount = None
        self._FailNum = None
        self._TransferDetails = None
        self._BatchType = None
        self._BatchName = None
        self._BatchRemark = None
        self._RequestId = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def BatchStatus(self):
        return self._BatchStatus

    @BatchStatus.setter
    def BatchStatus(self, BatchStatus):
        self._BatchStatus = BatchStatus

    @property
    def CloseReason(self):
        return self._CloseReason

    @CloseReason.setter
    def CloseReason(self, CloseReason):
        self._CloseReason = CloseReason

    @property
    def TotalAmount(self):
        return self._TotalAmount

    @TotalAmount.setter
    def TotalAmount(self, TotalAmount):
        self._TotalAmount = TotalAmount

    @property
    def TotalNum(self):
        return self._TotalNum

    @TotalNum.setter
    def TotalNum(self, TotalNum):
        self._TotalNum = TotalNum

    @property
    def CreateTime(self):
        return self._CreateTime

    @CreateTime.setter
    def CreateTime(self, CreateTime):
        self._CreateTime = CreateTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def SuccessAmount(self):
        return self._SuccessAmount

    @SuccessAmount.setter
    def SuccessAmount(self, SuccessAmount):
        self._SuccessAmount = SuccessAmount

    @property
    def SuccessNum(self):
        return self._SuccessNum

    @SuccessNum.setter
    def SuccessNum(self, SuccessNum):
        self._SuccessNum = SuccessNum

    @property
    def FailAmount(self):
        return self._FailAmount

    @FailAmount.setter
    def FailAmount(self, FailAmount):
        self._FailAmount = FailAmount

    @property
    def FailNum(self):
        return self._FailNum

    @FailNum.setter
    def FailNum(self, FailNum):
        self._FailNum = FailNum

    @property
    def TransferDetails(self):
        return self._TransferDetails

    @TransferDetails.setter
    def TransferDetails(self, TransferDetails):
        self._TransferDetails = TransferDetails

    @property
    def BatchType(self):
        return self._BatchType

    @BatchType.setter
    def BatchType(self, BatchType):
        self._BatchType = BatchType

    @property
    def BatchName(self):
        return self._BatchName

    @BatchName.setter
    def BatchName(self, BatchName):
        self._BatchName = BatchName

    @property
    def BatchRemark(self):
        return self._BatchRemark

    @BatchRemark.setter
    def BatchRemark(self, BatchRemark):
        self._BatchRemark = BatchRemark

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._BatchId = params.get("BatchId")
        self._MerchantAppId = params.get("MerchantAppId")
        self._BatchStatus = params.get("BatchStatus")
        self._CloseReason = params.get("CloseReason")
        self._TotalAmount = params.get("TotalAmount")
        self._TotalNum = params.get("TotalNum")
        self._CreateTime = params.get("CreateTime")
        self._UpdateTime = params.get("UpdateTime")
        self._SuccessAmount = params.get("SuccessAmount")
        self._SuccessNum = params.get("SuccessNum")
        self._FailAmount = params.get("FailAmount")
        self._FailNum = params.get("FailNum")
        if params.get("TransferDetails") is not None:
            self._TransferDetails = []
            for item in params.get("TransferDetails"):
                obj = TransferDetailResponse()
                obj._deserialize(item)
                self._TransferDetails.append(obj)
        self._BatchType = params.get("BatchType")
        self._BatchName = params.get("BatchName")
        self._BatchRemark = params.get("BatchRemark")
        self._RequestId = params.get("RequestId")


class QueryTransferDetailRequest(AbstractModel):
    """QueryTransferDetail请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号。
示例值：129284394
        :type MerchantId: str
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _MerchantDetailNo: 商家明细单号。
商户系统内部的商家明细单号
示例值：plfk2020042013
        :type MerchantDetailNo: str
        :param _BatchId: 微信批次单号。
微信商家转账系统返回的唯一标识。
商家单号（包含批次号和明细单号）和微信单号（包含批次号和明细单号）二者必填其一。
示例值：1030000071100999991182020050700019480001
        :type BatchId: str
        :param _DetailId: 微信明细单号。
微信区分明细单返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type DetailId: str
        :param _Profile: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type Profile: str
        """
        self._MerchantId = None
        self._MerchantBatchNo = None
        self._MerchantDetailNo = None
        self._BatchId = None
        self._DetailId = None
        self._Profile = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def MerchantDetailNo(self):
        return self._MerchantDetailNo

    @MerchantDetailNo.setter
    def MerchantDetailNo(self, MerchantDetailNo):
        self._MerchantDetailNo = MerchantDetailNo

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def DetailId(self):
        return self._DetailId

    @DetailId.setter
    def DetailId(self, DetailId):
        self._DetailId = DetailId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._MerchantDetailNo = params.get("MerchantDetailNo")
        self._BatchId = params.get("BatchId")
        self._DetailId = params.get("DetailId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTransferDetailResponse(AbstractModel):
    """QueryTransferDetail返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号。
示例值：19300009329
        :type MerchantId: str
        :param _MerchantBatchNo: 商家批次单号。
商户系统内部的商家批次单号，此参数只能由数字、字母组成，商户系统内部唯一，UTF8编码，最多32个字符。
示例值：plfk2020042013
        :type MerchantBatchNo: str
        :param _BatchId: 微信批次单号。
微信商家转账系统返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type BatchId: str
        :param _MerchantDetailNo: 商家明细单号。
商户系统内部的商家明细单号
示例值：plfk2020042013
        :type MerchantDetailNo: str
        :param _DetailId: 微信明细单号。
微信区分明细单返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type DetailId: str
        :param _DetailStatus: 明细状态。
PROCESSING：转账中，正在处理，结果未明；
SUCCESS：转账成功；
FAIL：转账失败，需要确认失败原因以后，再决定是否重新发起地该笔明细的转账。
示例值：SUCCESS
        :type DetailStatus: str
        :param _TransferAmount: 转账金额。
单位为分。
示例值：200
        :type TransferAmount: int
        :param _FailReason: 失败原因。
如果转账失败则有失败原因
ACCOUNT_FROZEN：账户冻结
REAL_NAME_CHECK_FAIL：用户未实名
NAME_NOT_CORRECT：用户姓名校验失败
OPENID_INVALID：Openid校验失败
TRANSFER_QUOTA_EXCEED：超过用户单笔收款额度
DAY_RECEIVED_QUOTA_EXCEED：超过用户单日收款额度
MONTH_RECEIVED_QUOTA_EXCEED：超过用户单月收款额度
DAY_RECEIVED_COUNT_EXCEED：超过用户单日收款次数
PRODUCT_AUTH_CHECK_FAIL：产品权限校验失败
OVERDUE_CLOSE：转账关闭
ID_CARD_NOT_CORRECT：用户身份证校验失败
ACCOUNT_NOT_EXIST：用户账户不存在
TRANSFER_RISK：转账存在风险
示例值：ACCOUNT_FROZEN
注意：此字段可能返回 null，表示取不到有效值。
        :type FailReason: str
        :param _InitiateTime: 转账发起时间。
遵循rfc3339标准格式。格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss.sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。
示例值：2015-05-20T13:29:35.120+08:00
注意：此字段可能返回 null，表示取不到有效值。
        :type InitiateTime: str
        :param _UpdateTime: 转账更新时间。
遵循rfc3339标准格式。格式为YYYY-MM-DDTHH:mm:ss.sss+TIMEZONE，YYYY-MM-DD表示年月日，T出现在字符串中，表示time元素的开头，HH:mm:ss.sss表示时分秒毫秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。例如：2015-05-20T13:29:35.120+08:00表示北京时间2015年05月20日13点29分35秒。
示例值：2015-05-20T13:29:35.120+08:00
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _UserName: 用户名。
示例值：张三
注意：此字段可能返回 null，表示取不到有效值。
        :type UserName: str
        :param _TransferRemark: 转账备注。
单条转账备注（微信用户会收到该备注）。UTF8编码，最多32字符。
示例值：2020年4月报销
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferRemark: str
        :param _MerchantAppId: 商家绑定公众号APPID。
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantAppId: str
        :param _OpenId: 用户openId。
注意：此字段可能返回 null，表示取不到有效值。
        :type OpenId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantId = None
        self._MerchantBatchNo = None
        self._BatchId = None
        self._MerchantDetailNo = None
        self._DetailId = None
        self._DetailStatus = None
        self._TransferAmount = None
        self._FailReason = None
        self._InitiateTime = None
        self._UpdateTime = None
        self._UserName = None
        self._TransferRemark = None
        self._MerchantAppId = None
        self._OpenId = None
        self._RequestId = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantBatchNo(self):
        return self._MerchantBatchNo

    @MerchantBatchNo.setter
    def MerchantBatchNo(self, MerchantBatchNo):
        self._MerchantBatchNo = MerchantBatchNo

    @property
    def BatchId(self):
        return self._BatchId

    @BatchId.setter
    def BatchId(self, BatchId):
        self._BatchId = BatchId

    @property
    def MerchantDetailNo(self):
        return self._MerchantDetailNo

    @MerchantDetailNo.setter
    def MerchantDetailNo(self, MerchantDetailNo):
        self._MerchantDetailNo = MerchantDetailNo

    @property
    def DetailId(self):
        return self._DetailId

    @DetailId.setter
    def DetailId(self, DetailId):
        self._DetailId = DetailId

    @property
    def DetailStatus(self):
        return self._DetailStatus

    @DetailStatus.setter
    def DetailStatus(self, DetailStatus):
        self._DetailStatus = DetailStatus

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount

    @property
    def FailReason(self):
        return self._FailReason

    @FailReason.setter
    def FailReason(self, FailReason):
        self._FailReason = FailReason

    @property
    def InitiateTime(self):
        return self._InitiateTime

    @InitiateTime.setter
    def InitiateTime(self, InitiateTime):
        self._InitiateTime = InitiateTime

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName

    @property
    def TransferRemark(self):
        return self._TransferRemark

    @TransferRemark.setter
    def TransferRemark(self, TransferRemark):
        self._TransferRemark = TransferRemark

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantBatchNo = params.get("MerchantBatchNo")
        self._BatchId = params.get("BatchId")
        self._MerchantDetailNo = params.get("MerchantDetailNo")
        self._DetailId = params.get("DetailId")
        self._DetailStatus = params.get("DetailStatus")
        self._TransferAmount = params.get("TransferAmount")
        self._FailReason = params.get("FailReason")
        self._InitiateTime = params.get("InitiateTime")
        self._UpdateTime = params.get("UpdateTime")
        self._UserName = params.get("UserName")
        self._TransferRemark = params.get("TransferRemark")
        self._MerchantAppId = params.get("MerchantAppId")
        self._OpenId = params.get("OpenId")
        self._RequestId = params.get("RequestId")


class QueryTransferResultData(AbstractModel):
    """智能代发-单笔代发转账查询接口返回内容

    """

    def __init__(self):
        r"""
        :param _TradeSerialNo: 平台交易流水号
        :type TradeSerialNo: str
        :param _OrderId: 订单号
        :type OrderId: str
        :param _TradeStatus: 交易状态。
0 处理中  
1 提交成功 
2 交易成功 
3 交易失败 
4 未知渠道异常 
99 未知系统异常
        :type TradeStatus: int
        :param _Remark: 业务备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._TradeSerialNo = None
        self._OrderId = None
        self._TradeStatus = None
        self._Remark = None

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def TradeStatus(self):
        return self._TradeStatus

    @TradeStatus.setter
    def TradeStatus(self, TradeStatus):
        self._TradeStatus = TradeStatus

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._OrderId = params.get("OrderId")
        self._TradeStatus = params.get("TradeStatus")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTransferResultRequest(AbstractModel):
    """QueryTransferResult请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _MerchantAppId: 申请商户号的appid或者商户号绑定的appid
        :type MerchantAppId: str
        :param _TransferType: 1、 微信企业付款 
2、 支付宝转账 
3、 平安银企直联代发转账
        :type TransferType: int
        :param _TradeSerialNo: 交易流水流水号（与 OrderId 不能同时为空）
        :type TradeSerialNo: str
        :param _OrderId: 订单号（与 TradeSerialNo 不能同时为空）
        :type OrderId: str
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        """
        self._MerchantId = None
        self._MerchantAppId = None
        self._TransferType = None
        self._TradeSerialNo = None
        self._OrderId = None
        self._Profile = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantAppId = params.get("MerchantAppId")
        self._TransferType = params.get("TransferType")
        self._TradeSerialNo = params.get("TradeSerialNo")
        self._OrderId = params.get("OrderId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class QueryTransferResultResponse(AbstractModel):
    """QueryTransferResult返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功
        :type ErrCode: str
        :param _ErrMessage: 响应消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.QueryTransferResultData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = QueryTransferResultData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class QueryWechatAuthResult(AbstractModel):
    """查询用户微工卡核身结果

    """

    def __init__(self):
        r"""
        :param _AuthNo: 商户核身单号
        :type AuthNo: str
        :param _OpenId: 微信用户标识
        :type OpenId: str
        :param _MchId: 商户号
        :type MchId: str
        :param _SubMchId: 子商户号
        :type SubMchId: str
        :param _AuthScene: 核身渠道
FROM_MINI_APP：来自小程序方式核身
FROM_HARDWARE：来自硬件设备方式核身
        :type AuthScene: str
        :param _AuthSource: 核身渠道标识

用于定位渠道具体来源，如果是扫码打卡渠道标识就是具体的小程序appid，若是硬件设备，则是设备的序列号等
        :type AuthSource: str
        :param _ProjectName: 项目名称
        :type ProjectName: str
        :param _EmployerName: 所属单位名称
        :type EmployerName: str
        :param _AuthTime: 核身时间
yyyy-MM-DDTHH:mm:ss+TIMEZONE

示例值：2015-05-20T13:29:35+08:00
注意：此字段可能返回 null，表示取不到有效值。
        :type AuthTime: str
        :param _AuthType: 核身类型

SIGN_IN：考勤、签到打卡类型
INSURANCE：投保类型
CONTRACT：签约类型
        :type AuthType: str
        :param _AuthState: 核身状态
AUTHENTICATE_PROCESSING：核身中
AUTHENTICATE_SUCCESS：核身成功
AUTHENTICATE_FAILED：核身失败
        :type AuthState: str
        :param _AuthFailReason: 核身失败原因描述
注意：此字段可能返回 null，表示取不到有效值。
        :type AuthFailReason: str
        """
        self._AuthNo = None
        self._OpenId = None
        self._MchId = None
        self._SubMchId = None
        self._AuthScene = None
        self._AuthSource = None
        self._ProjectName = None
        self._EmployerName = None
        self._AuthTime = None
        self._AuthType = None
        self._AuthState = None
        self._AuthFailReason = None

    @property
    def AuthNo(self):
        return self._AuthNo

    @AuthNo.setter
    def AuthNo(self, AuthNo):
        self._AuthNo = AuthNo

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def MchId(self):
        return self._MchId

    @MchId.setter
    def MchId(self, MchId):
        self._MchId = MchId

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def AuthScene(self):
        return self._AuthScene

    @AuthScene.setter
    def AuthScene(self, AuthScene):
        self._AuthScene = AuthScene

    @property
    def AuthSource(self):
        return self._AuthSource

    @AuthSource.setter
    def AuthSource(self, AuthSource):
        self._AuthSource = AuthSource

    @property
    def ProjectName(self):
        return self._ProjectName

    @ProjectName.setter
    def ProjectName(self, ProjectName):
        self._ProjectName = ProjectName

    @property
    def EmployerName(self):
        return self._EmployerName

    @EmployerName.setter
    def EmployerName(self, EmployerName):
        self._EmployerName = EmployerName

    @property
    def AuthTime(self):
        return self._AuthTime

    @AuthTime.setter
    def AuthTime(self, AuthTime):
        self._AuthTime = AuthTime

    @property
    def AuthType(self):
        return self._AuthType

    @AuthType.setter
    def AuthType(self, AuthType):
        self._AuthType = AuthType

    @property
    def AuthState(self):
        return self._AuthState

    @AuthState.setter
    def AuthState(self, AuthState):
        self._AuthState = AuthState

    @property
    def AuthFailReason(self):
        return self._AuthFailReason

    @AuthFailReason.setter
    def AuthFailReason(self, AuthFailReason):
        self._AuthFailReason = AuthFailReason


    def _deserialize(self, params):
        self._AuthNo = params.get("AuthNo")
        self._OpenId = params.get("OpenId")
        self._MchId = params.get("MchId")
        self._SubMchId = params.get("SubMchId")
        self._AuthScene = params.get("AuthScene")
        self._AuthSource = params.get("AuthSource")
        self._ProjectName = params.get("ProjectName")
        self._EmployerName = params.get("EmployerName")
        self._AuthTime = params.get("AuthTime")
        self._AuthType = params.get("AuthType")
        self._AuthState = params.get("AuthState")
        self._AuthFailReason = params.get("AuthFailReason")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RechargeByThirdPayRequest(AbstractModel):
    """RechargeByThirdPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型 此接口固定填：MemberRechargeThirdPayReq
        :type RequestType: str
        :param _MerchantCode: 商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OrderId: 交易订单号
        :type OrderId: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _TransSequenceNumber: 交易流水号
        :type TransSequenceNumber: str
        :param _BankSubAccountNumber: 子账户账号
        :type BankSubAccountNumber: str
        :param _TransFee: 交易手续费，以元为单位
        :type TransFee: str
        :param _ThirdPayChannel: 第三方支付渠道类型 0001-微信 0002-支付宝 0003-京东支付
        :type ThirdPayChannel: str
        :param _ThirdPayChannelMerchantCode: 第三方渠道商户号
        :type ThirdPayChannelMerchantCode: str
        :param _ThirdPayChannelOrderId: 第三方渠道订单号或流水号
        :type ThirdPayChannelOrderId: str
        :param _CurrencyAmount: 交易金额
        :type CurrencyAmount: str
        :param _CurrencyUnit: 单位，1：元，2：角，3：分
        :type CurrencyUnit: str
        :param _CurrencyType: 币种
        :type CurrencyType: str
        :param _TransNetMemberCode: 交易网会员代码
        :type TransNetMemberCode: str
        :param _MidasEnvironment: midas环境参数
        :type MidasEnvironment: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        :param _Remark: 备注
        :type Remark: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OrderId = None
        self._BankAccountNumber = None
        self._PlatformShortNumber = None
        self._MidasSecretId = None
        self._MidasAppId = None
        self._MidasSignature = None
        self._TransSequenceNumber = None
        self._BankSubAccountNumber = None
        self._TransFee = None
        self._ThirdPayChannel = None
        self._ThirdPayChannelMerchantCode = None
        self._ThirdPayChannelOrderId = None
        self._CurrencyAmount = None
        self._CurrencyUnit = None
        self._CurrencyType = None
        self._TransNetMemberCode = None
        self._MidasEnvironment = None
        self._ReservedMessage = None
        self._Remark = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def BankSubAccountNumber(self):
        return self._BankSubAccountNumber

    @BankSubAccountNumber.setter
    def BankSubAccountNumber(self, BankSubAccountNumber):
        self._BankSubAccountNumber = BankSubAccountNumber

    @property
    def TransFee(self):
        return self._TransFee

    @TransFee.setter
    def TransFee(self, TransFee):
        self._TransFee = TransFee

    @property
    def ThirdPayChannel(self):
        return self._ThirdPayChannel

    @ThirdPayChannel.setter
    def ThirdPayChannel(self, ThirdPayChannel):
        self._ThirdPayChannel = ThirdPayChannel

    @property
    def ThirdPayChannelMerchantCode(self):
        return self._ThirdPayChannelMerchantCode

    @ThirdPayChannelMerchantCode.setter
    def ThirdPayChannelMerchantCode(self, ThirdPayChannelMerchantCode):
        self._ThirdPayChannelMerchantCode = ThirdPayChannelMerchantCode

    @property
    def ThirdPayChannelOrderId(self):
        return self._ThirdPayChannelOrderId

    @ThirdPayChannelOrderId.setter
    def ThirdPayChannelOrderId(self, ThirdPayChannelOrderId):
        self._ThirdPayChannelOrderId = ThirdPayChannelOrderId

    @property
    def CurrencyAmount(self):
        return self._CurrencyAmount

    @CurrencyAmount.setter
    def CurrencyAmount(self, CurrencyAmount):
        self._CurrencyAmount = CurrencyAmount

    @property
    def CurrencyUnit(self):
        return self._CurrencyUnit

    @CurrencyUnit.setter
    def CurrencyUnit(self, CurrencyUnit):
        self._CurrencyUnit = CurrencyUnit

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def TransNetMemberCode(self):
        return self._TransNetMemberCode

    @TransNetMemberCode.setter
    def TransNetMemberCode(self, TransNetMemberCode):
        self._TransNetMemberCode = TransNetMemberCode

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OrderId = params.get("OrderId")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSignature = params.get("MidasSignature")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._BankSubAccountNumber = params.get("BankSubAccountNumber")
        self._TransFee = params.get("TransFee")
        self._ThirdPayChannel = params.get("ThirdPayChannel")
        self._ThirdPayChannelMerchantCode = params.get("ThirdPayChannelMerchantCode")
        self._ThirdPayChannelOrderId = params.get("ThirdPayChannelOrderId")
        self._CurrencyAmount = params.get("CurrencyAmount")
        self._CurrencyUnit = params.get("CurrencyUnit")
        self._CurrencyType = params.get("CurrencyType")
        self._TransNetMemberCode = params.get("TransNetMemberCode")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._ReservedMessage = params.get("ReservedMessage")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RechargeByThirdPayResponse(AbstractModel):
    """RechargeByThirdPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReservedMessage: 保留字段
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMessage: str
        :param _FrontSequenceNumber: 银行流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSequenceNumber: str
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReservedMessage = None
        self._FrontSequenceNumber = None
        self._RequestType = None
        self._RequestId = None

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def FrontSequenceNumber(self):
        return self._FrontSequenceNumber

    @FrontSequenceNumber.setter
    def FrontSequenceNumber(self, FrontSequenceNumber):
        self._FrontSequenceNumber = FrontSequenceNumber

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ReservedMessage = params.get("ReservedMessage")
        self._FrontSequenceNumber = params.get("FrontSequenceNumber")
        self._RequestType = params.get("RequestType")
        self._RequestId = params.get("RequestId")


class RechargeMemberThirdPayRequest(AbstractModel):
    """RechargeMemberThirdPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TranNetMemberCode: STRING(32)，交易网会代码
        :type TranNetMemberCode: str
        :param _MemberFillAmt: STRING(20)，会员充值金额
        :type MemberFillAmt: str
        :param _Commission: STRING(20)，手续费金额
        :type Commission: str
        :param _Ccy: STRING(3)，币种。如RMB
        :type Ccy: str
        :param _PayChannelType: STRING(20)，支付渠道类型。
0001-微信
0002-支付宝
0003-京东支付
        :type PayChannelType: str
        :param _PayChannelAssignMerNo: STRING(50)，支付渠道所分配的商户号
        :type PayChannelAssignMerNo: str
        :param _PayChannelTranSeqNo: STRING(52)，支付渠道交易流水号
        :type PayChannelTranSeqNo: str
        :param _EjzbOrderNo: STRING(52)，电商见证宝订单号
        :type EjzbOrderNo: str
        :param _MrchCode: String(22)，商户号
        :type MrchCode: str
        :param _EjzbOrderContent: STRING(500)，电商见证宝订单内容
        :type EjzbOrderContent: str
        :param _Remark: STRING(300)，备注
        :type Remark: str
        :param _ReservedMsgOne: STRING(300)，保留域1
        :type ReservedMsgOne: str
        :param _ReservedMsgTwo: STRING(300)，保留域2
        :type ReservedMsgTwo: str
        :param _ReservedMsgThree: STRING(300)，保留域3
        :type ReservedMsgThree: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._TranNetMemberCode = None
        self._MemberFillAmt = None
        self._Commission = None
        self._Ccy = None
        self._PayChannelType = None
        self._PayChannelAssignMerNo = None
        self._PayChannelTranSeqNo = None
        self._EjzbOrderNo = None
        self._MrchCode = None
        self._EjzbOrderContent = None
        self._Remark = None
        self._ReservedMsgOne = None
        self._ReservedMsgTwo = None
        self._ReservedMsgThree = None
        self._Profile = None

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberFillAmt(self):
        return self._MemberFillAmt

    @MemberFillAmt.setter
    def MemberFillAmt(self, MemberFillAmt):
        self._MemberFillAmt = MemberFillAmt

    @property
    def Commission(self):
        return self._Commission

    @Commission.setter
    def Commission(self, Commission):
        self._Commission = Commission

    @property
    def Ccy(self):
        return self._Ccy

    @Ccy.setter
    def Ccy(self, Ccy):
        self._Ccy = Ccy

    @property
    def PayChannelType(self):
        return self._PayChannelType

    @PayChannelType.setter
    def PayChannelType(self, PayChannelType):
        self._PayChannelType = PayChannelType

    @property
    def PayChannelAssignMerNo(self):
        return self._PayChannelAssignMerNo

    @PayChannelAssignMerNo.setter
    def PayChannelAssignMerNo(self, PayChannelAssignMerNo):
        self._PayChannelAssignMerNo = PayChannelAssignMerNo

    @property
    def PayChannelTranSeqNo(self):
        return self._PayChannelTranSeqNo

    @PayChannelTranSeqNo.setter
    def PayChannelTranSeqNo(self, PayChannelTranSeqNo):
        self._PayChannelTranSeqNo = PayChannelTranSeqNo

    @property
    def EjzbOrderNo(self):
        return self._EjzbOrderNo

    @EjzbOrderNo.setter
    def EjzbOrderNo(self, EjzbOrderNo):
        self._EjzbOrderNo = EjzbOrderNo

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def EjzbOrderContent(self):
        return self._EjzbOrderContent

    @EjzbOrderContent.setter
    def EjzbOrderContent(self, EjzbOrderContent):
        self._EjzbOrderContent = EjzbOrderContent

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReservedMsgOne(self):
        return self._ReservedMsgOne

    @ReservedMsgOne.setter
    def ReservedMsgOne(self, ReservedMsgOne):
        self._ReservedMsgOne = ReservedMsgOne

    @property
    def ReservedMsgTwo(self):
        return self._ReservedMsgTwo

    @ReservedMsgTwo.setter
    def ReservedMsgTwo(self, ReservedMsgTwo):
        self._ReservedMsgTwo = ReservedMsgTwo

    @property
    def ReservedMsgThree(self):
        return self._ReservedMsgThree

    @ReservedMsgThree.setter
    def ReservedMsgThree(self, ReservedMsgThree):
        self._ReservedMsgThree = ReservedMsgThree

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberFillAmt = params.get("MemberFillAmt")
        self._Commission = params.get("Commission")
        self._Ccy = params.get("Ccy")
        self._PayChannelType = params.get("PayChannelType")
        self._PayChannelAssignMerNo = params.get("PayChannelAssignMerNo")
        self._PayChannelTranSeqNo = params.get("PayChannelTranSeqNo")
        self._EjzbOrderNo = params.get("EjzbOrderNo")
        self._MrchCode = params.get("MrchCode")
        self._EjzbOrderContent = params.get("EjzbOrderContent")
        self._Remark = params.get("Remark")
        self._ReservedMsgOne = params.get("ReservedMsgOne")
        self._ReservedMsgTwo = params.get("ReservedMsgTwo")
        self._ReservedMsgThree = params.get("ReservedMsgThree")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RechargeMemberThirdPayResponse(AbstractModel):
    """RechargeMemberThirdPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，前置流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _MemberSubAcctPreAvailBal: STRING(20)，会员子账户交易前可用余额
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberSubAcctPreAvailBal: str
        :param _ReservedMsgOne: STRING(300)，保留域1
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsgOne: str
        :param _ReservedMsgTwo: STRING(300)，保留域2
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsgTwo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._MemberSubAcctPreAvailBal = None
        self._ReservedMsgOne = None
        self._ReservedMsgTwo = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def MemberSubAcctPreAvailBal(self):
        return self._MemberSubAcctPreAvailBal

    @MemberSubAcctPreAvailBal.setter
    def MemberSubAcctPreAvailBal(self, MemberSubAcctPreAvailBal):
        self._MemberSubAcctPreAvailBal = MemberSubAcctPreAvailBal

    @property
    def ReservedMsgOne(self):
        return self._ReservedMsgOne

    @ReservedMsgOne.setter
    def ReservedMsgOne(self, ReservedMsgOne):
        self._ReservedMsgOne = ReservedMsgOne

    @property
    def ReservedMsgTwo(self):
        return self._ReservedMsgTwo

    @ReservedMsgTwo.setter
    def ReservedMsgTwo(self, ReservedMsgTwo):
        self._ReservedMsgTwo = ReservedMsgTwo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._MemberSubAcctPreAvailBal = params.get("MemberSubAcctPreAvailBal")
        self._ReservedMsgOne = params.get("ReservedMsgOne")
        self._ReservedMsgTwo = params.get("ReservedMsgTwo")
        self._RequestId = params.get("RequestId")


class RefundCloudOrderRequest(AbstractModel):
    """RefundCloudOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户Id，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _RefundId: 退款订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type RefundId: str
        :param _TotalRefundAmt: 退款金额，单位：分
当该字段为空或者为0时，系统会默认使用订单当实付金额作为退款金额
        :type TotalRefundAmt: int
        :param _OutTradeNo: 商品订单，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type OutTradeNo: str
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        :param _PlatformRefundAmt: 平台应收金额，单位：分
        :type PlatformRefundAmt: int
        :param _MchRefundAmt: 结算应收金额，单位：分
        :type MchRefundAmt: int
        :param _SubOrderRefundList: 支持多个子订单批量退款单个子订单退款支持传SubOutTradeNo
也支持传SubOrderRefundList，都传的时候以SubOrderRefundList为准。
如果传了子单退款细节，外部不需要再传退款金额，平台应退，商户应退金额
        :type SubOrderRefundList: list of CloudSubOrderRefund
        :param _ChannelOrderId: 渠道订单号，当出现重复支付时，可以将重复支付订单的渠道订单号传入，以进行退款（注意：目前该重复支付订单的渠道订单号仅能通过米大师内部获取），更多重复支付订单退款说明，请参考[重复支付订单退款说明](https://dev.tke.midas.qq.com/juxin-doc-next/apidocs/receive-order/Refund.html#%E9%87%8D%E5%A4%8D%E6%94%AF%E4%BB%98%E8%AE%A2%E5%8D%95%E9%80%80%E6%AC%BE%E8%AF%B4%E6%98%8E)
        :type ChannelOrderId: str
        :param _RefundNotifyUrl: 通知地址
        :type RefundNotifyUrl: str
        :param _Metadata: 透传字段，退款成功回调透传给应用，用于开发者透传自定义内容
        :type Metadata: str
        :param _ExternalRefundPromptGroupList: 渠道扩展退款促销列表，可将各个渠道的退款促销信息放于该列表
        :type ExternalRefundPromptGroupList: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._RefundId = None
        self._TotalRefundAmt = None
        self._OutTradeNo = None
        self._MidasEnvironment = None
        self._PlatformRefundAmt = None
        self._MchRefundAmt = None
        self._SubOrderRefundList = None
        self._ChannelOrderId = None
        self._RefundNotifyUrl = None
        self._Metadata = None
        self._ExternalRefundPromptGroupList = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def TotalRefundAmt(self):
        return self._TotalRefundAmt

    @TotalRefundAmt.setter
    def TotalRefundAmt(self, TotalRefundAmt):
        self._TotalRefundAmt = TotalRefundAmt

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def PlatformRefundAmt(self):
        return self._PlatformRefundAmt

    @PlatformRefundAmt.setter
    def PlatformRefundAmt(self, PlatformRefundAmt):
        self._PlatformRefundAmt = PlatformRefundAmt

    @property
    def MchRefundAmt(self):
        return self._MchRefundAmt

    @MchRefundAmt.setter
    def MchRefundAmt(self, MchRefundAmt):
        self._MchRefundAmt = MchRefundAmt

    @property
    def SubOrderRefundList(self):
        return self._SubOrderRefundList

    @SubOrderRefundList.setter
    def SubOrderRefundList(self, SubOrderRefundList):
        self._SubOrderRefundList = SubOrderRefundList

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def RefundNotifyUrl(self):
        return self._RefundNotifyUrl

    @RefundNotifyUrl.setter
    def RefundNotifyUrl(self, RefundNotifyUrl):
        self._RefundNotifyUrl = RefundNotifyUrl

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def ExternalRefundPromptGroupList(self):
        return self._ExternalRefundPromptGroupList

    @ExternalRefundPromptGroupList.setter
    def ExternalRefundPromptGroupList(self, ExternalRefundPromptGroupList):
        self._ExternalRefundPromptGroupList = ExternalRefundPromptGroupList


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._RefundId = params.get("RefundId")
        self._TotalRefundAmt = params.get("TotalRefundAmt")
        self._OutTradeNo = params.get("OutTradeNo")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._PlatformRefundAmt = params.get("PlatformRefundAmt")
        self._MchRefundAmt = params.get("MchRefundAmt")
        if params.get("SubOrderRefundList") is not None:
            self._SubOrderRefundList = []
            for item in params.get("SubOrderRefundList"):
                obj = CloudSubOrderRefund()
                obj._deserialize(item)
                self._SubOrderRefundList.append(obj)
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._RefundNotifyUrl = params.get("RefundNotifyUrl")
        self._Metadata = params.get("Metadata")
        self._ExternalRefundPromptGroupList = params.get("ExternalRefundPromptGroupList")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundCloudOrderResponse(AbstractModel):
    """RefundCloudOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RefundMemberTransactionRequest(AbstractModel):
    """RefundMemberTransaction请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutSubAccountName: 转出见证子账户的户名
        :type OutSubAccountName: str
        :param _InSubAccountName: 转入见证子账户的户名
        :type InSubAccountName: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OutSubAccountNumber: 转出见证子账户账号
        :type OutSubAccountNumber: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _InSubAccountNumber: 转入见证子账户账号
        :type InSubAccountNumber: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _OldTransSequenceNumber: 原老订单流水号
        :type OldTransSequenceNumber: str
        :param _MerchantCode: 银行注册商户号
        :type MerchantCode: str
        :param _RequestType: 请求类型，固定为MemberTransactionRefundReq
        :type RequestType: str
        :param _CurrencyAmount: 交易金额
        :type CurrencyAmount: str
        :param _TransSequenceNumber: 交易流水号
        :type TransSequenceNumber: str
        :param _PayChannel: 渠道
        :type PayChannel: str
        :param _OldOrderId: 原订单号
        :type OldOrderId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _OrderId: 订单号
        :type OrderId: str
        :param _MidasEnvironment: Midas环境标识 release 现网环境 sandbox 沙箱环境
development 开发环境
        :type MidasEnvironment: str
        :param _OutTransNetMemberCode: 转出子账户交易网会员代码
        :type OutTransNetMemberCode: str
        :param _InTransNetMemberCode: 转入子账户交易网会员代码
        :type InTransNetMemberCode: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _TransType: 0-登记挂账，1-撤销挂账
        :type TransType: str
        :param _TransFee: 交易手续费
        :type TransFee: str
        """
        self._OutSubAccountName = None
        self._InSubAccountName = None
        self._PayChannelSubId = None
        self._OutSubAccountNumber = None
        self._MidasSignature = None
        self._InSubAccountNumber = None
        self._MidasSecretId = None
        self._BankAccountNumber = None
        self._OldTransSequenceNumber = None
        self._MerchantCode = None
        self._RequestType = None
        self._CurrencyAmount = None
        self._TransSequenceNumber = None
        self._PayChannel = None
        self._OldOrderId = None
        self._MidasAppId = None
        self._OrderId = None
        self._MidasEnvironment = None
        self._OutTransNetMemberCode = None
        self._InTransNetMemberCode = None
        self._ReservedMessage = None
        self._PlatformShortNumber = None
        self._TransType = None
        self._TransFee = None

    @property
    def OutSubAccountName(self):
        return self._OutSubAccountName

    @OutSubAccountName.setter
    def OutSubAccountName(self, OutSubAccountName):
        self._OutSubAccountName = OutSubAccountName

    @property
    def InSubAccountName(self):
        return self._InSubAccountName

    @InSubAccountName.setter
    def InSubAccountName(self, InSubAccountName):
        self._InSubAccountName = InSubAccountName

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OutSubAccountNumber(self):
        return self._OutSubAccountNumber

    @OutSubAccountNumber.setter
    def OutSubAccountNumber(self, OutSubAccountNumber):
        self._OutSubAccountNumber = OutSubAccountNumber

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def InSubAccountNumber(self):
        return self._InSubAccountNumber

    @InSubAccountNumber.setter
    def InSubAccountNumber(self, InSubAccountNumber):
        self._InSubAccountNumber = InSubAccountNumber

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def OldTransSequenceNumber(self):
        return self._OldTransSequenceNumber

    @OldTransSequenceNumber.setter
    def OldTransSequenceNumber(self, OldTransSequenceNumber):
        self._OldTransSequenceNumber = OldTransSequenceNumber

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def CurrencyAmount(self):
        return self._CurrencyAmount

    @CurrencyAmount.setter
    def CurrencyAmount(self, CurrencyAmount):
        self._CurrencyAmount = CurrencyAmount

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def OldOrderId(self):
        return self._OldOrderId

    @OldOrderId.setter
    def OldOrderId(self, OldOrderId):
        self._OldOrderId = OldOrderId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def OutTransNetMemberCode(self):
        return self._OutTransNetMemberCode

    @OutTransNetMemberCode.setter
    def OutTransNetMemberCode(self, OutTransNetMemberCode):
        self._OutTransNetMemberCode = OutTransNetMemberCode

    @property
    def InTransNetMemberCode(self):
        return self._InTransNetMemberCode

    @InTransNetMemberCode.setter
    def InTransNetMemberCode(self, InTransNetMemberCode):
        self._InTransNetMemberCode = InTransNetMemberCode

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def TransType(self):
        return self._TransType

    @TransType.setter
    def TransType(self, TransType):
        self._TransType = TransType

    @property
    def TransFee(self):
        return self._TransFee

    @TransFee.setter
    def TransFee(self, TransFee):
        self._TransFee = TransFee


    def _deserialize(self, params):
        self._OutSubAccountName = params.get("OutSubAccountName")
        self._InSubAccountName = params.get("InSubAccountName")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OutSubAccountNumber = params.get("OutSubAccountNumber")
        self._MidasSignature = params.get("MidasSignature")
        self._InSubAccountNumber = params.get("InSubAccountNumber")
        self._MidasSecretId = params.get("MidasSecretId")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._OldTransSequenceNumber = params.get("OldTransSequenceNumber")
        self._MerchantCode = params.get("MerchantCode")
        self._RequestType = params.get("RequestType")
        self._CurrencyAmount = params.get("CurrencyAmount")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._PayChannel = params.get("PayChannel")
        self._OldOrderId = params.get("OldOrderId")
        self._MidasAppId = params.get("MidasAppId")
        self._OrderId = params.get("OrderId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._OutTransNetMemberCode = params.get("OutTransNetMemberCode")
        self._InTransNetMemberCode = params.get("InTransNetMemberCode")
        self._ReservedMessage = params.get("ReservedMessage")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._TransType = params.get("TransType")
        self._TransFee = params.get("TransFee")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundMemberTransactionResponse(AbstractModel):
    """RefundMemberTransaction返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _FrontSequenceNumber: 银行流水号
        :type FrontSequenceNumber: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestType = None
        self._FrontSequenceNumber = None
        self._ReservedMessage = None
        self._RequestId = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def FrontSequenceNumber(self):
        return self._FrontSequenceNumber

    @FrontSequenceNumber.setter
    def FrontSequenceNumber(self, FrontSequenceNumber):
        self._FrontSequenceNumber = FrontSequenceNumber

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._FrontSequenceNumber = params.get("FrontSequenceNumber")
        self._ReservedMessage = params.get("ReservedMessage")
        self._RequestId = params.get("RequestId")


class RefundOpenBankOrderRequest(AbstractModel):
    """RefundOpenBankOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OutRefundId: 外部商户退款单号。
        :type OutRefundId: str
        :param _RefundAmount: 退款金额。单位分。
        :type RefundAmount: int
        :param _ChannelMerchantId: 渠道商户号。外部平台接入云企付平台下发。必填。
        :type ChannelMerchantId: str
        :param _OutOrderId: 外部商户订单号，与云企付渠道订单号二者不能同时为空。
        :type OutOrderId: str
        :param _ChannelOrderId: 云企付渠道订单号，与外部订单号二者不能同时为空。
        :type ChannelOrderId: str
        :param _NotifyUrl: 退款通知地址。
        :type NotifyUrl: str
        :param _RefundReason: 退款原因。
当EBANK_PAYMENT担保支付订单退款时，此字段必传。
        :type RefundReason: str
        :param _ExternalRefundData: 第三方渠道退款附加信息。详见附录-复杂类型。
若未作特殊说明，则无需传入。
        :type ExternalRefundData: str
        :param _Remark: 备注信息
        :type Remark: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        :param _ProfitShareInfoList: 分账信息列表。
        :type ProfitShareInfoList: list of OpenBankProfitShareInfo
        """
        self._OutRefundId = None
        self._RefundAmount = None
        self._ChannelMerchantId = None
        self._OutOrderId = None
        self._ChannelOrderId = None
        self._NotifyUrl = None
        self._RefundReason = None
        self._ExternalRefundData = None
        self._Remark = None
        self._Environment = None
        self._ProfitShareInfoList = None

    @property
    def OutRefundId(self):
        return self._OutRefundId

    @OutRefundId.setter
    def OutRefundId(self, OutRefundId):
        self._OutRefundId = OutRefundId

    @property
    def RefundAmount(self):
        return self._RefundAmount

    @RefundAmount.setter
    def RefundAmount(self, RefundAmount):
        self._RefundAmount = RefundAmount

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def ChannelOrderId(self):
        return self._ChannelOrderId

    @ChannelOrderId.setter
    def ChannelOrderId(self, ChannelOrderId):
        self._ChannelOrderId = ChannelOrderId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def RefundReason(self):
        return self._RefundReason

    @RefundReason.setter
    def RefundReason(self, RefundReason):
        self._RefundReason = RefundReason

    @property
    def ExternalRefundData(self):
        return self._ExternalRefundData

    @ExternalRefundData.setter
    def ExternalRefundData(self, ExternalRefundData):
        self._ExternalRefundData = ExternalRefundData

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment

    @property
    def ProfitShareInfoList(self):
        return self._ProfitShareInfoList

    @ProfitShareInfoList.setter
    def ProfitShareInfoList(self, ProfitShareInfoList):
        self._ProfitShareInfoList = ProfitShareInfoList


    def _deserialize(self, params):
        self._OutRefundId = params.get("OutRefundId")
        self._RefundAmount = params.get("RefundAmount")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._OutOrderId = params.get("OutOrderId")
        self._ChannelOrderId = params.get("ChannelOrderId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._RefundReason = params.get("RefundReason")
        self._ExternalRefundData = params.get("ExternalRefundData")
        self._Remark = params.get("Remark")
        self._Environment = params.get("Environment")
        if params.get("ProfitShareInfoList") is not None:
            self._ProfitShareInfoList = []
            for item in params.get("ProfitShareInfoList"):
                obj = OpenBankProfitShareInfo()
                obj._deserialize(item)
                self._ProfitShareInfoList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundOpenBankOrderResponse(AbstractModel):
    """RefundOpenBankOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码
        :type ErrCode: str
        :param _ErrMessage: 错误消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRefundOrderApplyResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = OpenBankRefundOrderApplyResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class RefundOrderRequest(AbstractModel):
    """RefundOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的AppId
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。消费订单发起成功后，返回的平台唯一订单号。
        :type OrderNo: str
        """
        self._MerchantAppId = None
        self._OrderNo = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundOrderResponse(AbstractModel):
    """RefundOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantAppId: 进件成功后返给商户方的AppId
        :type MerchantAppId: str
        :param _OrderNo: 平台流水号。消费订单发起成功后，返回的平台唯一订单号。
        :type OrderNo: str
        :param _Status: 订单退款状态。0-退款失败
1-退款成功 
2-可疑状态
        :type Status: str
        :param _Description: 订单退款状态描述
注意：此字段可能返回 null，表示取不到有效值。
        :type Description: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._MerchantAppId = None
        self._OrderNo = None
        self._Status = None
        self._Description = None
        self._RequestId = None

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Description(self):
        return self._Description

    @Description.setter
    def Description(self, Description):
        self._Description = Description

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._MerchantAppId = params.get("MerchantAppId")
        self._OrderNo = params.get("OrderNo")
        self._Status = params.get("Status")
        self._Description = params.get("Description")
        self._RequestId = params.get("RequestId")


class RefundOrderResult(AbstractModel):
    """订单退款响应对象

    """

    def __init__(self):
        r"""
        :param _OrderNo: 付款订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderNo: str
        :param _DeveloperNo: 开发者流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type DeveloperNo: str
        :param _TradeDiscountAmount: 交易优惠金额（免充值券）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeDiscountAmount: str
        :param _PayName: 付款方式名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PayName: str
        :param _OrderMerchantId: 商户流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderMerchantId: str
        :param _TradeAmount: 实际交易金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeAmount: str
        :param _CurrencySign: 币种签名
注意：此字段可能返回 null，表示取不到有效值。
        :type CurrencySign: str
        :param _TradePayTime: 付款完成时间（以收单机构为准）
注意：此字段可能返回 null，表示取不到有效值。
        :type TradePayTime: str
        :param _ShopOrderId: 门店流水号（从1开始自增长不重复）
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopOrderId: str
        :param _PayTag: 支付标签
注意：此字段可能返回 null，表示取不到有效值。
        :type PayTag: str
        :param _Status: 订单状态（1交易成功，2待支付，4已取消，9等待用户输入密码确认
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _OrderCurrency: 币种代码
注意：此字段可能返回 null，表示取不到有效值。
        :type OrderCurrency: str
        :param _TradeTime: 开始交易时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TradeTime: str
        :param _DiscountAmount: 折扣金额（以分为单位，没有小数点）
注意：此字段可能返回 null，表示取不到有效值。
        :type DiscountAmount: str
        :param _OriginalOrderNo: 原始订单号
注意：此字段可能返回 null，表示取不到有效值。
        :type OriginalOrderNo: str
        """
        self._OrderNo = None
        self._DeveloperNo = None
        self._TradeDiscountAmount = None
        self._PayName = None
        self._OrderMerchantId = None
        self._TradeAmount = None
        self._CurrencySign = None
        self._TradePayTime = None
        self._ShopOrderId = None
        self._PayTag = None
        self._Status = None
        self._OrderCurrency = None
        self._TradeTime = None
        self._DiscountAmount = None
        self._OriginalOrderNo = None

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def TradeDiscountAmount(self):
        return self._TradeDiscountAmount

    @TradeDiscountAmount.setter
    def TradeDiscountAmount(self, TradeDiscountAmount):
        self._TradeDiscountAmount = TradeDiscountAmount

    @property
    def PayName(self):
        return self._PayName

    @PayName.setter
    def PayName(self, PayName):
        self._PayName = PayName

    @property
    def OrderMerchantId(self):
        return self._OrderMerchantId

    @OrderMerchantId.setter
    def OrderMerchantId(self, OrderMerchantId):
        self._OrderMerchantId = OrderMerchantId

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def CurrencySign(self):
        return self._CurrencySign

    @CurrencySign.setter
    def CurrencySign(self, CurrencySign):
        self._CurrencySign = CurrencySign

    @property
    def TradePayTime(self):
        return self._TradePayTime

    @TradePayTime.setter
    def TradePayTime(self, TradePayTime):
        self._TradePayTime = TradePayTime

    @property
    def ShopOrderId(self):
        return self._ShopOrderId

    @ShopOrderId.setter
    def ShopOrderId(self, ShopOrderId):
        self._ShopOrderId = ShopOrderId

    @property
    def PayTag(self):
        return self._PayTag

    @PayTag.setter
    def PayTag(self, PayTag):
        self._PayTag = PayTag

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def OrderCurrency(self):
        return self._OrderCurrency

    @OrderCurrency.setter
    def OrderCurrency(self, OrderCurrency):
        self._OrderCurrency = OrderCurrency

    @property
    def TradeTime(self):
        return self._TradeTime

    @TradeTime.setter
    def TradeTime(self, TradeTime):
        self._TradeTime = TradeTime

    @property
    def DiscountAmount(self):
        return self._DiscountAmount

    @DiscountAmount.setter
    def DiscountAmount(self, DiscountAmount):
        self._DiscountAmount = DiscountAmount

    @property
    def OriginalOrderNo(self):
        return self._OriginalOrderNo

    @OriginalOrderNo.setter
    def OriginalOrderNo(self, OriginalOrderNo):
        self._OriginalOrderNo = OriginalOrderNo


    def _deserialize(self, params):
        self._OrderNo = params.get("OrderNo")
        self._DeveloperNo = params.get("DeveloperNo")
        self._TradeDiscountAmount = params.get("TradeDiscountAmount")
        self._PayName = params.get("PayName")
        self._OrderMerchantId = params.get("OrderMerchantId")
        self._TradeAmount = params.get("TradeAmount")
        self._CurrencySign = params.get("CurrencySign")
        self._TradePayTime = params.get("TradePayTime")
        self._ShopOrderId = params.get("ShopOrderId")
        self._PayTag = params.get("PayTag")
        self._Status = params.get("Status")
        self._OrderCurrency = params.get("OrderCurrency")
        self._TradeTime = params.get("TradeTime")
        self._DiscountAmount = params.get("DiscountAmount")
        self._OriginalOrderNo = params.get("OriginalOrderNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundOutSubOrderRefundList(AbstractModel):
    """退款子订单列表

    """

    def __init__(self):
        r"""
        :param _PlatformRefundAmt: 平台应退金额
        :type PlatformRefundAmt: int
        :param _RefundAmt: 子订单退款金额
        :type RefundAmt: int
        :param _SubMchRefundAmt: 商家应退金额
        :type SubMchRefundAmt: int
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        :param _SubRefundId: 子退款单号，调用方需要保证 全局唯一性
        :type SubRefundId: str
        """
        self._PlatformRefundAmt = None
        self._RefundAmt = None
        self._SubMchRefundAmt = None
        self._SubOutTradeNo = None
        self._SubRefundId = None

    @property
    def PlatformRefundAmt(self):
        return self._PlatformRefundAmt

    @PlatformRefundAmt.setter
    def PlatformRefundAmt(self, PlatformRefundAmt):
        self._PlatformRefundAmt = PlatformRefundAmt

    @property
    def RefundAmt(self):
        return self._RefundAmt

    @RefundAmt.setter
    def RefundAmt(self, RefundAmt):
        self._RefundAmt = RefundAmt

    @property
    def SubMchRefundAmt(self):
        return self._SubMchRefundAmt

    @SubMchRefundAmt.setter
    def SubMchRefundAmt(self, SubMchRefundAmt):
        self._SubMchRefundAmt = SubMchRefundAmt

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def SubRefundId(self):
        return self._SubRefundId

    @SubRefundId.setter
    def SubRefundId(self, SubRefundId):
        self._SubRefundId = SubRefundId


    def _deserialize(self, params):
        self._PlatformRefundAmt = params.get("PlatformRefundAmt")
        self._RefundAmt = params.get("RefundAmt")
        self._SubMchRefundAmt = params.get("SubMchRefundAmt")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._SubRefundId = params.get("SubRefundId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundRequest(AbstractModel):
    """Refund请求参数结构体

    """

    def __init__(self):
        r"""
        :param _UserId: 用户ID，长度不小于5位， 仅支持字母和数字的组合
        :type UserId: str
        :param _RefundId: 退款订单号，仅支持数字、 字母、下划线（_）、横杠字 符（-）、点（.）的组合
        :type RefundId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _TotalRefundAmt: 退款金额，单位：分。备注：当该字段为空或者为0 时，系统会默认使用订单当 实付金额作为退款金额
        :type TotalRefundAmt: int
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _OutTradeNo: 商品订单，仅支持数字、字 母、下划线（_）、横杠字符 （-）、点（.）的组合。  OutTradeNo ,TransactionId 二选一,不能都为空,优先使用 OutTradeNo
        :type OutTradeNo: str
        :param _MchRefundAmt: 结算应收金额，单位：分
        :type MchRefundAmt: int
        :param _TransactionId: 调用下单接口获取的聚鑫交 易订单。  OutTradeNo ,TransactionId 二选一,不能都为空,优先使用 OutTradeNo
        :type TransactionId: str
        :param _PlatformRefundAmt: 平台应收金额，单位：分
        :type PlatformRefundAmt: int
        :param _SubOrderRefundList: 支持多个子订单批量退款单 个子订单退款支持传 SubOutTradeNo ，也支持传 SubOutTradeNoList ，都传的时候以 SubOutTradeNoList 为准。  如果传了子单退款细节，外 部不需要再传退款金额，平 台应退，商户应退金额，我 们可以直接根据子单退款算出来总和。
        :type SubOrderRefundList: list of RefundOutSubOrderRefundList
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._UserId = None
        self._RefundId = None
        self._MidasAppId = None
        self._TotalRefundAmt = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._OutTradeNo = None
        self._MchRefundAmt = None
        self._TransactionId = None
        self._PlatformRefundAmt = None
        self._SubOrderRefundList = None
        self._MidasEnvironment = None

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RefundId(self):
        return self._RefundId

    @RefundId.setter
    def RefundId(self, RefundId):
        self._RefundId = RefundId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def TotalRefundAmt(self):
        return self._TotalRefundAmt

    @TotalRefundAmt.setter
    def TotalRefundAmt(self, TotalRefundAmt):
        self._TotalRefundAmt = TotalRefundAmt

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def MchRefundAmt(self):
        return self._MchRefundAmt

    @MchRefundAmt.setter
    def MchRefundAmt(self, MchRefundAmt):
        self._MchRefundAmt = MchRefundAmt

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def PlatformRefundAmt(self):
        return self._PlatformRefundAmt

    @PlatformRefundAmt.setter
    def PlatformRefundAmt(self, PlatformRefundAmt):
        self._PlatformRefundAmt = PlatformRefundAmt

    @property
    def SubOrderRefundList(self):
        return self._SubOrderRefundList

    @SubOrderRefundList.setter
    def SubOrderRefundList(self, SubOrderRefundList):
        self._SubOrderRefundList = SubOrderRefundList

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._UserId = params.get("UserId")
        self._RefundId = params.get("RefundId")
        self._MidasAppId = params.get("MidasAppId")
        self._TotalRefundAmt = params.get("TotalRefundAmt")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._OutTradeNo = params.get("OutTradeNo")
        self._MchRefundAmt = params.get("MchRefundAmt")
        self._TransactionId = params.get("TransactionId")
        self._PlatformRefundAmt = params.get("PlatformRefundAmt")
        if params.get("SubOrderRefundList") is not None:
            self._SubOrderRefundList = []
            for item in params.get("SubOrderRefundList"):
                obj = RefundOutSubOrderRefundList()
                obj._deserialize(item)
                self._SubOrderRefundList.append(obj)
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundResponse(AbstractModel):
    """Refund返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class RefundTlinxOrderRequest(AbstractModel):
    """RefundTlinxOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _DeveloperNo: 原始订单的开发者交易流水号
        :type DeveloperNo: str
        :param _RefundOutNo: 新退款订单的开发者流水号，同一门店内唯一
        :type RefundOutNo: str
        :param _RefundOrderName: 退款订单名称，可以为空
        :type RefundOrderName: str
        :param _RefundAmount: 退款金额（以分为单位，没有小数点）
        :type RefundAmount: str
        :param _ShopPassword: 主管密码，对密码进行SHA-1加密，默认为123456
        :type ShopPassword: str
        :param _Remark: 退款备注
        :type Remark: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._DeveloperNo = None
        self._RefundOutNo = None
        self._RefundOrderName = None
        self._RefundAmount = None
        self._ShopPassword = None
        self._Remark = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def RefundOutNo(self):
        return self._RefundOutNo

    @RefundOutNo.setter
    def RefundOutNo(self, RefundOutNo):
        self._RefundOutNo = RefundOutNo

    @property
    def RefundOrderName(self):
        return self._RefundOrderName

    @RefundOrderName.setter
    def RefundOrderName(self, RefundOrderName):
        self._RefundOrderName = RefundOrderName

    @property
    def RefundAmount(self):
        return self._RefundAmount

    @RefundAmount.setter
    def RefundAmount(self, RefundAmount):
        self._RefundAmount = RefundAmount

    @property
    def ShopPassword(self):
        return self._ShopPassword

    @ShopPassword.setter
    def ShopPassword(self, ShopPassword):
        self._ShopPassword = ShopPassword

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._DeveloperNo = params.get("DeveloperNo")
        self._RefundOutNo = params.get("RefundOutNo")
        self._RefundOrderName = params.get("RefundOrderName")
        self._RefundAmount = params.get("RefundAmount")
        self._ShopPassword = params.get("ShopPassword")
        self._Remark = params.get("Remark")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RefundTlinxOrderResponse(AbstractModel):
    """RefundTlinxOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 退款响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.RefundOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = RefundOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class RegisterBehaviorRequest(AbstractModel):
    """RegisterBehavior请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _FunctionFlag: 功能标志
1：登记行为记录信息
2：查询补录信息
        :type FunctionFlag: int
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _OperationClickTime: 操作点击时间
yyyyMMddHHmmss
功能标志FunctionFlag=1时必输
        :type OperationClickTime: str
        :param _IpAddress: IP地址
功能标志FunctionFlag=1时必输
        :type IpAddress: str
        :param _MacAddress: MAC地址
功能标志FunctionFlag=1时必输
        :type MacAddress: str
        :param _SignChannel: 签约渠道
1:  App
2:  平台H5网页
3：公众号
4：小程序
功能标志FunctionFlag=1时必输
        :type SignChannel: int
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._FunctionFlag = None
        self._MidasEnvironment = None
        self._OperationClickTime = None
        self._IpAddress = None
        self._MacAddress = None
        self._SignChannel = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def OperationClickTime(self):
        return self._OperationClickTime

    @OperationClickTime.setter
    def OperationClickTime(self, OperationClickTime):
        self._OperationClickTime = OperationClickTime

    @property
    def IpAddress(self):
        return self._IpAddress

    @IpAddress.setter
    def IpAddress(self, IpAddress):
        self._IpAddress = IpAddress

    @property
    def MacAddress(self):
        return self._MacAddress

    @MacAddress.setter
    def MacAddress(self, MacAddress):
        self._MacAddress = MacAddress

    @property
    def SignChannel(self):
        return self._SignChannel

    @SignChannel.setter
    def SignChannel(self, SignChannel):
        self._SignChannel = SignChannel


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._FunctionFlag = params.get("FunctionFlag")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._OperationClickTime = params.get("OperationClickTime")
        self._IpAddress = params.get("IpAddress")
        self._MacAddress = params.get("MacAddress")
        self._SignChannel = params.get("SignChannel")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RegisterBehaviorResponse(AbstractModel):
    """RegisterBehavior返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ReplenishSuccessFlag: 补录是否成功标志
功能标志为2时存在。
S：成功
F：失败
注意：此字段可能返回 null，表示取不到有效值。
        :type ReplenishSuccessFlag: str
        :param _RegisterInfo: 签约信息
注意：此字段可能返回 null，表示取不到有效值。
        :type RegisterInfo: :class:`tencentcloud.cpdp.v20190820.models.RegisterInfo`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ReplenishSuccessFlag = None
        self._RegisterInfo = None
        self._RequestId = None

    @property
    def ReplenishSuccessFlag(self):
        return self._ReplenishSuccessFlag

    @ReplenishSuccessFlag.setter
    def ReplenishSuccessFlag(self, ReplenishSuccessFlag):
        self._ReplenishSuccessFlag = ReplenishSuccessFlag

    @property
    def RegisterInfo(self):
        return self._RegisterInfo

    @RegisterInfo.setter
    def RegisterInfo(self, RegisterInfo):
        self._RegisterInfo = RegisterInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ReplenishSuccessFlag = params.get("ReplenishSuccessFlag")
        if params.get("RegisterInfo") is not None:
            self._RegisterInfo = RegisterInfo()
            self._RegisterInfo._deserialize(params.get("RegisterInfo"))
        self._RequestId = params.get("RequestId")


class RegisterBillRequest(AbstractModel):
    """RegisterBill请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型此接口固定填：RegBillSupportWithdrawReq
        :type RequestType: str
        :param _MerchantCode: 商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OrderId: 交易订单号
        :type OrderId: str
        :param _BankAccountNo: 父账户账号，资金汇总账号
        :type BankAccountNo: str
        :param _PlatformShortNo: 平台短号(银行分配)
        :type PlatformShortNo: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _TransSeqNo: 交易流水号
        :type TransSeqNo: str
        :param _TranFee: 暂未使用，默认传0.0
        :type TranFee: str
        :param _OrderAmt: 挂账金额，以元为单位
        :type OrderAmt: str
        :param _BankSubAccountNo: 子账户账号
        :type BankSubAccountNo: str
        :param _TranNetMemberCode: 交易网会员代码
        :type TranNetMemberCode: str
        :param _TranType: 0,登记挂账，1，撤销挂账
        :type TranType: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        :param _Remark: 备注
        :type Remark: str
        :param _MidasEnvironment: Midas环境参数
        :type MidasEnvironment: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OrderId = None
        self._BankAccountNo = None
        self._PlatformShortNo = None
        self._MidasSecretId = None
        self._MidasAppId = None
        self._MidasSignature = None
        self._TransSeqNo = None
        self._TranFee = None
        self._OrderAmt = None
        self._BankSubAccountNo = None
        self._TranNetMemberCode = None
        self._TranType = None
        self._ReservedMessage = None
        self._Remark = None
        self._MidasEnvironment = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def BankAccountNo(self):
        return self._BankAccountNo

    @BankAccountNo.setter
    def BankAccountNo(self, BankAccountNo):
        self._BankAccountNo = BankAccountNo

    @property
    def PlatformShortNo(self):
        return self._PlatformShortNo

    @PlatformShortNo.setter
    def PlatformShortNo(self, PlatformShortNo):
        self._PlatformShortNo = PlatformShortNo

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def TransSeqNo(self):
        return self._TransSeqNo

    @TransSeqNo.setter
    def TransSeqNo(self, TransSeqNo):
        self._TransSeqNo = TransSeqNo

    @property
    def TranFee(self):
        return self._TranFee

    @TranFee.setter
    def TranFee(self, TranFee):
        self._TranFee = TranFee

    @property
    def OrderAmt(self):
        return self._OrderAmt

    @OrderAmt.setter
    def OrderAmt(self, OrderAmt):
        self._OrderAmt = OrderAmt

    @property
    def BankSubAccountNo(self):
        return self._BankSubAccountNo

    @BankSubAccountNo.setter
    def BankSubAccountNo(self, BankSubAccountNo):
        self._BankSubAccountNo = BankSubAccountNo

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def TranType(self):
        return self._TranType

    @TranType.setter
    def TranType(self, TranType):
        self._TranType = TranType

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OrderId = params.get("OrderId")
        self._BankAccountNo = params.get("BankAccountNo")
        self._PlatformShortNo = params.get("PlatformShortNo")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSignature = params.get("MidasSignature")
        self._TransSeqNo = params.get("TransSeqNo")
        self._TranFee = params.get("TranFee")
        self._OrderAmt = params.get("OrderAmt")
        self._BankSubAccountNo = params.get("BankSubAccountNo")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._TranType = params.get("TranType")
        self._ReservedMessage = params.get("ReservedMessage")
        self._Remark = params.get("Remark")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RegisterBillResponse(AbstractModel):
    """RegisterBill返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FrontSeqNo: 银行流水号
        :type FrontSeqNo: str
        :param _ReservedMessage: 保留字段
        :type ReservedMessage: str
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FrontSeqNo = None
        self._ReservedMessage = None
        self._RequestType = None
        self._RequestId = None

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMessage = params.get("ReservedMessage")
        self._RequestType = params.get("RequestType")
        self._RequestId = params.get("RequestId")


class RegisterBillSupportWithdrawRequest(AbstractModel):
    """RegisterBillSupportWithdraw请求参数结构体

    """

    def __init__(self):
        r"""
        :param _TranNetMemberCode: STRING(32)，交易网会员代码
        :type TranNetMemberCode: str
        :param _OrderNo: STRING(50)，订单号
        :type OrderNo: str
        :param _SuspendAmt: STRING(20)，挂账金额（包含交易费用）
        :type SuspendAmt: str
        :param _TranFee: STRING(20)，交易费用（暂未使用，默认传0.0）
        :type TranFee: str
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _Remark: STRING(300)，备注
        :type Remark: str
        :param _ReservedMsgOne: STRING(300)，保留域1
        :type ReservedMsgOne: str
        :param _ReservedMsgTwo: STRING(300)，保留域2
        :type ReservedMsgTwo: str
        :param _ReservedMsgThree: STRING(300)，保留域3
        :type ReservedMsgThree: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._TranNetMemberCode = None
        self._OrderNo = None
        self._SuspendAmt = None
        self._TranFee = None
        self._MrchCode = None
        self._Remark = None
        self._ReservedMsgOne = None
        self._ReservedMsgTwo = None
        self._ReservedMsgThree = None
        self._Profile = None

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def OrderNo(self):
        return self._OrderNo

    @OrderNo.setter
    def OrderNo(self, OrderNo):
        self._OrderNo = OrderNo

    @property
    def SuspendAmt(self):
        return self._SuspendAmt

    @SuspendAmt.setter
    def SuspendAmt(self, SuspendAmt):
        self._SuspendAmt = SuspendAmt

    @property
    def TranFee(self):
        return self._TranFee

    @TranFee.setter
    def TranFee(self, TranFee):
        self._TranFee = TranFee

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReservedMsgOne(self):
        return self._ReservedMsgOne

    @ReservedMsgOne.setter
    def ReservedMsgOne(self, ReservedMsgOne):
        self._ReservedMsgOne = ReservedMsgOne

    @property
    def ReservedMsgTwo(self):
        return self._ReservedMsgTwo

    @ReservedMsgTwo.setter
    def ReservedMsgTwo(self, ReservedMsgTwo):
        self._ReservedMsgTwo = ReservedMsgTwo

    @property
    def ReservedMsgThree(self):
        return self._ReservedMsgThree

    @ReservedMsgThree.setter
    def ReservedMsgThree(self, ReservedMsgThree):
        self._ReservedMsgThree = ReservedMsgThree

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._OrderNo = params.get("OrderNo")
        self._SuspendAmt = params.get("SuspendAmt")
        self._TranFee = params.get("TranFee")
        self._MrchCode = params.get("MrchCode")
        self._Remark = params.get("Remark")
        self._ReservedMsgOne = params.get("ReservedMsgOne")
        self._ReservedMsgTwo = params.get("ReservedMsgTwo")
        self._ReservedMsgThree = params.get("ReservedMsgThree")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RegisterBillSupportWithdrawResponse(AbstractModel):
    """RegisterBillSupportWithdraw返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _CnsmrSeqNo: String(22)，交易流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type CnsmrSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._FrontSeqNo = None
        self._CnsmrSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class RegisterInfo(AbstractModel):
    """签约信息

    """

    def __init__(self):
        r"""
        :param _LegalPersonIdCode: 法人证件号码
注意：此字段可能返回 null，表示取不到有效值。
        :type LegalPersonIdCode: str
        :param _LegalPersonIdType: 法人证件类型
注意：此字段可能返回 null，表示取不到有效值。
        :type LegalPersonIdType: str
        :param _LegalPersonName: 法人名称
注意：此字段可能返回 null，表示取不到有效值。
        :type LegalPersonName: str
        :param _OrganizationCode: 公司证件号码
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationCode: str
        :param _OrganizationName: 公司名称
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationName: str
        :param _OrganizationType: 公司证件类型
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationType: str
        """
        self._LegalPersonIdCode = None
        self._LegalPersonIdType = None
        self._LegalPersonName = None
        self._OrganizationCode = None
        self._OrganizationName = None
        self._OrganizationType = None

    @property
    def LegalPersonIdCode(self):
        return self._LegalPersonIdCode

    @LegalPersonIdCode.setter
    def LegalPersonIdCode(self, LegalPersonIdCode):
        self._LegalPersonIdCode = LegalPersonIdCode

    @property
    def LegalPersonIdType(self):
        return self._LegalPersonIdType

    @LegalPersonIdType.setter
    def LegalPersonIdType(self, LegalPersonIdType):
        self._LegalPersonIdType = LegalPersonIdType

    @property
    def LegalPersonName(self):
        return self._LegalPersonName

    @LegalPersonName.setter
    def LegalPersonName(self, LegalPersonName):
        self._LegalPersonName = LegalPersonName

    @property
    def OrganizationCode(self):
        return self._OrganizationCode

    @OrganizationCode.setter
    def OrganizationCode(self, OrganizationCode):
        self._OrganizationCode = OrganizationCode

    @property
    def OrganizationName(self):
        return self._OrganizationName

    @OrganizationName.setter
    def OrganizationName(self, OrganizationName):
        self._OrganizationName = OrganizationName

    @property
    def OrganizationType(self):
        return self._OrganizationType

    @OrganizationType.setter
    def OrganizationType(self, OrganizationType):
        self._OrganizationType = OrganizationType


    def _deserialize(self, params):
        self._LegalPersonIdCode = params.get("LegalPersonIdCode")
        self._LegalPersonIdType = params.get("LegalPersonIdType")
        self._LegalPersonName = params.get("LegalPersonName")
        self._OrganizationCode = params.get("OrganizationCode")
        self._OrganizationName = params.get("OrganizationName")
        self._OrganizationType = params.get("OrganizationType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResponseQueryContract(AbstractModel):
    """签约数据

    """

    def __init__(self):
        r"""
        :param _ExternalReturnCode: 第三方渠道错误码
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnCode: str
        :param _ExternalReturnMessage: 第三方渠道错误信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnMessage: str
        :param _ExternalReturnData: 第三方渠道返回的原始数据
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        :param _ChannelMerchantId: 米大师内部商户号
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 米大师内部子商户号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubMerchantId: str
        :param _ChannelAppId: 米大师内部应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelAppId: str
        :param _ChannelSubAppId: 米大师内部子应用ID
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelSubAppId: str
        :param _ChannelName: 渠道名称
        :type ChannelName: str
        :param _ReturnContractInfo: 返回的合约信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ReturnContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ReturnContractInfo`
        :param _NotifyUrl: 签约通知地址
        :type NotifyUrl: str
        """
        self._ExternalReturnCode = None
        self._ExternalReturnMessage = None
        self._ExternalReturnData = None
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelAppId = None
        self._ChannelSubAppId = None
        self._ChannelName = None
        self._ReturnContractInfo = None
        self._NotifyUrl = None

    @property
    def ExternalReturnCode(self):
        return self._ExternalReturnCode

    @ExternalReturnCode.setter
    def ExternalReturnCode(self, ExternalReturnCode):
        self._ExternalReturnCode = ExternalReturnCode

    @property
    def ExternalReturnMessage(self):
        return self._ExternalReturnMessage

    @ExternalReturnMessage.setter
    def ExternalReturnMessage(self, ExternalReturnMessage):
        self._ExternalReturnMessage = ExternalReturnMessage

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelAppId(self):
        return self._ChannelAppId

    @ChannelAppId.setter
    def ChannelAppId(self, ChannelAppId):
        self._ChannelAppId = ChannelAppId

    @property
    def ChannelSubAppId(self):
        return self._ChannelSubAppId

    @ChannelSubAppId.setter
    def ChannelSubAppId(self, ChannelSubAppId):
        self._ChannelSubAppId = ChannelSubAppId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def ReturnContractInfo(self):
        return self._ReturnContractInfo

    @ReturnContractInfo.setter
    def ReturnContractInfo(self, ReturnContractInfo):
        self._ReturnContractInfo = ReturnContractInfo

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl


    def _deserialize(self, params):
        self._ExternalReturnCode = params.get("ExternalReturnCode")
        self._ExternalReturnMessage = params.get("ExternalReturnMessage")
        self._ExternalReturnData = params.get("ExternalReturnData")
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelAppId = params.get("ChannelAppId")
        self._ChannelSubAppId = params.get("ChannelSubAppId")
        self._ChannelName = params.get("ChannelName")
        if params.get("ReturnContractInfo") is not None:
            self._ReturnContractInfo = ReturnContractInfo()
            self._ReturnContractInfo._deserialize(params.get("ReturnContractInfo"))
        self._NotifyUrl = params.get("NotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ResponseTerminateContract(AbstractModel):
    """解约数据

    """

    def __init__(self):
        r"""
        :param _ExternalReturnCode: 第三方渠道错误码
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnCode: str
        :param _ExternalReturnMessage: 第三方渠道错误信息
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnMessage: str
        :param _ExternalReturnData: 第三方渠道返回的原始数据
注意：此字段可能返回 null，表示取不到有效值。
        :type ExternalReturnData: str
        """
        self._ExternalReturnCode = None
        self._ExternalReturnMessage = None
        self._ExternalReturnData = None

    @property
    def ExternalReturnCode(self):
        return self._ExternalReturnCode

    @ExternalReturnCode.setter
    def ExternalReturnCode(self, ExternalReturnCode):
        self._ExternalReturnCode = ExternalReturnCode

    @property
    def ExternalReturnMessage(self):
        return self._ExternalReturnMessage

    @ExternalReturnMessage.setter
    def ExternalReturnMessage(self, ExternalReturnMessage):
        self._ExternalReturnMessage = ExternalReturnMessage

    @property
    def ExternalReturnData(self):
        return self._ExternalReturnData

    @ExternalReturnData.setter
    def ExternalReturnData(self, ExternalReturnData):
        self._ExternalReturnData = ExternalReturnData


    def _deserialize(self, params):
        self._ExternalReturnCode = params.get("ExternalReturnCode")
        self._ExternalReturnMessage = params.get("ExternalReturnMessage")
        self._ExternalReturnData = params.get("ExternalReturnData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReturnContractInfo(AbstractModel):
    """返回的合约信息

    """

    def __init__(self):
        r"""
        :param _ContractInfo: 合约信息
        :type ContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ContractInfo`
        :param _ChannelReturnContractInfo: 米大师内部生成的合约信息
        :type ChannelReturnContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ChannelReturnContractInfo`
        :param _ExternalReturnContractInfo: 第三方渠道合约信息
        :type ExternalReturnContractInfo: :class:`tencentcloud.cpdp.v20190820.models.ExternalReturnContractInfo`
        """
        self._ContractInfo = None
        self._ChannelReturnContractInfo = None
        self._ExternalReturnContractInfo = None

    @property
    def ContractInfo(self):
        return self._ContractInfo

    @ContractInfo.setter
    def ContractInfo(self, ContractInfo):
        self._ContractInfo = ContractInfo

    @property
    def ChannelReturnContractInfo(self):
        return self._ChannelReturnContractInfo

    @ChannelReturnContractInfo.setter
    def ChannelReturnContractInfo(self, ChannelReturnContractInfo):
        self._ChannelReturnContractInfo = ChannelReturnContractInfo

    @property
    def ExternalReturnContractInfo(self):
        return self._ExternalReturnContractInfo

    @ExternalReturnContractInfo.setter
    def ExternalReturnContractInfo(self, ExternalReturnContractInfo):
        self._ExternalReturnContractInfo = ExternalReturnContractInfo


    def _deserialize(self, params):
        if params.get("ContractInfo") is not None:
            self._ContractInfo = ContractInfo()
            self._ContractInfo._deserialize(params.get("ContractInfo"))
        if params.get("ChannelReturnContractInfo") is not None:
            self._ChannelReturnContractInfo = ChannelReturnContractInfo()
            self._ChannelReturnContractInfo._deserialize(params.get("ChannelReturnContractInfo"))
        if params.get("ExternalReturnContractInfo") is not None:
            self._ExternalReturnContractInfo = ExternalReturnContractInfo()
            self._ExternalReturnContractInfo._deserialize(params.get("ExternalReturnContractInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReviseMbrPropertyRequest(AbstractModel):
    """ReviseMbrProperty请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _SubAcctNo: STRING(50)，见证子账户的账号
        :type SubAcctNo: str
        :param _MemberProperty: STRING(10)，会员属性（00-普通子账号; SH-商户子账户。暂时只支持00-普通子账号改为SH-商户子账户）
        :type MemberProperty: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._SubAcctNo = None
        self._MemberProperty = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def MemberProperty(self):
        return self._MemberProperty

    @MemberProperty.setter
    def MemberProperty(self, MemberProperty):
        self._MemberProperty = MemberProperty

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._SubAcctNo = params.get("SubAcctNo")
        self._MemberProperty = params.get("MemberProperty")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ReviseMbrPropertyResponse(AbstractModel):
    """ReviseMbrProperty返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class RevokeMemberRechargeThirdPayRequest(AbstractModel):
    """RevokeMemberRechargeThirdPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OldFillFrontSeqNo: STRING(52)，原充值的前置流水号
        :type OldFillFrontSeqNo: str
        :param _OldFillPayChannelType: STRING(20)，原充值的支付渠道类型
        :type OldFillPayChannelType: str
        :param _OldPayChannelTranSeqNo: STRING(52)，原充值的支付渠道交易流水号
        :type OldPayChannelTranSeqNo: str
        :param _OldFillEjzbOrderNo: STRING(52)，原充值的电商见证宝订单号
        :type OldFillEjzbOrderNo: str
        :param _ApplyCancelMemberAmt: STRING(20)，申请撤销的会员金额
        :type ApplyCancelMemberAmt: str
        :param _ApplyCancelCommission: STRING(20)，申请撤销的手续费金额
        :type ApplyCancelCommission: str
        :param _MrchCode: String(22)，商户号
        :type MrchCode: str
        :param _Remark: STRING(300)，备注
        :type Remark: str
        :param _ReservedMsgOne: STRING(300)，保留域1
        :type ReservedMsgOne: str
        :param _ReservedMsgTwo: STRING(300)，保留域2
        :type ReservedMsgTwo: str
        :param _ReservedMsgThree: STRING(300)，保留域3
        :type ReservedMsgThree: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._OldFillFrontSeqNo = None
        self._OldFillPayChannelType = None
        self._OldPayChannelTranSeqNo = None
        self._OldFillEjzbOrderNo = None
        self._ApplyCancelMemberAmt = None
        self._ApplyCancelCommission = None
        self._MrchCode = None
        self._Remark = None
        self._ReservedMsgOne = None
        self._ReservedMsgTwo = None
        self._ReservedMsgThree = None
        self._Profile = None

    @property
    def OldFillFrontSeqNo(self):
        return self._OldFillFrontSeqNo

    @OldFillFrontSeqNo.setter
    def OldFillFrontSeqNo(self, OldFillFrontSeqNo):
        self._OldFillFrontSeqNo = OldFillFrontSeqNo

    @property
    def OldFillPayChannelType(self):
        return self._OldFillPayChannelType

    @OldFillPayChannelType.setter
    def OldFillPayChannelType(self, OldFillPayChannelType):
        self._OldFillPayChannelType = OldFillPayChannelType

    @property
    def OldPayChannelTranSeqNo(self):
        return self._OldPayChannelTranSeqNo

    @OldPayChannelTranSeqNo.setter
    def OldPayChannelTranSeqNo(self, OldPayChannelTranSeqNo):
        self._OldPayChannelTranSeqNo = OldPayChannelTranSeqNo

    @property
    def OldFillEjzbOrderNo(self):
        return self._OldFillEjzbOrderNo

    @OldFillEjzbOrderNo.setter
    def OldFillEjzbOrderNo(self, OldFillEjzbOrderNo):
        self._OldFillEjzbOrderNo = OldFillEjzbOrderNo

    @property
    def ApplyCancelMemberAmt(self):
        return self._ApplyCancelMemberAmt

    @ApplyCancelMemberAmt.setter
    def ApplyCancelMemberAmt(self, ApplyCancelMemberAmt):
        self._ApplyCancelMemberAmt = ApplyCancelMemberAmt

    @property
    def ApplyCancelCommission(self):
        return self._ApplyCancelCommission

    @ApplyCancelCommission.setter
    def ApplyCancelCommission(self, ApplyCancelCommission):
        self._ApplyCancelCommission = ApplyCancelCommission

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReservedMsgOne(self):
        return self._ReservedMsgOne

    @ReservedMsgOne.setter
    def ReservedMsgOne(self, ReservedMsgOne):
        self._ReservedMsgOne = ReservedMsgOne

    @property
    def ReservedMsgTwo(self):
        return self._ReservedMsgTwo

    @ReservedMsgTwo.setter
    def ReservedMsgTwo(self, ReservedMsgTwo):
        self._ReservedMsgTwo = ReservedMsgTwo

    @property
    def ReservedMsgThree(self):
        return self._ReservedMsgThree

    @ReservedMsgThree.setter
    def ReservedMsgThree(self, ReservedMsgThree):
        self._ReservedMsgThree = ReservedMsgThree

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OldFillFrontSeqNo = params.get("OldFillFrontSeqNo")
        self._OldFillPayChannelType = params.get("OldFillPayChannelType")
        self._OldPayChannelTranSeqNo = params.get("OldPayChannelTranSeqNo")
        self._OldFillEjzbOrderNo = params.get("OldFillEjzbOrderNo")
        self._ApplyCancelMemberAmt = params.get("ApplyCancelMemberAmt")
        self._ApplyCancelCommission = params.get("ApplyCancelCommission")
        self._MrchCode = params.get("MrchCode")
        self._Remark = params.get("Remark")
        self._ReservedMsgOne = params.get("ReservedMsgOne")
        self._ReservedMsgTwo = params.get("ReservedMsgTwo")
        self._ReservedMsgThree = params.get("ReservedMsgThree")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RevokeMemberRechargeThirdPayResponse(AbstractModel):
    """RevokeMemberRechargeThirdPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，前置流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _ReservedMsgOne: STRING(300)，保留域1
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsgOne: str
        :param _ReservedMsgTwo: STRING(300)，保留域2
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsgTwo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._ReservedMsgOne = None
        self._ReservedMsgTwo = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMsgOne(self):
        return self._ReservedMsgOne

    @ReservedMsgOne.setter
    def ReservedMsgOne(self, ReservedMsgOne):
        self._ReservedMsgOne = ReservedMsgOne

    @property
    def ReservedMsgTwo(self):
        return self._ReservedMsgTwo

    @ReservedMsgTwo.setter
    def ReservedMsgTwo(self, ReservedMsgTwo):
        self._ReservedMsgTwo = ReservedMsgTwo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMsgOne = params.get("ReservedMsgOne")
        self._ReservedMsgTwo = params.get("ReservedMsgTwo")
        self._RequestId = params.get("RequestId")


class RevokeRechargeByThirdPayRequest(AbstractModel):
    """RevokeRechargeByThirdPay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型此接口固定填：RevokeMemberRechargeThirdPayReq
        :type RequestType: str
        :param _MerchantCode: 商户号
        :type MerchantCode: str
        :param _PayChannel: 支付渠道
        :type PayChannel: str
        :param _PayChannelSubId: 子渠道
        :type PayChannelSubId: int
        :param _OrderId: 原始充值交易订单号
        :type OrderId: str
        :param _BankAccountNumber: 父账户账号，资金汇总账号
        :type BankAccountNumber: str
        :param _PlatformShortNumber: 平台短号(银行分配)
        :type PlatformShortNumber: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _MidasSignature: 计费签名
        :type MidasSignature: str
        :param _TransSequenceNumber: 交易流水号
        :type TransSequenceNumber: str
        :param _TransFee: 申请撤销的手续费金额,以元为单位
        :type TransFee: str
        :param _ThirdPayChannel: 第三方支付渠道类型 0001-微信 0002-支付宝 0003-京东支付
        :type ThirdPayChannel: str
        :param _ThirdPayChannelOrderId: 第三方渠道订单号或流水号
        :type ThirdPayChannelOrderId: str
        :param _OldFrontSequenceNumber: 充值接口银行返回的流水号(FrontSeqNo)
        :type OldFrontSequenceNumber: str
        :param _CurrencyAmount: 申请撤销的金额
        :type CurrencyAmount: str
        :param _CurrencyUnit: 单位，1：元，2：角，3：分 目前固定填1
        :type CurrencyUnit: str
        :param _CurrencyType: 币种 目前固定填RMB
        :type CurrencyType: str
        :param _MidasEnvironment: Midas环境标识
        :type MidasEnvironment: str
        :param _ReservedMessage: 保留域
        :type ReservedMessage: str
        :param _Remark: 备注
        :type Remark: str
        """
        self._RequestType = None
        self._MerchantCode = None
        self._PayChannel = None
        self._PayChannelSubId = None
        self._OrderId = None
        self._BankAccountNumber = None
        self._PlatformShortNumber = None
        self._MidasSecretId = None
        self._MidasAppId = None
        self._MidasSignature = None
        self._TransSequenceNumber = None
        self._TransFee = None
        self._ThirdPayChannel = None
        self._ThirdPayChannelOrderId = None
        self._OldFrontSequenceNumber = None
        self._CurrencyAmount = None
        self._CurrencyUnit = None
        self._CurrencyType = None
        self._MidasEnvironment = None
        self._ReservedMessage = None
        self._Remark = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def MerchantCode(self):
        return self._MerchantCode

    @MerchantCode.setter
    def MerchantCode(self, MerchantCode):
        self._MerchantCode = MerchantCode

    @property
    def PayChannel(self):
        return self._PayChannel

    @PayChannel.setter
    def PayChannel(self, PayChannel):
        self._PayChannel = PayChannel

    @property
    def PayChannelSubId(self):
        return self._PayChannelSubId

    @PayChannelSubId.setter
    def PayChannelSubId(self, PayChannelSubId):
        self._PayChannelSubId = PayChannelSubId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def BankAccountNumber(self):
        return self._BankAccountNumber

    @BankAccountNumber.setter
    def BankAccountNumber(self, BankAccountNumber):
        self._BankAccountNumber = BankAccountNumber

    @property
    def PlatformShortNumber(self):
        return self._PlatformShortNumber

    @PlatformShortNumber.setter
    def PlatformShortNumber(self, PlatformShortNumber):
        self._PlatformShortNumber = PlatformShortNumber

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def TransSequenceNumber(self):
        return self._TransSequenceNumber

    @TransSequenceNumber.setter
    def TransSequenceNumber(self, TransSequenceNumber):
        self._TransSequenceNumber = TransSequenceNumber

    @property
    def TransFee(self):
        return self._TransFee

    @TransFee.setter
    def TransFee(self, TransFee):
        self._TransFee = TransFee

    @property
    def ThirdPayChannel(self):
        return self._ThirdPayChannel

    @ThirdPayChannel.setter
    def ThirdPayChannel(self, ThirdPayChannel):
        self._ThirdPayChannel = ThirdPayChannel

    @property
    def ThirdPayChannelOrderId(self):
        return self._ThirdPayChannelOrderId

    @ThirdPayChannelOrderId.setter
    def ThirdPayChannelOrderId(self, ThirdPayChannelOrderId):
        self._ThirdPayChannelOrderId = ThirdPayChannelOrderId

    @property
    def OldFrontSequenceNumber(self):
        return self._OldFrontSequenceNumber

    @OldFrontSequenceNumber.setter
    def OldFrontSequenceNumber(self, OldFrontSequenceNumber):
        self._OldFrontSequenceNumber = OldFrontSequenceNumber

    @property
    def CurrencyAmount(self):
        return self._CurrencyAmount

    @CurrencyAmount.setter
    def CurrencyAmount(self, CurrencyAmount):
        self._CurrencyAmount = CurrencyAmount

    @property
    def CurrencyUnit(self):
        return self._CurrencyUnit

    @CurrencyUnit.setter
    def CurrencyUnit(self, CurrencyUnit):
        self._CurrencyUnit = CurrencyUnit

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._MerchantCode = params.get("MerchantCode")
        self._PayChannel = params.get("PayChannel")
        self._PayChannelSubId = params.get("PayChannelSubId")
        self._OrderId = params.get("OrderId")
        self._BankAccountNumber = params.get("BankAccountNumber")
        self._PlatformShortNumber = params.get("PlatformShortNumber")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasAppId = params.get("MidasAppId")
        self._MidasSignature = params.get("MidasSignature")
        self._TransSequenceNumber = params.get("TransSequenceNumber")
        self._TransFee = params.get("TransFee")
        self._ThirdPayChannel = params.get("ThirdPayChannel")
        self._ThirdPayChannelOrderId = params.get("ThirdPayChannelOrderId")
        self._OldFrontSequenceNumber = params.get("OldFrontSequenceNumber")
        self._CurrencyAmount = params.get("CurrencyAmount")
        self._CurrencyUnit = params.get("CurrencyUnit")
        self._CurrencyType = params.get("CurrencyType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._ReservedMessage = params.get("ReservedMessage")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class RevokeRechargeByThirdPayResponse(AbstractModel):
    """RevokeRechargeByThirdPay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestType: 请求类型
        :type RequestType: str
        :param _ReservedMessage: 保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMessage: str
        :param _FrontSequenceNumber: 银行流水号
        :type FrontSequenceNumber: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestType = None
        self._ReservedMessage = None
        self._FrontSequenceNumber = None
        self._RequestId = None

    @property
    def RequestType(self):
        return self._RequestType

    @RequestType.setter
    def RequestType(self, RequestType):
        self._RequestType = RequestType

    @property
    def ReservedMessage(self):
        return self._ReservedMessage

    @ReservedMessage.setter
    def ReservedMessage(self, ReservedMessage):
        self._ReservedMessage = ReservedMessage

    @property
    def FrontSequenceNumber(self):
        return self._FrontSequenceNumber

    @FrontSequenceNumber.setter
    def FrontSequenceNumber(self, FrontSequenceNumber):
        self._FrontSequenceNumber = FrontSequenceNumber

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestType = params.get("RequestType")
        self._ReservedMessage = params.get("ReservedMessage")
        self._FrontSequenceNumber = params.get("FrontSequenceNumber")
        self._RequestId = params.get("RequestId")


class SceneInfo(AbstractModel):
    """场景信息

    """

    def __init__(self):
        r"""
        :param _LocaleCode: 语言代码
注意：此字段可能返回 null，表示取不到有效值。
        :type LocaleCode: str
        :param _RegionCode: 地区代码
注意：此字段可能返回 null，表示取不到有效值。
        :type RegionCode: str
        :param _UserClientIp: 用户IP
注意：此字段可能返回 null，表示取不到有效值。
        :type UserClientIp: str
        """
        self._LocaleCode = None
        self._RegionCode = None
        self._UserClientIp = None

    @property
    def LocaleCode(self):
        return self._LocaleCode

    @LocaleCode.setter
    def LocaleCode(self, LocaleCode):
        self._LocaleCode = LocaleCode

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def UserClientIp(self):
        return self._UserClientIp

    @UserClientIp.setter
    def UserClientIp(self, UserClientIp):
        self._UserClientIp = UserClientIp


    def _deserialize(self, params):
        self._LocaleCode = params.get("LocaleCode")
        self._RegionCode = params.get("RegionCode")
        self._UserClientIp = params.get("UserClientIp")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ServiceProviderAccountBalanceResult(AbstractModel):
    """服务商账户余额返回信息

    """

    def __init__(self):
        r"""
        :param _Balance: 服务商账户余额
        :type Balance: str
        """
        self._Balance = None

    @property
    def Balance(self):
        return self._Balance

    @Balance.setter
    def Balance(self, Balance):
        self._Balance = Balance


    def _deserialize(self, params):
        self._Balance = params.get("Balance")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SettleInfo(AbstractModel):
    """商户结算信息

    """

    def __init__(self):
        r"""
        :param _SettleAccountType: 结算账户类型 
PRIVATE：对私 
BUSINESS：对公
HELIPAY渠道必传
        :type SettleAccountType: str
        :param _SettleAccountNumber: 结算账号
HELIPAY渠道必传
        :type SettleAccountNumber: str
        :param _SettleAccountName: 结算账户名称
HELIPAY渠道必传
        :type SettleAccountName: str
        :param _BankBranchId: 支行号
HELIPAY渠道必传
        :type BankBranchId: str
        :param _BankBranchName: 支行名称
        :type BankBranchName: str
        :param _SettleMode: 结算方式 
AUTO：自动结算 
SELF：自主结算
HELIPAY渠道必传
        :type SettleMode: str
        :param _SettlePeriod: 结算周期 
T1：工作日隔天结算 
D1：自然日隔天结算 
D0：当日结算
HELIPAY渠道必传
        :type SettlePeriod: str
        """
        self._SettleAccountType = None
        self._SettleAccountNumber = None
        self._SettleAccountName = None
        self._BankBranchId = None
        self._BankBranchName = None
        self._SettleMode = None
        self._SettlePeriod = None

    @property
    def SettleAccountType(self):
        return self._SettleAccountType

    @SettleAccountType.setter
    def SettleAccountType(self, SettleAccountType):
        self._SettleAccountType = SettleAccountType

    @property
    def SettleAccountNumber(self):
        return self._SettleAccountNumber

    @SettleAccountNumber.setter
    def SettleAccountNumber(self, SettleAccountNumber):
        self._SettleAccountNumber = SettleAccountNumber

    @property
    def SettleAccountName(self):
        return self._SettleAccountName

    @SettleAccountName.setter
    def SettleAccountName(self, SettleAccountName):
        self._SettleAccountName = SettleAccountName

    @property
    def BankBranchId(self):
        return self._BankBranchId

    @BankBranchId.setter
    def BankBranchId(self, BankBranchId):
        self._BankBranchId = BankBranchId

    @property
    def BankBranchName(self):
        return self._BankBranchName

    @BankBranchName.setter
    def BankBranchName(self, BankBranchName):
        self._BankBranchName = BankBranchName

    @property
    def SettleMode(self):
        return self._SettleMode

    @SettleMode.setter
    def SettleMode(self, SettleMode):
        self._SettleMode = SettleMode

    @property
    def SettlePeriod(self):
        return self._SettlePeriod

    @SettlePeriod.setter
    def SettlePeriod(self, SettlePeriod):
        self._SettlePeriod = SettlePeriod


    def _deserialize(self, params):
        self._SettleAccountType = params.get("SettleAccountType")
        self._SettleAccountNumber = params.get("SettleAccountNumber")
        self._SettleAccountName = params.get("SettleAccountName")
        self._BankBranchId = params.get("BankBranchId")
        self._BankBranchName = params.get("BankBranchName")
        self._SettleMode = params.get("SettleMode")
        self._SettlePeriod = params.get("SettlePeriod")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SettlementOrderResult(AbstractModel):
    """结算订单结果

    """

    def __init__(self):
        r"""
        :param _IncomeType: 收入类型
LABOR:劳务所得
OCCASION:偶然所得
        :type IncomeType: str
        :param _AmountBeforeTax: 税前金额
        :type AmountBeforeTax: str
        :param _AmountAfterTax: 税后金额
注意：此字段可能返回 null，表示取不到有效值。
        :type AmountAfterTax: str
        :param _Tax: 税金
注意：此字段可能返回 null，表示取不到有效值。
        :type Tax: str
        :param _OutOrderId: 外部订单ID
        :type OutOrderId: str
        :param _OrderId: 订单ID
        :type OrderId: str
        :param _InitiateTime: 发起时间
        :type InitiateTime: str
        :param _FinishTime: 完成时间
注意：此字段可能返回 null，表示取不到有效值。
        :type FinishTime: str
        :param _Status: 状态
ACCEPTED:已受理
ACCOUNTED:已记账
SUCCEED:已成功
FAILED:已失败
        :type Status: str
        :param _StatusDesc: 状态描述
        :type StatusDesc: str
        :param _Remark: 备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _PayeeId: 收款用户ID
        :type PayeeId: str
        :param _OutUserId: 外部用户ID
        :type OutUserId: str
        :param _OperationType: 操作类型
        :type OperationType: str
        """
        self._IncomeType = None
        self._AmountBeforeTax = None
        self._AmountAfterTax = None
        self._Tax = None
        self._OutOrderId = None
        self._OrderId = None
        self._InitiateTime = None
        self._FinishTime = None
        self._Status = None
        self._StatusDesc = None
        self._Remark = None
        self._PayeeId = None
        self._OutUserId = None
        self._OperationType = None

    @property
    def IncomeType(self):
        return self._IncomeType

    @IncomeType.setter
    def IncomeType(self, IncomeType):
        self._IncomeType = IncomeType

    @property
    def AmountBeforeTax(self):
        return self._AmountBeforeTax

    @AmountBeforeTax.setter
    def AmountBeforeTax(self, AmountBeforeTax):
        self._AmountBeforeTax = AmountBeforeTax

    @property
    def AmountAfterTax(self):
        return self._AmountAfterTax

    @AmountAfterTax.setter
    def AmountAfterTax(self, AmountAfterTax):
        self._AmountAfterTax = AmountAfterTax

    @property
    def Tax(self):
        return self._Tax

    @Tax.setter
    def Tax(self, Tax):
        self._Tax = Tax

    @property
    def OutOrderId(self):
        return self._OutOrderId

    @OutOrderId.setter
    def OutOrderId(self, OutOrderId):
        self._OutOrderId = OutOrderId

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def InitiateTime(self):
        return self._InitiateTime

    @InitiateTime.setter
    def InitiateTime(self, InitiateTime):
        self._InitiateTime = InitiateTime

    @property
    def FinishTime(self):
        return self._FinishTime

    @FinishTime.setter
    def FinishTime(self, FinishTime):
        self._FinishTime = FinishTime

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def StatusDesc(self):
        return self._StatusDesc

    @StatusDesc.setter
    def StatusDesc(self, StatusDesc):
        self._StatusDesc = StatusDesc

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def OutUserId(self):
        return self._OutUserId

    @OutUserId.setter
    def OutUserId(self, OutUserId):
        self._OutUserId = OutUserId

    @property
    def OperationType(self):
        return self._OperationType

    @OperationType.setter
    def OperationType(self, OperationType):
        self._OperationType = OperationType


    def _deserialize(self, params):
        self._IncomeType = params.get("IncomeType")
        self._AmountBeforeTax = params.get("AmountBeforeTax")
        self._AmountAfterTax = params.get("AmountAfterTax")
        self._Tax = params.get("Tax")
        self._OutOrderId = params.get("OutOrderId")
        self._OrderId = params.get("OrderId")
        self._InitiateTime = params.get("InitiateTime")
        self._FinishTime = params.get("FinishTime")
        self._Status = params.get("Status")
        self._StatusDesc = params.get("StatusDesc")
        self._Remark = params.get("Remark")
        self._PayeeId = params.get("PayeeId")
        self._OutUserId = params.get("OutUserId")
        self._OperationType = params.get("OperationType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SettlementOrders(AbstractModel):
    """结算订单列表

    """

    def __init__(self):
        r"""
        :param _List: 列表
注意：此字段可能返回 null，表示取不到有效值。
        :type List: list of SettlementOrderResult
        :param _Count: 总数
注意：此字段可能返回 null，表示取不到有效值。
        :type Count: int
        """
        self._List = None
        self._Count = None

    @property
    def List(self):
        return self._List

    @List.setter
    def List(self, List):
        self._List = List

    @property
    def Count(self):
        return self._Count

    @Count.setter
    def Count(self, Count):
        self._Count = Count


    def _deserialize(self, params):
        if params.get("List") is not None:
            self._List = []
            for item in params.get("List"):
                obj = SettlementOrderResult()
                obj._deserialize(item)
                self._List.append(obj)
        self._Count = params.get("Count")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SupportBankInfo(AbstractModel):
    """支持的银行信息

    """

    def __init__(self):
        r"""
        :param _BankCode: 银行简称。
        :type BankCode: str
        :param _BankName: 银行名称。
        :type BankName: str
        :param _MaintainStatus: 状态。
__MAINTAINING__: 维护中
__WORKING__: 正常工作
注意：此字段可能返回 null，表示取不到有效值。
        :type MaintainStatus: str
        :param _BankNotice: 银行渠道维护公告。
注意：此字段可能返回 null，表示取不到有效值。
        :type BankNotice: str
        :param _BankId: 支持银行代码
注意：此字段可能返回 null，表示取不到有效值。
        :type BankId: str
        :param _CardType: 卡类型。
D：借记卡，C：信用卡，Z：借贷合一卡。
注意：此字段可能返回 null，表示取不到有效值。
        :type CardType: str
        """
        self._BankCode = None
        self._BankName = None
        self._MaintainStatus = None
        self._BankNotice = None
        self._BankId = None
        self._CardType = None

    @property
    def BankCode(self):
        return self._BankCode

    @BankCode.setter
    def BankCode(self, BankCode):
        self._BankCode = BankCode

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def MaintainStatus(self):
        return self._MaintainStatus

    @MaintainStatus.setter
    def MaintainStatus(self, MaintainStatus):
        self._MaintainStatus = MaintainStatus

    @property
    def BankNotice(self):
        return self._BankNotice

    @BankNotice.setter
    def BankNotice(self, BankNotice):
        self._BankNotice = BankNotice

    @property
    def BankId(self):
        return self._BankId

    @BankId.setter
    def BankId(self, BankId):
        self._BankId = BankId

    @property
    def CardType(self):
        return self._CardType

    @CardType.setter
    def CardType(self, CardType):
        self._CardType = CardType


    def _deserialize(self, params):
        self._BankCode = params.get("BankCode")
        self._BankName = params.get("BankName")
        self._MaintainStatus = params.get("MaintainStatus")
        self._BankNotice = params.get("BankNotice")
        self._BankId = params.get("BankId")
        self._CardType = params.get("CardType")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SyncContractDataRequest(AbstractModel):
    """SyncContractData请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _Channel: 签约使用的渠道
        :type Channel: str
        :param _OutContractCode: 业务签约合同协议号
        :type OutContractCode: str
        :param _ContractStatus: 签约状态，枚举值
CONTRACT_STATUS_INVALID=无效状态
CONTRACT_STATUS_SIGNED=已签约
CONTRACT_STATUS_TERMINATED=已解约
CONTRACT_STATUS_PENDING=签约进行中
        :type ContractStatus: str
        :param _ContractSyncInfo: 签约同步信息
        :type ContractSyncInfo: :class:`tencentcloud.cpdp.v20190820.models.ContractSyncInfo`
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _UserType: 用户类型，枚举值
USER_ID: 用户ID
ANONYMOUS: 匿名类型 USER_ID
默认值为 USER_ID
        :type UserType: str
        :param _SceneInfo: 场景信息
        :type SceneInfo: :class:`tencentcloud.cpdp.v20190820.models.SceneInfo`
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._Channel = None
        self._OutContractCode = None
        self._ContractStatus = None
        self._ContractSyncInfo = None
        self._MidasSignature = None
        self._MidasSecretId = None
        self._SubAppId = None
        self._UserType = None
        self._SceneInfo = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def ContractStatus(self):
        return self._ContractStatus

    @ContractStatus.setter
    def ContractStatus(self, ContractStatus):
        self._ContractStatus = ContractStatus

    @property
    def ContractSyncInfo(self):
        return self._ContractSyncInfo

    @ContractSyncInfo.setter
    def ContractSyncInfo(self, ContractSyncInfo):
        self._ContractSyncInfo = ContractSyncInfo

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def SceneInfo(self):
        return self._SceneInfo

    @SceneInfo.setter
    def SceneInfo(self, SceneInfo):
        self._SceneInfo = SceneInfo

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._Channel = params.get("Channel")
        self._OutContractCode = params.get("OutContractCode")
        self._ContractStatus = params.get("ContractStatus")
        if params.get("ContractSyncInfo") is not None:
            self._ContractSyncInfo = ContractSyncInfo()
            self._ContractSyncInfo._deserialize(params.get("ContractSyncInfo"))
        self._MidasSignature = params.get("MidasSignature")
        self._MidasSecretId = params.get("MidasSecretId")
        self._SubAppId = params.get("SubAppId")
        self._UserType = params.get("UserType")
        if params.get("SceneInfo") is not None:
            self._SceneInfo = SceneInfo()
            self._SceneInfo._deserialize(params.get("SceneInfo"))
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class SyncContractDataResponse(AbstractModel):
    """SyncContractData返回参数结构体

    """

    def __init__(self):
        r"""
        :param _Msg: 请求处理信息
        :type Msg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._Msg = None
        self._RequestId = None

    @property
    def Msg(self):
        return self._Msg

    @Msg.setter
    def Msg(self, Msg):
        self._Msg = Msg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._Msg = params.get("Msg")
        self._RequestId = params.get("RequestId")


class TerminateContractRequest(AbstractModel):
    """TerminateContract请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _Channel: 指定渠道：  wechat：微信支付  qqwallet：QQ钱包 
 bank：网银支付  只有一个渠道时需要指定
        :type Channel: str
        :param _TerminateMode: 枚举值：
CONTRACT_TERMINATION_MODE_BY_OUT_CONTRACT_CODE: 按OutContractCode+ContractSceneId解约
CONTRACT_TERMINATION_MODE_BY_CHANNEL_CONTRACT_CODE：按ChannelContractCode解约
        :type TerminateMode: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _OutContractCode: 业务签约合同协议号 当TerminateMode=CONTRACT_TERMINATION_MODE_BY_OUT_CONTRACT_CODE 时 必填
        :type OutContractCode: str
        :param _ContractSceneId: 签约场景ID，当 TerminateMode=CONTRACT_TERMINATION_MODE_BY_OUT_CONTRACT_CODE 时 必填，在米大师侧托管后生成
        :type ContractSceneId: str
        :param _ChannelContractCode: 米大师生成的协议号 当 TerminateMode=CONTRACT_TERMINATION_MODE_BY_CHANNEL_CONTRACT_CODE 时 必填
        :type ChannelContractCode: str
        :param _ExternalContractData: 第三方渠道合约数据，json字符串，与特定渠道有关
        :type ExternalContractData: str
        :param _TerminationReason: 终止合约原因
        :type TerminationReason: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _UserType: USER_ID: 用户ID
ANONYMOUS: 匿名类型 USER_ID
默认值为 USER_ID
        :type UserType: str
        :param _ContractMethod: 签约方式
        :type ContractMethod: str
        :param _MigrateMode: 签约代扣穿透查询存量数据迁移模式
        :type MigrateMode: str
        """
        self._MidasAppId = None
        self._UserId = None
        self._Channel = None
        self._TerminateMode = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._SubAppId = None
        self._OutContractCode = None
        self._ContractSceneId = None
        self._ChannelContractCode = None
        self._ExternalContractData = None
        self._TerminationReason = None
        self._MidasEnvironment = None
        self._UserType = None
        self._ContractMethod = None
        self._MigrateMode = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def TerminateMode(self):
        return self._TerminateMode

    @TerminateMode.setter
    def TerminateMode(self, TerminateMode):
        self._TerminateMode = TerminateMode

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def OutContractCode(self):
        return self._OutContractCode

    @OutContractCode.setter
    def OutContractCode(self, OutContractCode):
        self._OutContractCode = OutContractCode

    @property
    def ContractSceneId(self):
        return self._ContractSceneId

    @ContractSceneId.setter
    def ContractSceneId(self, ContractSceneId):
        self._ContractSceneId = ContractSceneId

    @property
    def ChannelContractCode(self):
        return self._ChannelContractCode

    @ChannelContractCode.setter
    def ChannelContractCode(self, ChannelContractCode):
        self._ChannelContractCode = ChannelContractCode

    @property
    def ExternalContractData(self):
        return self._ExternalContractData

    @ExternalContractData.setter
    def ExternalContractData(self, ExternalContractData):
        self._ExternalContractData = ExternalContractData

    @property
    def TerminationReason(self):
        return self._TerminationReason

    @TerminationReason.setter
    def TerminationReason(self, TerminationReason):
        self._TerminationReason = TerminationReason

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def UserType(self):
        return self._UserType

    @UserType.setter
    def UserType(self, UserType):
        self._UserType = UserType

    @property
    def ContractMethod(self):
        return self._ContractMethod

    @ContractMethod.setter
    def ContractMethod(self, ContractMethod):
        self._ContractMethod = ContractMethod

    @property
    def MigrateMode(self):
        return self._MigrateMode

    @MigrateMode.setter
    def MigrateMode(self, MigrateMode):
        self._MigrateMode = MigrateMode


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._Channel = params.get("Channel")
        self._TerminateMode = params.get("TerminateMode")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._SubAppId = params.get("SubAppId")
        self._OutContractCode = params.get("OutContractCode")
        self._ContractSceneId = params.get("ContractSceneId")
        self._ChannelContractCode = params.get("ChannelContractCode")
        self._ExternalContractData = params.get("ExternalContractData")
        self._TerminationReason = params.get("TerminationReason")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._UserType = params.get("UserType")
        self._ContractMethod = params.get("ContractMethod")
        self._MigrateMode = params.get("MigrateMode")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TerminateContractResponse(AbstractModel):
    """TerminateContract返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ContractTerminateData: 解约数据
        :type ContractTerminateData: :class:`tencentcloud.cpdp.v20190820.models.ResponseTerminateContract`
        :param _Msg: 请求处理信息
注意：此字段可能返回 null，表示取不到有效值。
        :type Msg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ContractTerminateData = None
        self._Msg = None
        self._RequestId = None

    @property
    def ContractTerminateData(self):
        return self._ContractTerminateData

    @ContractTerminateData.setter
    def ContractTerminateData(self, ContractTerminateData):
        self._ContractTerminateData = ContractTerminateData

    @property
    def Msg(self):
        return self._Msg

    @Msg.setter
    def Msg(self, Msg):
        self._Msg = Msg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        if params.get("ContractTerminateData") is not None:
            self._ContractTerminateData = ResponseTerminateContract()
            self._ContractTerminateData._deserialize(params.get("ContractTerminateData"))
        self._Msg = params.get("Msg")
        self._RequestId = params.get("RequestId")


class TranItem(AbstractModel):
    """交易信息

    """

    def __init__(self):
        r"""
        :param _FundSummaryAcctNo: STRING(50)，资金汇总账号
注意：此字段可能返回 null，表示取不到有效值。
        :type FundSummaryAcctNo: str
        :param _SubAcctNo: STRING(50)，见证子账户的账号
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctNo: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码
注意：此字段可能返回 null，表示取不到有效值。
        :type TranNetMemberCode: str
        :param _MemberName: STRING(150)，会员名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberName: str
        :param _MemberGlobalType: STRING(5)，会员证件类型（详情见“常见问题”）
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberGlobalType: str
        :param _MemberGlobalId: STRING(32)，会员证件号码
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberGlobalId: str
        :param _MemberAcctNo: STRING(50)，会员绑定账户的账号（提现的银行卡）
注意：此字段可能返回 null，表示取不到有效值。
        :type MemberAcctNo: str
        :param _BankType: STRING(10)，会员绑定账户的本他行类型（1: 本行; 2: 他行）
注意：此字段可能返回 null，表示取不到有效值。
        :type BankType: str
        :param _AcctOpenBranchName: STRING(150)，会员绑定账户的开户行名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AcctOpenBranchName: str
        :param _CnapsBranchId: STRING(20)，会员绑定账户的开户行的联行号
注意：此字段可能返回 null，表示取不到有效值。
        :type CnapsBranchId: str
        :param _EiconBankBranchId: STRING(20)，会员绑定账户的开户行的超级网银行号
注意：此字段可能返回 null，表示取不到有效值。
        :type EiconBankBranchId: str
        :param _Mobile: STRING(30)，会员的手机号
注意：此字段可能返回 null，表示取不到有效值。
        :type Mobile: str
        """
        self._FundSummaryAcctNo = None
        self._SubAcctNo = None
        self._TranNetMemberCode = None
        self._MemberName = None
        self._MemberGlobalType = None
        self._MemberGlobalId = None
        self._MemberAcctNo = None
        self._BankType = None
        self._AcctOpenBranchName = None
        self._CnapsBranchId = None
        self._EiconBankBranchId = None
        self._Mobile = None

    @property
    def FundSummaryAcctNo(self):
        return self._FundSummaryAcctNo

    @FundSummaryAcctNo.setter
    def FundSummaryAcctNo(self, FundSummaryAcctNo):
        self._FundSummaryAcctNo = FundSummaryAcctNo

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberName(self):
        return self._MemberName

    @MemberName.setter
    def MemberName(self, MemberName):
        self._MemberName = MemberName

    @property
    def MemberGlobalType(self):
        return self._MemberGlobalType

    @MemberGlobalType.setter
    def MemberGlobalType(self, MemberGlobalType):
        self._MemberGlobalType = MemberGlobalType

    @property
    def MemberGlobalId(self):
        return self._MemberGlobalId

    @MemberGlobalId.setter
    def MemberGlobalId(self, MemberGlobalId):
        self._MemberGlobalId = MemberGlobalId

    @property
    def MemberAcctNo(self):
        return self._MemberAcctNo

    @MemberAcctNo.setter
    def MemberAcctNo(self, MemberAcctNo):
        self._MemberAcctNo = MemberAcctNo

    @property
    def BankType(self):
        return self._BankType

    @BankType.setter
    def BankType(self, BankType):
        self._BankType = BankType

    @property
    def AcctOpenBranchName(self):
        return self._AcctOpenBranchName

    @AcctOpenBranchName.setter
    def AcctOpenBranchName(self, AcctOpenBranchName):
        self._AcctOpenBranchName = AcctOpenBranchName

    @property
    def CnapsBranchId(self):
        return self._CnapsBranchId

    @CnapsBranchId.setter
    def CnapsBranchId(self, CnapsBranchId):
        self._CnapsBranchId = CnapsBranchId

    @property
    def EiconBankBranchId(self):
        return self._EiconBankBranchId

    @EiconBankBranchId.setter
    def EiconBankBranchId(self, EiconBankBranchId):
        self._EiconBankBranchId = EiconBankBranchId

    @property
    def Mobile(self):
        return self._Mobile

    @Mobile.setter
    def Mobile(self, Mobile):
        self._Mobile = Mobile


    def _deserialize(self, params):
        self._FundSummaryAcctNo = params.get("FundSummaryAcctNo")
        self._SubAcctNo = params.get("SubAcctNo")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberName = params.get("MemberName")
        self._MemberGlobalType = params.get("MemberGlobalType")
        self._MemberGlobalId = params.get("MemberGlobalId")
        self._MemberAcctNo = params.get("MemberAcctNo")
        self._BankType = params.get("BankType")
        self._AcctOpenBranchName = params.get("AcctOpenBranchName")
        self._CnapsBranchId = params.get("CnapsBranchId")
        self._EiconBankBranchId = params.get("EiconBankBranchId")
        self._Mobile = params.get("Mobile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransactionItem(AbstractModel):
    """交易明细信息

    """

    def __init__(self):
        r"""
        :param _BookingFlag: STRING(2)，记账标志（1: 转出; 2: 转入）
注意：此字段可能返回 null，表示取不到有效值。
        :type BookingFlag: str
        :param _TranStatus: STRING(32)，交易状态（0: 成功）
注意：此字段可能返回 null，表示取不到有效值。
        :type TranStatus: str
        :param _TranAmt: STRING(20)，交易金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TranAmt: str
        :param _TranDate: STRING(8)，交易日期
注意：此字段可能返回 null，表示取不到有效值。
        :type TranDate: str
        :param _TranTime: STRING(20)，交易时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TranTime: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _BookingType: STRING(20)，记账类型（详情见“常见问题”）
注意：此字段可能返回 null，表示取不到有效值。
        :type BookingType: str
        :param _InSubAcctNo: STRING(50)，转入见证子账户的帐号
注意：此字段可能返回 null，表示取不到有效值。
        :type InSubAcctNo: str
        :param _OutSubAcctNo: STRING(50)，转出见证子账户的帐号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutSubAcctNo: str
        :param _Remark: STRING(300)，备注（返回交易订单号）
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._BookingFlag = None
        self._TranStatus = None
        self._TranAmt = None
        self._TranDate = None
        self._TranTime = None
        self._FrontSeqNo = None
        self._BookingType = None
        self._InSubAcctNo = None
        self._OutSubAcctNo = None
        self._Remark = None

    @property
    def BookingFlag(self):
        return self._BookingFlag

    @BookingFlag.setter
    def BookingFlag(self, BookingFlag):
        self._BookingFlag = BookingFlag

    @property
    def TranStatus(self):
        return self._TranStatus

    @TranStatus.setter
    def TranStatus(self, TranStatus):
        self._TranStatus = TranStatus

    @property
    def TranAmt(self):
        return self._TranAmt

    @TranAmt.setter
    def TranAmt(self, TranAmt):
        self._TranAmt = TranAmt

    @property
    def TranDate(self):
        return self._TranDate

    @TranDate.setter
    def TranDate(self, TranDate):
        self._TranDate = TranDate

    @property
    def TranTime(self):
        return self._TranTime

    @TranTime.setter
    def TranTime(self, TranTime):
        self._TranTime = TranTime

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def BookingType(self):
        return self._BookingType

    @BookingType.setter
    def BookingType(self, BookingType):
        self._BookingType = BookingType

    @property
    def InSubAcctNo(self):
        return self._InSubAcctNo

    @InSubAcctNo.setter
    def InSubAcctNo(self, InSubAcctNo):
        self._InSubAcctNo = InSubAcctNo

    @property
    def OutSubAcctNo(self):
        return self._OutSubAcctNo

    @OutSubAcctNo.setter
    def OutSubAcctNo(self, OutSubAcctNo):
        self._OutSubAcctNo = OutSubAcctNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._BookingFlag = params.get("BookingFlag")
        self._TranStatus = params.get("TranStatus")
        self._TranAmt = params.get("TranAmt")
        self._TranDate = params.get("TranDate")
        self._TranTime = params.get("TranTime")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._BookingType = params.get("BookingType")
        self._InSubAcctNo = params.get("InSubAcctNo")
        self._OutSubAcctNo = params.get("OutSubAcctNo")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferDetailRequest(AbstractModel):
    """批量转账明细实体

    """

    def __init__(self):
        r"""
        :param _MerchantDetailNo: 商家明细单号。
商户系统内部区分转账批次单下不同转账明细单的唯一标识，要求此参数只能由数字、大小写字母组成。
示例值：x23zy545Bd5436
        :type MerchantDetailNo: str
        :param _TransferAmount: 转账金额。
转账金额单位为分。
示例值：200000
        :type TransferAmount: int
        :param _TransferRemark: 转账备注。
单条转账备注（微信用户会收到该备注）。UTF8编码，最多32字符。
示例值：2020年4月报销
        :type TransferRemark: str
        :param _OpenId: 用户在直连商户下的唯一标识。
示例值：o-MYE42l80oelYMDE34nYD456Xoy
        :type OpenId: str
        :param _UserName: 收款用户姓名。
收款方姓名。
示例值：张三
        :type UserName: str
        """
        self._MerchantDetailNo = None
        self._TransferAmount = None
        self._TransferRemark = None
        self._OpenId = None
        self._UserName = None

    @property
    def MerchantDetailNo(self):
        return self._MerchantDetailNo

    @MerchantDetailNo.setter
    def MerchantDetailNo(self, MerchantDetailNo):
        self._MerchantDetailNo = MerchantDetailNo

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount

    @property
    def TransferRemark(self):
        return self._TransferRemark

    @TransferRemark.setter
    def TransferRemark(self, TransferRemark):
        self._TransferRemark = TransferRemark

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def UserName(self):
        return self._UserName

    @UserName.setter
    def UserName(self, UserName):
        self._UserName = UserName


    def _deserialize(self, params):
        self._MerchantDetailNo = params.get("MerchantDetailNo")
        self._TransferAmount = params.get("TransferAmount")
        self._TransferRemark = params.get("TransferRemark")
        self._OpenId = params.get("OpenId")
        self._UserName = params.get("UserName")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferDetailResponse(AbstractModel):
    """批量转账查询返回批次明细实体

    """

    def __init__(self):
        r"""
        :param _MerchantDetailNo: 商家明细单号。
商户系统内部的商家明细单号
示例值：plfk2020042013
        :type MerchantDetailNo: str
        :param _DetailId: 微信明细单号。
微信区分明细单返回的唯一标识。
示例值：1030000071100999991182020050700019480001
        :type DetailId: str
        :param _DetailStatus: 明细状态。
PROCESSING：转账中，正在处理，结果未明；
SUCCESS：转账成功；
FAIL：转账失败，需要确认失败原因以后，再决定是否重新发起地该笔明细的转账。
示例值：SUCCESS
        :type DetailStatus: str
        """
        self._MerchantDetailNo = None
        self._DetailId = None
        self._DetailStatus = None

    @property
    def MerchantDetailNo(self):
        return self._MerchantDetailNo

    @MerchantDetailNo.setter
    def MerchantDetailNo(self, MerchantDetailNo):
        self._MerchantDetailNo = MerchantDetailNo

    @property
    def DetailId(self):
        return self._DetailId

    @DetailId.setter
    def DetailId(self, DetailId):
        self._DetailId = DetailId

    @property
    def DetailStatus(self):
        return self._DetailStatus

    @DetailStatus.setter
    def DetailStatus(self, DetailStatus):
        self._DetailStatus = DetailStatus


    def _deserialize(self, params):
        self._MerchantDetailNo = params.get("MerchantDetailNo")
        self._DetailId = params.get("DetailId")
        self._DetailStatus = params.get("DetailStatus")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferItem(AbstractModel):
    """转账充值明细信息

    """

    def __init__(self):
        r"""
        :param _InAcctType: STRING(10)，入账类型（02: 会员充值; 03: 资金挂账）
注意：此字段可能返回 null，表示取不到有效值。
        :type InAcctType: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码
注意：此字段可能返回 null，表示取不到有效值。
        :type TranNetMemberCode: str
        :param _SubAcctNo: STRING(50)，见证子帐户的帐号
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctNo: str
        :param _TranAmt: STRING(20)，入金金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TranAmt: str
        :param _InAcctNo: STRING(50)，入金账号
注意：此字段可能返回 null，表示取不到有效值。
        :type InAcctNo: str
        :param _InAcctName: STRING(150)，入金账户名称
注意：此字段可能返回 null，表示取不到有效值。
        :type InAcctName: str
        :param _Ccy: STRING(3)，币种
注意：此字段可能返回 null，表示取不到有效值。
        :type Ccy: str
        :param _AccountingDate: STRING(8)，会计日期（即银行主机记账日期）
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountingDate: str
        :param _BankName: STRING(150)，银行名称（付款账户银行名称）
注意：此字段可能返回 null，表示取不到有效值。
        :type BankName: str
        :param _Remark: STRING(300)，转账备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        """
        self._InAcctType = None
        self._TranNetMemberCode = None
        self._SubAcctNo = None
        self._TranAmt = None
        self._InAcctNo = None
        self._InAcctName = None
        self._Ccy = None
        self._AccountingDate = None
        self._BankName = None
        self._Remark = None
        self._FrontSeqNo = None

    @property
    def InAcctType(self):
        return self._InAcctType

    @InAcctType.setter
    def InAcctType(self, InAcctType):
        self._InAcctType = InAcctType

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def TranAmt(self):
        return self._TranAmt

    @TranAmt.setter
    def TranAmt(self, TranAmt):
        self._TranAmt = TranAmt

    @property
    def InAcctNo(self):
        return self._InAcctNo

    @InAcctNo.setter
    def InAcctNo(self, InAcctNo):
        self._InAcctNo = InAcctNo

    @property
    def InAcctName(self):
        return self._InAcctName

    @InAcctName.setter
    def InAcctName(self, InAcctName):
        self._InAcctName = InAcctName

    @property
    def Ccy(self):
        return self._Ccy

    @Ccy.setter
    def Ccy(self, Ccy):
        self._Ccy = Ccy

    @property
    def AccountingDate(self):
        return self._AccountingDate

    @AccountingDate.setter
    def AccountingDate(self, AccountingDate):
        self._AccountingDate = AccountingDate

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo


    def _deserialize(self, params):
        self._InAcctType = params.get("InAcctType")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._SubAcctNo = params.get("SubAcctNo")
        self._TranAmt = params.get("TranAmt")
        self._InAcctNo = params.get("InAcctNo")
        self._InAcctName = params.get("InAcctName")
        self._Ccy = params.get("Ccy")
        self._AccountingDate = params.get("AccountingDate")
        self._BankName = params.get("BankName")
        self._Remark = params.get("Remark")
        self._FrontSeqNo = params.get("FrontSeqNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferSinglePayData(AbstractModel):
    """智能代发-单笔代发转账接口返回数据

    """

    def __init__(self):
        r"""
        :param _TradeSerialNo: 平台交易流水号，唯一
        :type TradeSerialNo: str
        """
        self._TradeSerialNo = None

    @property
    def TradeSerialNo(self):
        return self._TradeSerialNo

    @TradeSerialNo.setter
    def TradeSerialNo(self, TradeSerialNo):
        self._TradeSerialNo = TradeSerialNo


    def _deserialize(self, params):
        self._TradeSerialNo = params.get("TradeSerialNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferSinglePayRequest(AbstractModel):
    """TransferSinglePay请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MerchantId: 商户号
        :type MerchantId: str
        :param _MerchantAppId: 微信申请商户号的appid或者商户号绑定的appid
支付宝、平安填入MerchantId
        :type MerchantAppId: str
        :param _TransferType: 1、 微信企业付款 
2、 支付宝转账 
3、 平安银企直联代发转账
        :type TransferType: int
        :param _OrderId: 订单流水号，唯一，不能包含特殊字符，长度最大限制64位，推荐使用字母，数字组合，"_","-"组合
        :type OrderId: str
        :param _TransferAmount: 转账金额，单位分
        :type TransferAmount: int
        :param _PayeeId: 收款方标识。
微信为open_id；
支付宝为会员alipay_user_id;
平安为收款方银行账号
        :type PayeeId: str
        :param _PayeeName: 收款方姓名。支付宝可选；微信，平安模式下必传
        :type PayeeName: str
        :param _PayeeExtends: 收款方附加信息，平安接入使用。需要以JSON格式提供以下字段：
PayeeBankName：收款人开户行名称
 CcyCode：货币类型（RMB-人民币）
 UnionFlag：行内跨行标志（1：行内转账，0：跨行转账）。
        :type PayeeExtends: str
        :param _ReqReserved: 请求预留字段，原样透传返回
        :type ReqReserved: str
        :param _Remark: 业务备注
        :type Remark: str
        :param _NotifyUrl: 转账结果回调通知URL。若不填，则不进行回调。
        :type NotifyUrl: str
        :param _Profile: 接入环境。沙箱环境填sandbox。
        :type Profile: str
        """
        self._MerchantId = None
        self._MerchantAppId = None
        self._TransferType = None
        self._OrderId = None
        self._TransferAmount = None
        self._PayeeId = None
        self._PayeeName = None
        self._PayeeExtends = None
        self._ReqReserved = None
        self._Remark = None
        self._NotifyUrl = None
        self._Profile = None

    @property
    def MerchantId(self):
        return self._MerchantId

    @MerchantId.setter
    def MerchantId(self, MerchantId):
        self._MerchantId = MerchantId

    @property
    def MerchantAppId(self):
        return self._MerchantAppId

    @MerchantAppId.setter
    def MerchantAppId(self, MerchantAppId):
        self._MerchantAppId = MerchantAppId

    @property
    def TransferType(self):
        return self._TransferType

    @TransferType.setter
    def TransferType(self, TransferType):
        self._TransferType = TransferType

    @property
    def OrderId(self):
        return self._OrderId

    @OrderId.setter
    def OrderId(self, OrderId):
        self._OrderId = OrderId

    @property
    def TransferAmount(self):
        return self._TransferAmount

    @TransferAmount.setter
    def TransferAmount(self, TransferAmount):
        self._TransferAmount = TransferAmount

    @property
    def PayeeId(self):
        return self._PayeeId

    @PayeeId.setter
    def PayeeId(self, PayeeId):
        self._PayeeId = PayeeId

    @property
    def PayeeName(self):
        return self._PayeeName

    @PayeeName.setter
    def PayeeName(self, PayeeName):
        self._PayeeName = PayeeName

    @property
    def PayeeExtends(self):
        return self._PayeeExtends

    @PayeeExtends.setter
    def PayeeExtends(self, PayeeExtends):
        self._PayeeExtends = PayeeExtends

    @property
    def ReqReserved(self):
        return self._ReqReserved

    @ReqReserved.setter
    def ReqReserved(self, ReqReserved):
        self._ReqReserved = ReqReserved

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MerchantId = params.get("MerchantId")
        self._MerchantAppId = params.get("MerchantAppId")
        self._TransferType = params.get("TransferType")
        self._OrderId = params.get("OrderId")
        self._TransferAmount = params.get("TransferAmount")
        self._PayeeId = params.get("PayeeId")
        self._PayeeName = params.get("PayeeName")
        self._PayeeExtends = params.get("PayeeExtends")
        self._ReqReserved = params.get("ReqReserved")
        self._Remark = params.get("Remark")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class TransferSinglePayResponse(AbstractModel):
    """TransferSinglePay返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功
        :type ErrCode: str
        :param _ErrMessage: 响应消息
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.TransferSinglePayData`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = TransferSinglePayData()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class UnBindAcctRequest(AbstractModel):
    """UnBindAcct请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SettleAcctNo: 用于提现
<敏感信息>加密详见<a href="https://cloud.tencent.com/document/product/1122/48979" target="_blank">《商户端接口敏感信息加密说明》</a>
        :type SettleAcctNo: str
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _EncryptType: 敏感信息加密类型:
RSA: rsa非对称加密，使用RSA-PKCS1-v1_5
AES: aes对称加密，使用AES256-CBC-PCKS7padding
缺省: RSA
        :type EncryptType: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        """
        self._MidasAppId = None
        self._SubAppId = None
        self._SettleAcctNo = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._EncryptType = None
        self._MidasEnvironment = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SettleAcctNo(self):
        return self._SettleAcctNo

    @SettleAcctNo.setter
    def SettleAcctNo(self, SettleAcctNo):
        self._SettleAcctNo = SettleAcctNo

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def EncryptType(self):
        return self._EncryptType

    @EncryptType.setter
    def EncryptType(self, EncryptType):
        self._EncryptType = EncryptType

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._SubAppId = params.get("SubAppId")
        self._SettleAcctNo = params.get("SettleAcctNo")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._EncryptType = params.get("EncryptType")
        self._MidasEnvironment = params.get("MidasEnvironment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnBindAcctResponse(AbstractModel):
    """UnBindAcct返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class UnbindOpenBankExternalSubMerchantBankAccountRequest(AbstractModel):
    """UnbindOpenBankExternalSubMerchantBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。
__TENPAY__: 商企付
__WECHAT__: 微信支付
__ALIPAY__: 支付宝
        :type ChannelName: str
        :param _PaymentMethod: 支付方式。
__EBANK_PAYMENT__: ebank支付
__OPENBANK_PAYMENT__: openbank支付
        :type PaymentMethod: str
        :param _BindSerialNo: 绑卡序列号。
        :type BindSerialNo: str
        :param _OutApplyId: 外部申请编号。
        :type OutApplyId: str
        :param _NotifyUrl: 通知地址。
        :type NotifyUrl: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._PaymentMethod = None
        self._BindSerialNo = None
        self._OutApplyId = None
        self._NotifyUrl = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def BindSerialNo(self):
        return self._BindSerialNo

    @BindSerialNo.setter
    def BindSerialNo(self, BindSerialNo):
        self._BindSerialNo = BindSerialNo

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._PaymentMethod = params.get("PaymentMethod")
        self._BindSerialNo = params.get("BindSerialNo")
        self._OutApplyId = params.get("OutApplyId")
        self._NotifyUrl = params.get("NotifyUrl")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnbindOpenBankExternalSubMerchantBankAccountResponse(AbstractModel):
    """UnbindOpenBankExternalSubMerchantBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
__SUCCESS__: 成功
__其他__: 见附录-错误码表
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.UnbindOpenBankExternalSubMerchantBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = UnbindOpenBankExternalSubMerchantBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class UnbindOpenBankExternalSubMerchantBankAccountResult(AbstractModel):
    """第三方子商户银行卡解绑返回结果

    """

    def __init__(self):
        r"""
        :param _ChannelApplyId: 渠道申请编号。
        :type ChannelApplyId: str
        :param _UnbindStatus: 解绑状态。
__SUCCESS__: 解绑成功
__FAILED__: 解绑失败
__PROCESSING__: 解绑中
注意：若返回解绑中，需要再次调用解绑结果查询接口查询结果。
        :type UnbindStatus: str
        :param _UnbindMessage: 解绑返回描述, 例如失败原因等。
注意：此字段可能返回 null，表示取不到有效值。
        :type UnbindMessage: str
        """
        self._ChannelApplyId = None
        self._UnbindStatus = None
        self._UnbindMessage = None

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId

    @property
    def UnbindStatus(self):
        return self._UnbindStatus

    @UnbindStatus.setter
    def UnbindStatus(self, UnbindStatus):
        self._UnbindStatus = UnbindStatus

    @property
    def UnbindMessage(self):
        return self._UnbindMessage

    @UnbindMessage.setter
    def UnbindMessage(self, UnbindMessage):
        self._UnbindMessage = UnbindMessage


    def _deserialize(self, params):
        self._ChannelApplyId = params.get("ChannelApplyId")
        self._UnbindStatus = params.get("UnbindStatus")
        self._UnbindMessage = params.get("UnbindMessage")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnbindRelateAcctRequest(AbstractModel):
    """UnbindRelateAcct请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _FunctionFlag: STRING(2)，功能标志（1: 解绑）
        :type FunctionFlag: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码（若需要把一个待绑定账户关联到两个会员名下，此字段可上送两个会员的交易网代码，并且须用“|::|”(右侧)进行分隔）
        :type TranNetMemberCode: str
        :param _MemberAcctNo: STRING(50)，待解绑的提现账户的账号（提现账号）
        :type MemberAcctNo: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._FunctionFlag = None
        self._TranNetMemberCode = None
        self._MemberAcctNo = None
        self._ReservedMsg = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def FunctionFlag(self):
        return self._FunctionFlag

    @FunctionFlag.setter
    def FunctionFlag(self, FunctionFlag):
        self._FunctionFlag = FunctionFlag

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberAcctNo(self):
        return self._MemberAcctNo

    @MemberAcctNo.setter
    def MemberAcctNo(self, MemberAcctNo):
        self._MemberAcctNo = MemberAcctNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._FunctionFlag = params.get("FunctionFlag")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberAcctNo = params.get("MemberAcctNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnbindRelateAcctResponse(AbstractModel):
    """UnbindRelateAcct返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号（即电商见证宝系统生成的流水号，可关联具体一笔请求）
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class UnifiedCloudOrderRequest(AbstractModel):
    """UnifiedCloudOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MidasAppId: 米大师分配的支付主MidasAppId
        :type MidasAppId: str
        :param _UserId: 用户ID
长度不小于5位，仅支持字母和数字的组合，长度限制以具体接入渠道为准
        :type UserId: str
        :param _OutTradeNo: 开发者主订单号
支付订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合，长度供参考，部分渠道存在长度更短的情况接入时请联系开发咨询
        :type OutTradeNo: str
        :param _CurrencyType: 货币类型
ISO货币代码，CNY
        :type CurrencyType: str
        :param _ProductId: 商品ID
业务自定义的商品id，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合。
        :type ProductId: str
        :param _ProductName: 商品名称
业务自定义的商品名称，无需URL编码，长度限制以具体所接入渠道为准。
        :type ProductName: str
        :param _ProductDetail: 商品详情
业务自定义的商品详情，无需URL编码，长度限制以具体所接入渠道为准。
        :type ProductDetail: str
        :param _OriginalAmt: 原始金额
单位：分，需要注意的是，OriginalAmt>=TotalAmt
        :type OriginalAmt: int
        :param _TotalAmt: 支付金额
单位：分，需要注意的是，TotalAmt=TotalPlatformIncome+TotalMchIncome。
        :type TotalAmt: int
        :param _MidasEnvironment: 环境类型
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type MidasEnvironment: str
        :param _SubAppId: 支付SubAppId
米大师计费SubAppId，代表子商户。指定使用该商户的商户号下单时必传。
        :type SubAppId: str
        :param _RealChannel: 顶层支付渠道
银行收单:
openbank_ccb: 建设银行
openbank_icbc: 工商银行
openbank_cmb: 招商银行
openbank_ping: 平安银行
openbank_icbc_jft：工商银行聚付通
非银行收单，可以为空
        :type RealChannel: str
        :param _Channel: 支付渠道
wechat：微信支付
wechat_ecommerce: 微信电商收付通
open_alipay: 支付宝
open_quickpass: 银联云闪付
icbc_epay: 工银e支付
foreign_cardpay: 外卡支付
icbc_jft_wechat: 工行聚付通-微信
icbc_jft_alipay: 工行聚付通-支付宝
icbc_jft_epay: 工行聚付通-e支付
指定渠道下单时必传
        :type Channel: str
        :param _Metadata: 透传字段
支付成功回调透传给应用，用于开发者透传自定义内容。
        :type Metadata: str
        :param _Quantity: 数量
购买数量,不传默认为1。
        :type Quantity: int
        :param _CallbackUrl: Web端回调地址
Web端网页回调地址，仅当Web端SDK使用页面跳转方式时有效。
        :type CallbackUrl: str
        :param _CancelUrl: 支付取消地址
        :type CancelUrl: str
        :param _WxAppId: 微信AppId
wechat渠道或wchat_ecommerce渠道可以指定下单时的wxappid。
        :type WxAppId: str
        :param _WxSubAppId: 微信SubAppId
wechat渠道可以指定下单时的sub_appid。
        :type WxSubAppId: str
        :param _WxOpenId: 微信公众号/小程序OpenId
微信公众号/小程序支付时为必选，需要传微信下的openid。
        :type WxOpenId: str
        :param _WxSubOpenId: 微信公众号/小程序SubOpenId
在服务商模式下，微信公众号/小程序支付时wx_sub_openid和wx_openid二选一。
        :type WxSubOpenId: str
        :param _TotalPlatformIncome: 平台应收金额
单位：分，需要注意的是，TotalAmt=TotalPlatformIncome+TotalMchIncome
        :type TotalPlatformIncome: int
        :param _TotalMchIncome: 结算应收金额
单位：分，需要注意的是，TotalAmt=TotalPlatformIncome+TotalMchIncome
        :type TotalMchIncome: int
        :param _SubOrderList: 子订单列表
格式：子订单号、子应用Id、金额。压缩后最长不可超过32K字节(去除空格，换行，制表符等无意义字符)。
        :type SubOrderList: list of CloudSubOrder
        :param _SettleInfo: 结算信息
例如是否需要分账、是否需要支付确认等，
注意：如果子单列表中传入了SettleInfo，在主单中不可再传入SettleInfo字段。
        :type SettleInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudSettleInfo`
        :param _AttachmentInfoList: 附加项信息列表
例如溢价信息、抵扣信息、积分信息、补贴信息
通过该字段可以实现渠道方的优惠抵扣补贴等营销功能
注意：当传SubOrderList时，请在子单信息中传附加项信息，不要在主单中传该字段。
        :type AttachmentInfoList: list of CloudAttachmentInfo
        :param _PaymentNotifyUrl: 支付通知地址
调用方可通过该字段传入自定义支付通知地址。
        :type PaymentNotifyUrl: str
        :param _PayScene: 支付场景
需要结合 RealChannel和Channel字段使用可选值:
wechat-app 微信APP支付方式
wechat-mini 微信小程序支付，示例：当 RealChannel=wechat Channel=wechat PayScene=wechat-mini时，内部会直接以小程序方式调用微信统一下单接口。
        :type PayScene: str
        :param _LocaleCode: 语言代码
取值请参考[ISO 639-1代码表](https://zh.wikipedia.org/zh-cn/ISO_639-1%E4%BB%A3%E7%A0%81%E8%A1%A8)
        :type LocaleCode: str
        :param _RegionCode: 地区代码
取值请参考[ISO 3166-1二位字母代码表](https://zh.wikipedia.org/zh-cn/ISO_3166-1%E4%BA%8C%E4%BD%8D%E5%AD%97%E6%AF%8D%E4%BB%A3%E7%A0%81#%E6%AD%A3%E5%BC%8F%E5%88%86%E9%85%8D%E4%BB%A3%E7%A0%81)
        :type RegionCode: str
        :param _UserClientIp: 用户IP
请求用户的IP地址，特定的渠道或特定的支付方式，此字段为必填
wechat_ecommerce渠道 - h5支付方式，此字段必填。
        :type UserClientIp: str
        :param _ChannelOrderIdMode: 渠道订单号生成模式
枚举值。决定请求渠道方时的订单号的生成模式，详情请联系米大师沟通。不指定时默认为由米大师自行生成。
        :type ChannelOrderIdMode: str
        :param _GlobalPayTimeInfo: 全局支付时间信息
        :type GlobalPayTimeInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudGlobalPayTimeInfo`
        :param _ChannelAppIdPolicy: 渠道应用ID取用方式
USE_APPID 使用渠道应用Id;
USE_SUB_APPID 使用子渠道应用Id;
USE_APPID_AND_SUB_APPID 既使用渠道应用Id也使用子渠道应用ID。
        :type ChannelAppIdPolicy: str
        :param _StoreInfo: 门店信息
特定的渠道或特定的支付方式，此字段为必填
wechat_ecommerce渠道 - h5支付方式，此字段必填
        :type StoreInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudStoreInfo`
        :param _ClientInfo: 客户端信息
特定的渠道或特定的支付方式，此字段为必填
wechat_ecommerce渠道 - h5支付方式，此字段必填
        :type ClientInfo: :class:`tencentcloud.cpdp.v20190820.models.CloudClientInfo`
        :param _ExternalPromptGroupList: 渠道扩展促销列表
可将各个渠道的促销信息放于该列表。
        :type ExternalPromptGroupList: list of CloudExternalPromptGroup
        :param _OrderReceiveMode: 收单模式
ORDER_RECEIVE_MODE_COMMON - 普通支付
ORDER_RECEIVE_MODE_COMBINE - 合单支付
ORDER_RECEIVE_MODE_V_COMBINE - 虚拟合单支付
若不传入该字段，则会根据是否传入子单来判断是 普通支付 还是 合单支付
        :type OrderReceiveMode: str
        :param _ExternalUserInfoList: 渠道方用户信息列表
        :type ExternalUserInfoList: list of CloudExternalUserInfo
        :param _ExternalAttachmentDataList: 渠道透传数据列表
        :type ExternalAttachmentDataList: list of CloudExternalAttachmentData
        """
        self._MidasAppId = None
        self._UserId = None
        self._OutTradeNo = None
        self._CurrencyType = None
        self._ProductId = None
        self._ProductName = None
        self._ProductDetail = None
        self._OriginalAmt = None
        self._TotalAmt = None
        self._MidasEnvironment = None
        self._SubAppId = None
        self._RealChannel = None
        self._Channel = None
        self._Metadata = None
        self._Quantity = None
        self._CallbackUrl = None
        self._CancelUrl = None
        self._WxAppId = None
        self._WxSubAppId = None
        self._WxOpenId = None
        self._WxSubOpenId = None
        self._TotalPlatformIncome = None
        self._TotalMchIncome = None
        self._SubOrderList = None
        self._SettleInfo = None
        self._AttachmentInfoList = None
        self._PaymentNotifyUrl = None
        self._PayScene = None
        self._LocaleCode = None
        self._RegionCode = None
        self._UserClientIp = None
        self._ChannelOrderIdMode = None
        self._GlobalPayTimeInfo = None
        self._ChannelAppIdPolicy = None
        self._StoreInfo = None
        self._ClientInfo = None
        self._ExternalPromptGroupList = None
        self._OrderReceiveMode = None
        self._ExternalUserInfoList = None
        self._ExternalAttachmentDataList = None

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def RealChannel(self):
        return self._RealChannel

    @RealChannel.setter
    def RealChannel(self, RealChannel):
        self._RealChannel = RealChannel

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def Quantity(self):
        return self._Quantity

    @Quantity.setter
    def Quantity(self, Quantity):
        self._Quantity = Quantity

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def CancelUrl(self):
        return self._CancelUrl

    @CancelUrl.setter
    def CancelUrl(self, CancelUrl):
        self._CancelUrl = CancelUrl

    @property
    def WxAppId(self):
        return self._WxAppId

    @WxAppId.setter
    def WxAppId(self, WxAppId):
        self._WxAppId = WxAppId

    @property
    def WxSubAppId(self):
        return self._WxSubAppId

    @WxSubAppId.setter
    def WxSubAppId(self, WxSubAppId):
        self._WxSubAppId = WxSubAppId

    @property
    def WxOpenId(self):
        return self._WxOpenId

    @WxOpenId.setter
    def WxOpenId(self, WxOpenId):
        self._WxOpenId = WxOpenId

    @property
    def WxSubOpenId(self):
        return self._WxSubOpenId

    @WxSubOpenId.setter
    def WxSubOpenId(self, WxSubOpenId):
        self._WxSubOpenId = WxSubOpenId

    @property
    def TotalPlatformIncome(self):
        return self._TotalPlatformIncome

    @TotalPlatformIncome.setter
    def TotalPlatformIncome(self, TotalPlatformIncome):
        self._TotalPlatformIncome = TotalPlatformIncome

    @property
    def TotalMchIncome(self):
        return self._TotalMchIncome

    @TotalMchIncome.setter
    def TotalMchIncome(self, TotalMchIncome):
        self._TotalMchIncome = TotalMchIncome

    @property
    def SubOrderList(self):
        return self._SubOrderList

    @SubOrderList.setter
    def SubOrderList(self, SubOrderList):
        self._SubOrderList = SubOrderList

    @property
    def SettleInfo(self):
        return self._SettleInfo

    @SettleInfo.setter
    def SettleInfo(self, SettleInfo):
        self._SettleInfo = SettleInfo

    @property
    def AttachmentInfoList(self):
        return self._AttachmentInfoList

    @AttachmentInfoList.setter
    def AttachmentInfoList(self, AttachmentInfoList):
        self._AttachmentInfoList = AttachmentInfoList

    @property
    def PaymentNotifyUrl(self):
        return self._PaymentNotifyUrl

    @PaymentNotifyUrl.setter
    def PaymentNotifyUrl(self, PaymentNotifyUrl):
        self._PaymentNotifyUrl = PaymentNotifyUrl

    @property
    def PayScene(self):
        return self._PayScene

    @PayScene.setter
    def PayScene(self, PayScene):
        self._PayScene = PayScene

    @property
    def LocaleCode(self):
        return self._LocaleCode

    @LocaleCode.setter
    def LocaleCode(self, LocaleCode):
        self._LocaleCode = LocaleCode

    @property
    def RegionCode(self):
        return self._RegionCode

    @RegionCode.setter
    def RegionCode(self, RegionCode):
        self._RegionCode = RegionCode

    @property
    def UserClientIp(self):
        return self._UserClientIp

    @UserClientIp.setter
    def UserClientIp(self, UserClientIp):
        self._UserClientIp = UserClientIp

    @property
    def ChannelOrderIdMode(self):
        return self._ChannelOrderIdMode

    @ChannelOrderIdMode.setter
    def ChannelOrderIdMode(self, ChannelOrderIdMode):
        self._ChannelOrderIdMode = ChannelOrderIdMode

    @property
    def GlobalPayTimeInfo(self):
        return self._GlobalPayTimeInfo

    @GlobalPayTimeInfo.setter
    def GlobalPayTimeInfo(self, GlobalPayTimeInfo):
        self._GlobalPayTimeInfo = GlobalPayTimeInfo

    @property
    def ChannelAppIdPolicy(self):
        return self._ChannelAppIdPolicy

    @ChannelAppIdPolicy.setter
    def ChannelAppIdPolicy(self, ChannelAppIdPolicy):
        self._ChannelAppIdPolicy = ChannelAppIdPolicy

    @property
    def StoreInfo(self):
        return self._StoreInfo

    @StoreInfo.setter
    def StoreInfo(self, StoreInfo):
        self._StoreInfo = StoreInfo

    @property
    def ClientInfo(self):
        return self._ClientInfo

    @ClientInfo.setter
    def ClientInfo(self, ClientInfo):
        self._ClientInfo = ClientInfo

    @property
    def ExternalPromptGroupList(self):
        return self._ExternalPromptGroupList

    @ExternalPromptGroupList.setter
    def ExternalPromptGroupList(self, ExternalPromptGroupList):
        self._ExternalPromptGroupList = ExternalPromptGroupList

    @property
    def OrderReceiveMode(self):
        return self._OrderReceiveMode

    @OrderReceiveMode.setter
    def OrderReceiveMode(self, OrderReceiveMode):
        self._OrderReceiveMode = OrderReceiveMode

    @property
    def ExternalUserInfoList(self):
        return self._ExternalUserInfoList

    @ExternalUserInfoList.setter
    def ExternalUserInfoList(self, ExternalUserInfoList):
        self._ExternalUserInfoList = ExternalUserInfoList

    @property
    def ExternalAttachmentDataList(self):
        return self._ExternalAttachmentDataList

    @ExternalAttachmentDataList.setter
    def ExternalAttachmentDataList(self, ExternalAttachmentDataList):
        self._ExternalAttachmentDataList = ExternalAttachmentDataList


    def _deserialize(self, params):
        self._MidasAppId = params.get("MidasAppId")
        self._UserId = params.get("UserId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._CurrencyType = params.get("CurrencyType")
        self._ProductId = params.get("ProductId")
        self._ProductName = params.get("ProductName")
        self._ProductDetail = params.get("ProductDetail")
        self._OriginalAmt = params.get("OriginalAmt")
        self._TotalAmt = params.get("TotalAmt")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._SubAppId = params.get("SubAppId")
        self._RealChannel = params.get("RealChannel")
        self._Channel = params.get("Channel")
        self._Metadata = params.get("Metadata")
        self._Quantity = params.get("Quantity")
        self._CallbackUrl = params.get("CallbackUrl")
        self._CancelUrl = params.get("CancelUrl")
        self._WxAppId = params.get("WxAppId")
        self._WxSubAppId = params.get("WxSubAppId")
        self._WxOpenId = params.get("WxOpenId")
        self._WxSubOpenId = params.get("WxSubOpenId")
        self._TotalPlatformIncome = params.get("TotalPlatformIncome")
        self._TotalMchIncome = params.get("TotalMchIncome")
        if params.get("SubOrderList") is not None:
            self._SubOrderList = []
            for item in params.get("SubOrderList"):
                obj = CloudSubOrder()
                obj._deserialize(item)
                self._SubOrderList.append(obj)
        if params.get("SettleInfo") is not None:
            self._SettleInfo = CloudSettleInfo()
            self._SettleInfo._deserialize(params.get("SettleInfo"))
        if params.get("AttachmentInfoList") is not None:
            self._AttachmentInfoList = []
            for item in params.get("AttachmentInfoList"):
                obj = CloudAttachmentInfo()
                obj._deserialize(item)
                self._AttachmentInfoList.append(obj)
        self._PaymentNotifyUrl = params.get("PaymentNotifyUrl")
        self._PayScene = params.get("PayScene")
        self._LocaleCode = params.get("LocaleCode")
        self._RegionCode = params.get("RegionCode")
        self._UserClientIp = params.get("UserClientIp")
        self._ChannelOrderIdMode = params.get("ChannelOrderIdMode")
        if params.get("GlobalPayTimeInfo") is not None:
            self._GlobalPayTimeInfo = CloudGlobalPayTimeInfo()
            self._GlobalPayTimeInfo._deserialize(params.get("GlobalPayTimeInfo"))
        self._ChannelAppIdPolicy = params.get("ChannelAppIdPolicy")
        if params.get("StoreInfo") is not None:
            self._StoreInfo = CloudStoreInfo()
            self._StoreInfo._deserialize(params.get("StoreInfo"))
        if params.get("ClientInfo") is not None:
            self._ClientInfo = CloudClientInfo()
            self._ClientInfo._deserialize(params.get("ClientInfo"))
        if params.get("ExternalPromptGroupList") is not None:
            self._ExternalPromptGroupList = []
            for item in params.get("ExternalPromptGroupList"):
                obj = CloudExternalPromptGroup()
                obj._deserialize(item)
                self._ExternalPromptGroupList.append(obj)
        self._OrderReceiveMode = params.get("OrderReceiveMode")
        if params.get("ExternalUserInfoList") is not None:
            self._ExternalUserInfoList = []
            for item in params.get("ExternalUserInfoList"):
                obj = CloudExternalUserInfo()
                obj._deserialize(item)
                self._ExternalUserInfoList.append(obj)
        if params.get("ExternalAttachmentDataList") is not None:
            self._ExternalAttachmentDataList = []
            for item in params.get("ExternalAttachmentDataList"):
                obj = CloudExternalAttachmentData()
                obj._deserialize(item)
                self._ExternalAttachmentDataList.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnifiedCloudOrderResponse(AbstractModel):
    """UnifiedCloudOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TransactionId: 米大师的交易订单号。
注意：此字段可能返回 null，表示取不到有效值。
        :type TransactionId: str
        :param _OutTradeNo: 开发者的支付订单号。
注意：此字段可能返回 null，表示取不到有效值。
        :type OutTradeNo: str
        :param _PayInfo: SDK的支付参数。
支付参数透传给米大师SDK（原文透传给SDK即可，不需要解码）
注意：此字段可能返回 null，表示取不到有效值。
        :type PayInfo: str
        :param _TotalAmt: 支付金额，单位：分。
注意：此字段可能返回 null，表示取不到有效值。
        :type TotalAmt: int
        :param _ChannelInfo: 渠道信息，用于拉起渠道支付。j
son字符串，注意此字段仅会在传入正确的PayScene入参时才会有效。
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelInfo: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TransactionId = None
        self._OutTradeNo = None
        self._PayInfo = None
        self._TotalAmt = None
        self._ChannelInfo = None
        self._RequestId = None

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def PayInfo(self):
        return self._PayInfo

    @PayInfo.setter
    def PayInfo(self, PayInfo):
        self._PayInfo = PayInfo

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def ChannelInfo(self):
        return self._ChannelInfo

    @ChannelInfo.setter
    def ChannelInfo(self, ChannelInfo):
        self._ChannelInfo = ChannelInfo

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TransactionId = params.get("TransactionId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._PayInfo = params.get("PayInfo")
        self._TotalAmt = params.get("TotalAmt")
        self._ChannelInfo = params.get("ChannelInfo")
        self._RequestId = params.get("RequestId")


class UnifiedOrderInSubOrderList(AbstractModel):
    """子订单列表

    """

    def __init__(self):
        r"""
        :param _SubMchIncome: 子订单结算应收金额，单位： 分
        :type SubMchIncome: int
        :param _PlatformIncome: 子订单平台应收金额，单位：分
        :type PlatformIncome: int
        :param _ProductDetail: 子订单商品详情
        :type ProductDetail: str
        :param _ProductName: 子订单商品名称
        :type ProductName: str
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubOutTradeNo: 子订单号
        :type SubOutTradeNo: str
        :param _Amt: 子订单支付金额
        :type Amt: int
        :param _Metadata: 发货标识，由业务在调用聚鑫下单接口的 时候下发
        :type Metadata: str
        :param _OriginalAmt: 子订单原始金额
        :type OriginalAmt: int
        """
        self._SubMchIncome = None
        self._PlatformIncome = None
        self._ProductDetail = None
        self._ProductName = None
        self._SubAppId = None
        self._SubOutTradeNo = None
        self._Amt = None
        self._Metadata = None
        self._OriginalAmt = None

    @property
    def SubMchIncome(self):
        return self._SubMchIncome

    @SubMchIncome.setter
    def SubMchIncome(self, SubMchIncome):
        self._SubMchIncome = SubMchIncome

    @property
    def PlatformIncome(self):
        return self._PlatformIncome

    @PlatformIncome.setter
    def PlatformIncome(self, PlatformIncome):
        self._PlatformIncome = PlatformIncome

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOutTradeNo(self):
        return self._SubOutTradeNo

    @SubOutTradeNo.setter
    def SubOutTradeNo(self, SubOutTradeNo):
        self._SubOutTradeNo = SubOutTradeNo

    @property
    def Amt(self):
        return self._Amt

    @Amt.setter
    def Amt(self, Amt):
        self._Amt = Amt

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt


    def _deserialize(self, params):
        self._SubMchIncome = params.get("SubMchIncome")
        self._PlatformIncome = params.get("PlatformIncome")
        self._ProductDetail = params.get("ProductDetail")
        self._ProductName = params.get("ProductName")
        self._SubAppId = params.get("SubAppId")
        self._SubOutTradeNo = params.get("SubOutTradeNo")
        self._Amt = params.get("Amt")
        self._Metadata = params.get("Metadata")
        self._OriginalAmt = params.get("OriginalAmt")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnifiedOrderRequest(AbstractModel):
    """UnifiedOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _CurrencyType: ISO 货币代码，CNY
        :type CurrencyType: str
        :param _MidasAppId: 聚鑫分配的支付主MidasAppId
        :type MidasAppId: str
        :param _OutTradeNo: 支付订单号，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type OutTradeNo: str
        :param _ProductDetail: 商品详情，需要URL编码
        :type ProductDetail: str
        :param _ProductId: 商品ID，仅支持数字、字母、下划线（_）、横杠字符（-）、点（.）的组合
        :type ProductId: str
        :param _ProductName: 商品名称，需要URL编码
        :type ProductName: str
        :param _TotalAmt: 支付金额，单位： 分
        :type TotalAmt: int
        :param _UserId: 用户ID，长度不小于5位，仅支持字母和数字的组合
        :type UserId: str
        :param _RealChannel: 银行真实渠道.如:bank_pingan
        :type RealChannel: str
        :param _OriginalAmt: 原始金额
        :type OriginalAmt: int
        :param _MidasSecretId: 聚鑫分配的安全ID
        :type MidasSecretId: str
        :param _MidasSignature: 按照聚鑫安全密钥计算的签名
        :type MidasSignature: str
        :param _CallbackUrl: Web端回调地址
        :type CallbackUrl: str
        :param _Channel: 指定支付渠道：  wechat：微信支付  qqwallet：QQ钱包 
 bank：网银支付  只有一个渠道时需要指定
        :type Channel: str
        :param _Metadata: 透传字段，支付成功回调透传给应用，用于业务透传自定义内容
        :type Metadata: str
        :param _Quantity: 购买数量，不传默认为1
        :type Quantity: int
        :param _SubAppId: 聚鑫计费SubAppId，代表子商户
        :type SubAppId: str
        :param _SubOrderList: 子订单信息列表，格式：子订单号、子应用ID、金额。 压缩后最长不可超过65535字节(去除空格，换行，制表符等无意义字符)
注：接入银行或其他支付渠道服务商模式下，必传
        :type SubOrderList: list of UnifiedOrderInSubOrderList
        :param _TotalMchIncome: 结算应收金额，单位：分
        :type TotalMchIncome: int
        :param _TotalPlatformIncome: 平台应收金额，单位：分
        :type TotalPlatformIncome: int
        :param _WxOpenId: 微信公众号/小程序支付时为必选，需要传微信下的openid
        :type WxOpenId: str
        :param _WxSubOpenId: 在服务商模式下，微信公众号/小程序支付时wx_sub_openid和wx_openid二选一
        :type WxSubOpenId: str
        :param _MidasEnvironment: 环境名:
release: 现网环境
sandbox: 沙箱环境
development: 开发环境
缺省: release
        :type MidasEnvironment: str
        :param _WxAppId: 微信商户应用ID
        :type WxAppId: str
        :param _WxSubAppId: 微信商户子应用ID
        :type WxSubAppId: str
        :param _PaymentNotifyUrl: 支付通知地址
        :type PaymentNotifyUrl: str
        """
        self._CurrencyType = None
        self._MidasAppId = None
        self._OutTradeNo = None
        self._ProductDetail = None
        self._ProductId = None
        self._ProductName = None
        self._TotalAmt = None
        self._UserId = None
        self._RealChannel = None
        self._OriginalAmt = None
        self._MidasSecretId = None
        self._MidasSignature = None
        self._CallbackUrl = None
        self._Channel = None
        self._Metadata = None
        self._Quantity = None
        self._SubAppId = None
        self._SubOrderList = None
        self._TotalMchIncome = None
        self._TotalPlatformIncome = None
        self._WxOpenId = None
        self._WxSubOpenId = None
        self._MidasEnvironment = None
        self._WxAppId = None
        self._WxSubAppId = None
        self._PaymentNotifyUrl = None

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def MidasAppId(self):
        return self._MidasAppId

    @MidasAppId.setter
    def MidasAppId(self, MidasAppId):
        self._MidasAppId = MidasAppId

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def ProductDetail(self):
        return self._ProductDetail

    @ProductDetail.setter
    def ProductDetail(self, ProductDetail):
        self._ProductDetail = ProductDetail

    @property
    def ProductId(self):
        return self._ProductId

    @ProductId.setter
    def ProductId(self, ProductId):
        self._ProductId = ProductId

    @property
    def ProductName(self):
        return self._ProductName

    @ProductName.setter
    def ProductName(self, ProductName):
        self._ProductName = ProductName

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def UserId(self):
        return self._UserId

    @UserId.setter
    def UserId(self, UserId):
        self._UserId = UserId

    @property
    def RealChannel(self):
        return self._RealChannel

    @RealChannel.setter
    def RealChannel(self, RealChannel):
        self._RealChannel = RealChannel

    @property
    def OriginalAmt(self):
        return self._OriginalAmt

    @OriginalAmt.setter
    def OriginalAmt(self, OriginalAmt):
        self._OriginalAmt = OriginalAmt

    @property
    def MidasSecretId(self):
        return self._MidasSecretId

    @MidasSecretId.setter
    def MidasSecretId(self, MidasSecretId):
        self._MidasSecretId = MidasSecretId

    @property
    def MidasSignature(self):
        return self._MidasSignature

    @MidasSignature.setter
    def MidasSignature(self, MidasSignature):
        self._MidasSignature = MidasSignature

    @property
    def CallbackUrl(self):
        return self._CallbackUrl

    @CallbackUrl.setter
    def CallbackUrl(self, CallbackUrl):
        self._CallbackUrl = CallbackUrl

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def Metadata(self):
        return self._Metadata

    @Metadata.setter
    def Metadata(self, Metadata):
        self._Metadata = Metadata

    @property
    def Quantity(self):
        return self._Quantity

    @Quantity.setter
    def Quantity(self, Quantity):
        self._Quantity = Quantity

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOrderList(self):
        return self._SubOrderList

    @SubOrderList.setter
    def SubOrderList(self, SubOrderList):
        self._SubOrderList = SubOrderList

    @property
    def TotalMchIncome(self):
        return self._TotalMchIncome

    @TotalMchIncome.setter
    def TotalMchIncome(self, TotalMchIncome):
        self._TotalMchIncome = TotalMchIncome

    @property
    def TotalPlatformIncome(self):
        return self._TotalPlatformIncome

    @TotalPlatformIncome.setter
    def TotalPlatformIncome(self, TotalPlatformIncome):
        self._TotalPlatformIncome = TotalPlatformIncome

    @property
    def WxOpenId(self):
        return self._WxOpenId

    @WxOpenId.setter
    def WxOpenId(self, WxOpenId):
        self._WxOpenId = WxOpenId

    @property
    def WxSubOpenId(self):
        return self._WxSubOpenId

    @WxSubOpenId.setter
    def WxSubOpenId(self, WxSubOpenId):
        self._WxSubOpenId = WxSubOpenId

    @property
    def MidasEnvironment(self):
        return self._MidasEnvironment

    @MidasEnvironment.setter
    def MidasEnvironment(self, MidasEnvironment):
        self._MidasEnvironment = MidasEnvironment

    @property
    def WxAppId(self):
        return self._WxAppId

    @WxAppId.setter
    def WxAppId(self, WxAppId):
        self._WxAppId = WxAppId

    @property
    def WxSubAppId(self):
        return self._WxSubAppId

    @WxSubAppId.setter
    def WxSubAppId(self, WxSubAppId):
        self._WxSubAppId = WxSubAppId

    @property
    def PaymentNotifyUrl(self):
        return self._PaymentNotifyUrl

    @PaymentNotifyUrl.setter
    def PaymentNotifyUrl(self, PaymentNotifyUrl):
        self._PaymentNotifyUrl = PaymentNotifyUrl


    def _deserialize(self, params):
        self._CurrencyType = params.get("CurrencyType")
        self._MidasAppId = params.get("MidasAppId")
        self._OutTradeNo = params.get("OutTradeNo")
        self._ProductDetail = params.get("ProductDetail")
        self._ProductId = params.get("ProductId")
        self._ProductName = params.get("ProductName")
        self._TotalAmt = params.get("TotalAmt")
        self._UserId = params.get("UserId")
        self._RealChannel = params.get("RealChannel")
        self._OriginalAmt = params.get("OriginalAmt")
        self._MidasSecretId = params.get("MidasSecretId")
        self._MidasSignature = params.get("MidasSignature")
        self._CallbackUrl = params.get("CallbackUrl")
        self._Channel = params.get("Channel")
        self._Metadata = params.get("Metadata")
        self._Quantity = params.get("Quantity")
        self._SubAppId = params.get("SubAppId")
        if params.get("SubOrderList") is not None:
            self._SubOrderList = []
            for item in params.get("SubOrderList"):
                obj = UnifiedOrderInSubOrderList()
                obj._deserialize(item)
                self._SubOrderList.append(obj)
        self._TotalMchIncome = params.get("TotalMchIncome")
        self._TotalPlatformIncome = params.get("TotalPlatformIncome")
        self._WxOpenId = params.get("WxOpenId")
        self._WxSubOpenId = params.get("WxSubOpenId")
        self._MidasEnvironment = params.get("MidasEnvironment")
        self._WxAppId = params.get("WxAppId")
        self._WxSubAppId = params.get("WxSubAppId")
        self._PaymentNotifyUrl = params.get("PaymentNotifyUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnifiedOrderResponse(AbstractModel):
    """UnifiedOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TotalAmt: 支付金额，单位： 分
        :type TotalAmt: int
        :param _OutTradeNo: 应用支付订单号
        :type OutTradeNo: str
        :param _PayInfo: 支付参数透传给聚鑫SDK（原文透传给SDK即可，不需要解码）
        :type PayInfo: str
        :param _TransactionId: 聚鑫的交易订单
        :type TransactionId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TotalAmt = None
        self._OutTradeNo = None
        self._PayInfo = None
        self._TransactionId = None
        self._RequestId = None

    @property
    def TotalAmt(self):
        return self._TotalAmt

    @TotalAmt.setter
    def TotalAmt(self, TotalAmt):
        self._TotalAmt = TotalAmt

    @property
    def OutTradeNo(self):
        return self._OutTradeNo

    @OutTradeNo.setter
    def OutTradeNo(self, OutTradeNo):
        self._OutTradeNo = OutTradeNo

    @property
    def PayInfo(self):
        return self._PayInfo

    @PayInfo.setter
    def PayInfo(self, PayInfo):
        self._PayInfo = PayInfo

    @property
    def TransactionId(self):
        return self._TransactionId

    @TransactionId.setter
    def TransactionId(self, TransactionId):
        self._TransactionId = TransactionId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TotalAmt = params.get("TotalAmt")
        self._OutTradeNo = params.get("OutTradeNo")
        self._PayInfo = params.get("PayInfo")
        self._TransactionId = params.get("TransactionId")
        self._RequestId = params.get("RequestId")


class UnifiedTlinxOrderRequest(AbstractModel):
    """UnifiedTlinxOrder请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 使用门店OpenId
        :type OpenId: str
        :param _OpenKey: 使用门店OpenKey
        :type OpenKey: str
        :param _DeveloperNo: 开发者流水号
        :type DeveloperNo: str
        :param _PayTag: 支付标签
        :type PayTag: str
        :param _TradeAmount: 实际交易金额（以分为单位，没有小数点）
        :type TradeAmount: str
        :param _NotifyUrl: 交易结果异步通知url地址
        :type NotifyUrl: str
        :param _PayName: 付款方式名称(当PayTag为Diy时，PayName不能为空)
        :type PayName: str
        :param _JumpUrl: 公众号支付时，支付成功后跳转url地址
        :type JumpUrl: str
        :param _OrderName: 订单名称（描述）
        :type OrderName: str
        :param _OriginalAmount: 原始交易金额（以分为单位，没有小数点）
        :type OriginalAmount: str
        :param _IgnoreAmount: 抹零金额（以分为单位，没有小数点）
        :type IgnoreAmount: str
        :param _DiscountAmount: 折扣金额（以分为单位，没有小数点）
        :type DiscountAmount: str
        :param _TradeAccount: 交易帐号（银行卡号）
        :type TradeAccount: str
        :param _TradeNo: 交易号（收单机构交易号）
        :type TradeNo: str
        :param _AuthCode: 条码支付的授权码（条码抢扫手机扫到的一串数字）
        :type AuthCode: str
        :param _Tag: 订单标记，订单附加数据。
        :type Tag: str
        :param _Remark: 订单备注
        :type Remark: str
        :param _TradeResult: 收单机构原始交易报文，请转换为json
        :type TradeResult: str
        :param _Royalty: 0-不分账，1-需分账。为1时标记为待分账订单，待分账订单不会进行清算。不传默认为不分账。
        :type Royalty: str
        :param _Jsapi: 小程序支付参数：填默认值 1
        :type Jsapi: str
        :param _SubAppId: 小程序支付参数：
当前调起支付的小程序APPID
        :type SubAppId: str
        :param _SubOpenId: 小程序支付参数:
用户在子商户appid下的唯一标识。
        :type SubOpenId: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._DeveloperNo = None
        self._PayTag = None
        self._TradeAmount = None
        self._NotifyUrl = None
        self._PayName = None
        self._JumpUrl = None
        self._OrderName = None
        self._OriginalAmount = None
        self._IgnoreAmount = None
        self._DiscountAmount = None
        self._TradeAccount = None
        self._TradeNo = None
        self._AuthCode = None
        self._Tag = None
        self._Remark = None
        self._TradeResult = None
        self._Royalty = None
        self._Jsapi = None
        self._SubAppId = None
        self._SubOpenId = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def DeveloperNo(self):
        return self._DeveloperNo

    @DeveloperNo.setter
    def DeveloperNo(self, DeveloperNo):
        self._DeveloperNo = DeveloperNo

    @property
    def PayTag(self):
        return self._PayTag

    @PayTag.setter
    def PayTag(self, PayTag):
        self._PayTag = PayTag

    @property
    def TradeAmount(self):
        return self._TradeAmount

    @TradeAmount.setter
    def TradeAmount(self, TradeAmount):
        self._TradeAmount = TradeAmount

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def PayName(self):
        return self._PayName

    @PayName.setter
    def PayName(self, PayName):
        self._PayName = PayName

    @property
    def JumpUrl(self):
        return self._JumpUrl

    @JumpUrl.setter
    def JumpUrl(self, JumpUrl):
        self._JumpUrl = JumpUrl

    @property
    def OrderName(self):
        return self._OrderName

    @OrderName.setter
    def OrderName(self, OrderName):
        self._OrderName = OrderName

    @property
    def OriginalAmount(self):
        return self._OriginalAmount

    @OriginalAmount.setter
    def OriginalAmount(self, OriginalAmount):
        self._OriginalAmount = OriginalAmount

    @property
    def IgnoreAmount(self):
        return self._IgnoreAmount

    @IgnoreAmount.setter
    def IgnoreAmount(self, IgnoreAmount):
        self._IgnoreAmount = IgnoreAmount

    @property
    def DiscountAmount(self):
        return self._DiscountAmount

    @DiscountAmount.setter
    def DiscountAmount(self, DiscountAmount):
        self._DiscountAmount = DiscountAmount

    @property
    def TradeAccount(self):
        return self._TradeAccount

    @TradeAccount.setter
    def TradeAccount(self, TradeAccount):
        self._TradeAccount = TradeAccount

    @property
    def TradeNo(self):
        return self._TradeNo

    @TradeNo.setter
    def TradeNo(self, TradeNo):
        self._TradeNo = TradeNo

    @property
    def AuthCode(self):
        return self._AuthCode

    @AuthCode.setter
    def AuthCode(self, AuthCode):
        self._AuthCode = AuthCode

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def TradeResult(self):
        return self._TradeResult

    @TradeResult.setter
    def TradeResult(self, TradeResult):
        self._TradeResult = TradeResult

    @property
    def Royalty(self):
        return self._Royalty

    @Royalty.setter
    def Royalty(self, Royalty):
        self._Royalty = Royalty

    @property
    def Jsapi(self):
        return self._Jsapi

    @Jsapi.setter
    def Jsapi(self, Jsapi):
        self._Jsapi = Jsapi

    @property
    def SubAppId(self):
        return self._SubAppId

    @SubAppId.setter
    def SubAppId(self, SubAppId):
        self._SubAppId = SubAppId

    @property
    def SubOpenId(self):
        return self._SubOpenId

    @SubOpenId.setter
    def SubOpenId(self, SubOpenId):
        self._SubOpenId = SubOpenId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._DeveloperNo = params.get("DeveloperNo")
        self._PayTag = params.get("PayTag")
        self._TradeAmount = params.get("TradeAmount")
        self._NotifyUrl = params.get("NotifyUrl")
        self._PayName = params.get("PayName")
        self._JumpUrl = params.get("JumpUrl")
        self._OrderName = params.get("OrderName")
        self._OriginalAmount = params.get("OriginalAmount")
        self._IgnoreAmount = params.get("IgnoreAmount")
        self._DiscountAmount = params.get("DiscountAmount")
        self._TradeAccount = params.get("TradeAccount")
        self._TradeNo = params.get("TradeNo")
        self._AuthCode = params.get("AuthCode")
        self._Tag = params.get("Tag")
        self._Remark = params.get("Remark")
        self._TradeResult = params.get("TradeResult")
        self._Royalty = params.get("Royalty")
        self._Jsapi = params.get("Jsapi")
        self._SubAppId = params.get("SubAppId")
        self._SubOpenId = params.get("SubOpenId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UnifiedTlinxOrderResponse(AbstractModel):
    """UnifiedTlinxOrder返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码，0表示成功，其他表示失败。
        :type ErrCode: str
        :param _Result: 统一下单响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.PayOrderResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = PayOrderResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class UploadExternalAnchorInfoRequest(AbstractModel):
    """UploadExternalAnchorInfo请求参数结构体

    """

    def __init__(self):
        r"""
        :param _AnchorId: 主播Id
        :type AnchorId: str
        :param _IdCardFront: 身份证正面图片下载链接
        :type IdCardFront: str
        :param _IdCardReverse: 身份证反面图片下载链接
        :type IdCardReverse: str
        """
        self._AnchorId = None
        self._IdCardFront = None
        self._IdCardReverse = None

    @property
    def AnchorId(self):
        return self._AnchorId

    @AnchorId.setter
    def AnchorId(self, AnchorId):
        self._AnchorId = AnchorId

    @property
    def IdCardFront(self):
        return self._IdCardFront

    @IdCardFront.setter
    def IdCardFront(self, IdCardFront):
        self._IdCardFront = IdCardFront

    @property
    def IdCardReverse(self):
        return self._IdCardReverse

    @IdCardReverse.setter
    def IdCardReverse(self, IdCardReverse):
        self._IdCardReverse = IdCardReverse


    def _deserialize(self, params):
        self._AnchorId = params.get("AnchorId")
        self._IdCardFront = params.get("IdCardFront")
        self._IdCardReverse = params.get("IdCardReverse")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadExternalAnchorInfoResponse(AbstractModel):
    """UploadExternalAnchorInfo返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。响应成功："SUCCESS"，其他为不成功。
        :type ErrCode: str
        :param _ErrMessage: 响应消息。
        :type ErrMessage: str
        :param _Result: 该字段为null。
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        self._Result = params.get("Result")
        self._RequestId = params.get("RequestId")


class UploadFileRequest(AbstractModel):
    """UploadFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _FileName: 文件名
        :type FileName: str
        :param _FileType: 文件类型
__IdCard__:身份证
__IdCardCheck__:身份证加验证(只支持人像面)
        :type FileType: str
        :param _FileUrl: 文件链接
__FileUrl和FileContent二选一__
        :type FileUrl: str
        :param _FileContent: 文件内容，Base64编码
__FileUrl和FileContent二选一__
        :type FileContent: str
        :param _FileExtendInfo: 文件扩展信息
        :type FileExtendInfo: list of AnchorExtendInfo
        """
        self._FileName = None
        self._FileType = None
        self._FileUrl = None
        self._FileContent = None
        self._FileExtendInfo = None

    @property
    def FileName(self):
        return self._FileName

    @FileName.setter
    def FileName(self, FileName):
        self._FileName = FileName

    @property
    def FileType(self):
        return self._FileType

    @FileType.setter
    def FileType(self, FileType):
        self._FileType = FileType

    @property
    def FileUrl(self):
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl

    @property
    def FileContent(self):
        return self._FileContent

    @FileContent.setter
    def FileContent(self, FileContent):
        self._FileContent = FileContent

    @property
    def FileExtendInfo(self):
        return self._FileExtendInfo

    @FileExtendInfo.setter
    def FileExtendInfo(self, FileExtendInfo):
        self._FileExtendInfo = FileExtendInfo


    def _deserialize(self, params):
        self._FileName = params.get("FileName")
        self._FileType = params.get("FileType")
        self._FileUrl = params.get("FileUrl")
        self._FileContent = params.get("FileContent")
        if params.get("FileExtendInfo") is not None:
            self._FileExtendInfo = []
            for item in params.get("FileExtendInfo"):
                obj = AnchorExtendInfo()
                obj._deserialize(item)
                self._FileExtendInfo.append(obj)
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadFileResponse(AbstractModel):
    """UploadFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _FileId: 文件ID
        :type FileId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._FileId = None
        self._RequestId = None

    @property
    def FileId(self):
        return self._FileId

    @FileId.setter
    def FileId(self, FileId):
        self._FileId = FileId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._FileId = params.get("FileId")
        self._RequestId = params.get("RequestId")


class UploadFileResult(AbstractModel):
    """上传文件响应对象

    """

    def __init__(self):
        r"""
        :param _Storage: 存储区域（0私密区，1公共区），请严格按文件要求，上传到不同的区域
注意：此字段可能返回 null，表示取不到有效值。
        :type Storage: str
        :param _FilePath: 文件路径
注意：此字段可能返回 null，表示取不到有效值。
        :type FilePath: str
        """
        self._Storage = None
        self._FilePath = None

    @property
    def Storage(self):
        return self._Storage

    @Storage.setter
    def Storage(self, Storage):
        self._Storage = Storage

    @property
    def FilePath(self):
        return self._FilePath

    @FilePath.setter
    def FilePath(self, FilePath):
        self._FilePath = FilePath


    def _deserialize(self, params):
        self._Storage = params.get("Storage")
        self._FilePath = params.get("FilePath")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadOpenBankSubMerchantCredentialRequest(AbstractModel):
    """UploadOpenBankSubMerchantCredential请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户ID。
        :type ChannelMerchantId: str
        :param _ChannelSubMerchantId: 渠道子商户ID。
        :type ChannelSubMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-枚举类型-ChannelName。
        :type ChannelName: str
        :param _OutApplyId: 外部序列进件号。
        :type OutApplyId: str
        :param _CredentialType: 资质类型，详见附录-枚举类型-CredentialType。
        :type CredentialType: str
        :param _FileType: 文件类型。
合利宝渠道，文件类型为PNG/JPG格式。
        :type FileType: str
        :param _PaymentMethod: 支付方式。
合利宝渠道不需要传。
        :type PaymentMethod: str
        :param _CredentialContent: 资质文件内容。Base64编码，资质文件内容和链接二选一。
合利宝渠道，文件限制大小5M以内。
        :type CredentialContent: str
        :param _CredentialUrl: 资质文件链接。资质文件内容和链接二选一。
合利宝渠道，文件限制大小5M以内。
        :type CredentialUrl: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelSubMerchantId = None
        self._ChannelName = None
        self._OutApplyId = None
        self._CredentialType = None
        self._FileType = None
        self._PaymentMethod = None
        self._CredentialContent = None
        self._CredentialUrl = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelSubMerchantId(self):
        return self._ChannelSubMerchantId

    @ChannelSubMerchantId.setter
    def ChannelSubMerchantId(self, ChannelSubMerchantId):
        self._ChannelSubMerchantId = ChannelSubMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def OutApplyId(self):
        return self._OutApplyId

    @OutApplyId.setter
    def OutApplyId(self, OutApplyId):
        self._OutApplyId = OutApplyId

    @property
    def CredentialType(self):
        return self._CredentialType

    @CredentialType.setter
    def CredentialType(self, CredentialType):
        self._CredentialType = CredentialType

    @property
    def FileType(self):
        return self._FileType

    @FileType.setter
    def FileType(self, FileType):
        self._FileType = FileType

    @property
    def PaymentMethod(self):
        return self._PaymentMethod

    @PaymentMethod.setter
    def PaymentMethod(self, PaymentMethod):
        self._PaymentMethod = PaymentMethod

    @property
    def CredentialContent(self):
        return self._CredentialContent

    @CredentialContent.setter
    def CredentialContent(self, CredentialContent):
        self._CredentialContent = CredentialContent

    @property
    def CredentialUrl(self):
        return self._CredentialUrl

    @CredentialUrl.setter
    def CredentialUrl(self, CredentialUrl):
        self._CredentialUrl = CredentialUrl

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelSubMerchantId = params.get("ChannelSubMerchantId")
        self._ChannelName = params.get("ChannelName")
        self._OutApplyId = params.get("OutApplyId")
        self._CredentialType = params.get("CredentialType")
        self._FileType = params.get("FileType")
        self._PaymentMethod = params.get("PaymentMethod")
        self._CredentialContent = params.get("CredentialContent")
        self._CredentialUrl = params.get("CredentialUrl")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadOpenBankSubMerchantCredentialResponse(AbstractModel):
    """UploadOpenBankSubMerchantCredential返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 错误码。
        :type ErrCode: str
        :param _ErrMessage: 错误消息。
        :type ErrMessage: str
        :param _Result: 返回结果
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.UploadOpenBankSubMerchantCredentialResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = UploadOpenBankSubMerchantCredentialResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class UploadOpenBankSubMerchantCredentialResult(AbstractModel):
    """上传子商户资质文件返回值

    """

    def __init__(self):
        r"""
        :param _UploadStatus: 上传状态
SUCCESS：上传成功
FAILED：上传失败
PROCESSING:上传中
        :type UploadStatus: str
        :param _UploadMessage: 上传描述
注意：此字段可能返回 null，表示取不到有效值。
        :type UploadMessage: str
        :param _ChannelApplyId: 渠道上传流水号
        :type ChannelApplyId: str
        """
        self._UploadStatus = None
        self._UploadMessage = None
        self._ChannelApplyId = None

    @property
    def UploadStatus(self):
        return self._UploadStatus

    @UploadStatus.setter
    def UploadStatus(self, UploadStatus):
        self._UploadStatus = UploadStatus

    @property
    def UploadMessage(self):
        return self._UploadMessage

    @UploadMessage.setter
    def UploadMessage(self, UploadMessage):
        self._UploadMessage = UploadMessage

    @property
    def ChannelApplyId(self):
        return self._ChannelApplyId

    @ChannelApplyId.setter
    def ChannelApplyId(self, ChannelApplyId):
        self._ChannelApplyId = ChannelApplyId


    def _deserialize(self, params):
        self._UploadStatus = params.get("UploadStatus")
        self._UploadMessage = params.get("UploadMessage")
        self._ChannelApplyId = params.get("ChannelApplyId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadOrgFileRequest(AbstractModel):
    """UploadOrgFile请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _Storage: 存储区域（0私密区，1公共区），请严格按文件要求，上传到不同的区域
        :type Storage: str
        :param _FileMd5: 文件的md5值（为防止平台多次上传重复文件，文件名为文件md5,且不会覆盖，重复上传返回第一次上传成功的文件路径）
        :type FileMd5: str
        :param _FileContent: 文件内容（先将图片转换成二进制，再进行base64加密）
        :type FileContent: str
        :param _FileExtension: 文件扩展名（png,jpg,gif）
        :type FileExtension: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._Storage = None
        self._FileMd5 = None
        self._FileContent = None
        self._FileExtension = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def Storage(self):
        return self._Storage

    @Storage.setter
    def Storage(self, Storage):
        self._Storage = Storage

    @property
    def FileMd5(self):
        return self._FileMd5

    @FileMd5.setter
    def FileMd5(self, FileMd5):
        self._FileMd5 = FileMd5

    @property
    def FileContent(self):
        return self._FileContent

    @FileContent.setter
    def FileContent(self, FileContent):
        self._FileContent = FileContent

    @property
    def FileExtension(self):
        return self._FileExtension

    @FileExtension.setter
    def FileExtension(self, FileExtension):
        self._FileExtension = FileExtension

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._Storage = params.get("Storage")
        self._FileMd5 = params.get("FileMd5")
        self._FileContent = params.get("FileContent")
        self._FileExtension = params.get("FileExtension")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadOrgFileResponse(AbstractModel):
    """UploadOrgFile返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 上传机构文件响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.UploadFileResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = UploadFileResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class UploadTaxListRequest(AbstractModel):
    """UploadTaxList请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Channel: 平台渠道
        :type Channel: int
        :param _BeginMonth: 起始月份，YYYY-MM
        :type BeginMonth: str
        :param _EndMonth: 结束月份。如果只上传一个月，结束月份等于起始月份
        :type EndMonth: str
        :param _FileUrl: 完税列表下载地址
        :type FileUrl: str
        """
        self._Channel = None
        self._BeginMonth = None
        self._EndMonth = None
        self._FileUrl = None

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def BeginMonth(self):
        return self._BeginMonth

    @BeginMonth.setter
    def BeginMonth(self, BeginMonth):
        self._BeginMonth = BeginMonth

    @property
    def EndMonth(self):
        return self._EndMonth

    @EndMonth.setter
    def EndMonth(self, EndMonth):
        self._EndMonth = EndMonth

    @property
    def FileUrl(self):
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl


    def _deserialize(self, params):
        self._Channel = params.get("Channel")
        self._BeginMonth = params.get("BeginMonth")
        self._EndMonth = params.get("EndMonth")
        self._FileUrl = params.get("FileUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadTaxListResponse(AbstractModel):
    """UploadTaxList返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TaxId: 完税ID
        :type TaxId: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TaxId = None
        self._RequestId = None

    @property
    def TaxId(self):
        return self._TaxId

    @TaxId.setter
    def TaxId(self, TaxId):
        self._TaxId = TaxId

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TaxId = params.get("TaxId")
        self._RequestId = params.get("RequestId")


class UploadTaxPaymentRequest(AbstractModel):
    """UploadTaxPayment请求参数结构体

    """

    def __init__(self):
        r"""
        :param _Channel: 平台渠道
        :type Channel: int
        :param _TaxId: 完税ID
        :type TaxId: str
        :param _FileUrl: 完税列表下载地址
        :type FileUrl: str
        """
        self._Channel = None
        self._TaxId = None
        self._FileUrl = None

    @property
    def Channel(self):
        return self._Channel

    @Channel.setter
    def Channel(self, Channel):
        self._Channel = Channel

    @property
    def TaxId(self):
        return self._TaxId

    @TaxId.setter
    def TaxId(self, TaxId):
        self._TaxId = TaxId

    @property
    def FileUrl(self):
        return self._FileUrl

    @FileUrl.setter
    def FileUrl(self, FileUrl):
        self._FileUrl = FileUrl


    def _deserialize(self, params):
        self._Channel = params.get("Channel")
        self._TaxId = params.get("TaxId")
        self._FileUrl = params.get("FileUrl")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class UploadTaxPaymentResponse(AbstractModel):
    """UploadTaxPayment返回参数结构体

    """

    def __init__(self):
        r"""
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._RequestId = None

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._RequestId = params.get("RequestId")


class VerifyOpenBankAccountRequest(AbstractModel):
    """VerifyOpenBankAccount请求参数结构体

    """

    def __init__(self):
        r"""
        :param _ChannelMerchantId: 渠道商户号。外部接入平台入驻云企付平台下发
        :type ChannelMerchantId: str
        :param _ChannelName: 渠道名称。详见附录-云企付枚举类说明-ChannelName。
__TENPAY__: 商企付
        :type ChannelName: str
        :param _PayeeInfo: 收款方信息。
        :type PayeeInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankPayeeInfo`
        :param _NotifyUrl: 通知地址，如www.test.com。
        :type NotifyUrl: str
        :param _Environment: 环境类型。
__release__:生产环境
__sandbox__:沙箱环境
_不填默认为生产环境_
        :type Environment: str
        """
        self._ChannelMerchantId = None
        self._ChannelName = None
        self._PayeeInfo = None
        self._NotifyUrl = None
        self._Environment = None

    @property
    def ChannelMerchantId(self):
        return self._ChannelMerchantId

    @ChannelMerchantId.setter
    def ChannelMerchantId(self, ChannelMerchantId):
        self._ChannelMerchantId = ChannelMerchantId

    @property
    def ChannelName(self):
        return self._ChannelName

    @ChannelName.setter
    def ChannelName(self, ChannelName):
        self._ChannelName = ChannelName

    @property
    def PayeeInfo(self):
        return self._PayeeInfo

    @PayeeInfo.setter
    def PayeeInfo(self, PayeeInfo):
        self._PayeeInfo = PayeeInfo

    @property
    def NotifyUrl(self):
        return self._NotifyUrl

    @NotifyUrl.setter
    def NotifyUrl(self, NotifyUrl):
        self._NotifyUrl = NotifyUrl

    @property
    def Environment(self):
        return self._Environment

    @Environment.setter
    def Environment(self, Environment):
        self._Environment = Environment


    def _deserialize(self, params):
        self._ChannelMerchantId = params.get("ChannelMerchantId")
        self._ChannelName = params.get("ChannelName")
        if params.get("PayeeInfo") is not None:
            self._PayeeInfo = OpenBankPayeeInfo()
            self._PayeeInfo._deserialize(params.get("PayeeInfo"))
        self._NotifyUrl = params.get("NotifyUrl")
        self._Environment = params.get("Environment")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class VerifyOpenBankAccountResponse(AbstractModel):
    """VerifyOpenBankAccount返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrCode: 业务系统返回码，SUCCESS表示成功，其他表示失败。
        :type ErrCode: str
        :param _ErrMessage: 业务系统返回消息。
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _Result: 打款验证结果。前端使用url字段，根据指引完成打款验证动作
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.VerifyOpenBankAccountResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrCode = None
        self._ErrMessage = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrCode = params.get("ErrCode")
        self._ErrMessage = params.get("ErrMessage")
        if params.get("Result") is not None:
            self._Result = VerifyOpenBankAccountResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class VerifyOpenBankAccountResult(AbstractModel):
    """打款验证响应结果结构体

    """

    def __init__(self):
        r"""
        :param _VerifyState: 打款验证状态。
 INIT("打款中"),
PENDING("打款成功待验证"),
VERIFIED("验证成功"),
FAILED("打款失败"),
VERIFY_FAILED("验证失败")
        :type VerifyState: str
        :param _RedirectInfo: 重定向参数，用于客户端跳转，收款商户未完成打款验证时返回该参数
        :type RedirectInfo: :class:`tencentcloud.cpdp.v20190820.models.OpenBankRedirectInfo`
        """
        self._VerifyState = None
        self._RedirectInfo = None

    @property
    def VerifyState(self):
        return self._VerifyState

    @VerifyState.setter
    def VerifyState(self, VerifyState):
        self._VerifyState = VerifyState

    @property
    def RedirectInfo(self):
        return self._RedirectInfo

    @RedirectInfo.setter
    def RedirectInfo(self, RedirectInfo):
        self._RedirectInfo = RedirectInfo


    def _deserialize(self, params):
        self._VerifyState = params.get("VerifyState")
        if params.get("RedirectInfo") is not None:
            self._RedirectInfo = OpenBankRedirectInfo()
            self._RedirectInfo._deserialize(params.get("RedirectInfo"))
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewContractRequest(AbstractModel):
    """ViewContract请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutContractId: 外部合同主键编号（ContractId或OutContractId必须传一个）
        :type OutContractId: str
        :param _ContractId: 合同主键（ContractId或OutContractId必须传一个）
        :type ContractId: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutContractId = None
        self._ContractId = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutContractId(self):
        return self._OutContractId

    @OutContractId.setter
    def OutContractId(self, OutContractId):
        self._OutContractId = OutContractId

    @property
    def ContractId(self):
        return self._ContractId

    @ContractId.setter
    def ContractId(self, ContractId):
        self._ContractId = ContractId

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutContractId = params.get("OutContractId")
        self._ContractId = params.get("ContractId")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewContractResponse(AbstractModel):
    """ViewContract返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 合同明细响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ViewContractResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = ViewContractResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ViewContractResult(AbstractModel):
    """合同明细响应对象

    """

    def __init__(self):
        r"""
        :param _PaymentTag: 支付标签（唯一性）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentTag: str
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _AgentNo: 机构编号
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentNo: str
        :param _ContractOptionFour: 合同选项值4
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionFour: str
        :param _ContractOptionTwo: 合同选项值2
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionTwo: str
        :param _Status: 合同状态（0未审核，1已审核，2审核未通过，3待审核，4已删除，5初审通过）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _PaymentId: 支付方式编号
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentId: str
        :param _Fee: 商户签约扣率
注意：此字段可能返回 null，表示取不到有效值。
        :type Fee: str
        :param _PaymentOptionFive: 合同选项名称5
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionFive: str
        :param _OutContractId: 机构合同主键
注意：此字段可能返回 null，表示取不到有效值。
        :type OutContractId: str
        :param _ChannelExtJson: 不同的支付方式对于进件有不同的个性化需求，支付方式字段都是以双下划写开头的字段名称，请以支付方式规定的格式传值
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelExtJson: str
        :param _ContractOptionFive: 合同选项值5
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionFive: str
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _StartDate: 生效日期
注意：此字段可能返回 null，表示取不到有效值。
        :type StartDate: str
        :param _Address: 详细地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _EndDate: 过期日期
注意：此字段可能返回 null，表示取不到有效值。
        :type EndDate: str
        :param _ContractOptionSix: 合同选项值6
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionSix: str
        :param _PaymentOptionSeven: 合同选项名称7
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionSeven: str
        :param _PictureTwo: 合同照片补充【私密区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureTwo: str
        :param _MerchantNo: 商户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        :param _AgentName: 机构名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        :param _ContractOptionOther: 合同选项值8
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionOther: str
        :param _ContractOptionThree: 合同选项值3
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionThree: str
        :param _Country: 县/区
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: str
        :param _ShopCount: 合同关联的门店数量
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopCount: str
        :param _PaymentOptionThree: 合同选项名称3
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionThree: str
        :param _PaymentClassificationName: 支付方式行业名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentClassificationName: str
        :param _ContractOptionSeven: 合同选项值7
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionSeven: str
        :param _PaymentOptionFour: 合同选项名称4
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionFour: str
        :param _PaymentClassificationLimit: 商户签约扣率封顶值（分为单位）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentClassificationLimit: str
        :param _Remark: 审核备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _PaymentOptionSix: 合同选项名称6
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionSix: str
        :param _MerchantName: 品牌名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantName: str
        :param _ContractOptionOne: 合同选项值1
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionOne: str
        :param _PaymentOptionOther: 合同选项名称8
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionOther: str
        :param _PaymentOptionTwo: 合同选项名称2
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionTwo: str
        :param _PaymentOptionOne: 合同选项名称1
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionOne: str
        :param _UpdateTime: 更新时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _ContactTelephone: 联系人电话
注意：此字段可能返回 null，表示取不到有效值。
        :type ContactTelephone: str
        :param _Contact: 联系人
注意：此字段可能返回 null，表示取不到有效值。
        :type Contact: str
        :param _SignDate: 签约日期
注意：此字段可能返回 null，表示取不到有效值。
        :type SignDate: str
        :param _PaymentOptionNine: 合同选项名称9
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionNine: str
        :param _PaymentName: 付款方式名称
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentName: str
        :param _PaymentInternalName: 付款方式名称（内部名称）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentInternalName: str
        :param _ContractOptionTen: 合同选项值10
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionTen: str
        :param _Code: 合同编号
注意：此字段可能返回 null，表示取不到有效值。
        :type Code: str
        :param _PictureOne: 合同照片【私密区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureOne: str
        :param _SignMan: 签约人
注意：此字段可能返回 null，表示取不到有效值。
        :type SignMan: str
        :param _ChannelNo: 渠道号
注意：此字段可能返回 null，表示取不到有效值。
        :type ChannelNo: str
        :param _AddTime: 添加时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type AddTime: str
        :param _AutoSign: 是否自动续签（1是，0否）
注意：此字段可能返回 null，表示取不到有效值。
        :type AutoSign: str
        :param _ContractOptionNine: 合同选项值9
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractOptionNine: str
        :param _CityId: 城市编码
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        :param _PaymentType: 交易类型（多个以小写逗号分开，0现金，1刷卡，2主扫，3被扫，4JSPAY，5预授权）
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentType: str
        :param _PaymentClassificationId: 支付方式行业编号
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentClassificationId: str
        :param _BrandName: 品牌名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BrandName: str
        :param _PaymentOptionTen: 合同选项名称10
注意：此字段可能返回 null，表示取不到有效值。
        :type PaymentOptionTen: str
        :param _ContractId: 合同主键
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractId: str
        """
        self._PaymentTag = None
        self._City = None
        self._AgentNo = None
        self._ContractOptionFour = None
        self._ContractOptionTwo = None
        self._Status = None
        self._PaymentId = None
        self._Fee = None
        self._PaymentOptionFive = None
        self._OutContractId = None
        self._ChannelExtJson = None
        self._ContractOptionFive = None
        self._Province = None
        self._StartDate = None
        self._Address = None
        self._EndDate = None
        self._ContractOptionSix = None
        self._PaymentOptionSeven = None
        self._PictureTwo = None
        self._MerchantNo = None
        self._AgentName = None
        self._ContractOptionOther = None
        self._ContractOptionThree = None
        self._Country = None
        self._ShopCount = None
        self._PaymentOptionThree = None
        self._PaymentClassificationName = None
        self._ContractOptionSeven = None
        self._PaymentOptionFour = None
        self._PaymentClassificationLimit = None
        self._Remark = None
        self._PaymentOptionSix = None
        self._MerchantName = None
        self._ContractOptionOne = None
        self._PaymentOptionOther = None
        self._PaymentOptionTwo = None
        self._PaymentOptionOne = None
        self._UpdateTime = None
        self._ContactTelephone = None
        self._Contact = None
        self._SignDate = None
        self._PaymentOptionNine = None
        self._PaymentName = None
        self._PaymentInternalName = None
        self._ContractOptionTen = None
        self._Code = None
        self._PictureOne = None
        self._SignMan = None
        self._ChannelNo = None
        self._AddTime = None
        self._AutoSign = None
        self._ContractOptionNine = None
        self._CityId = None
        self._PaymentType = None
        self._PaymentClassificationId = None
        self._BrandName = None
        self._PaymentOptionTen = None
        self._ContractId = None

    @property
    def PaymentTag(self):
        return self._PaymentTag

    @PaymentTag.setter
    def PaymentTag(self, PaymentTag):
        self._PaymentTag = PaymentTag

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def AgentNo(self):
        return self._AgentNo

    @AgentNo.setter
    def AgentNo(self, AgentNo):
        self._AgentNo = AgentNo

    @property
    def ContractOptionFour(self):
        return self._ContractOptionFour

    @ContractOptionFour.setter
    def ContractOptionFour(self, ContractOptionFour):
        self._ContractOptionFour = ContractOptionFour

    @property
    def ContractOptionTwo(self):
        return self._ContractOptionTwo

    @ContractOptionTwo.setter
    def ContractOptionTwo(self, ContractOptionTwo):
        self._ContractOptionTwo = ContractOptionTwo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def PaymentId(self):
        return self._PaymentId

    @PaymentId.setter
    def PaymentId(self, PaymentId):
        self._PaymentId = PaymentId

    @property
    def Fee(self):
        return self._Fee

    @Fee.setter
    def Fee(self, Fee):
        self._Fee = Fee

    @property
    def PaymentOptionFive(self):
        return self._PaymentOptionFive

    @PaymentOptionFive.setter
    def PaymentOptionFive(self, PaymentOptionFive):
        self._PaymentOptionFive = PaymentOptionFive

    @property
    def OutContractId(self):
        return self._OutContractId

    @OutContractId.setter
    def OutContractId(self, OutContractId):
        self._OutContractId = OutContractId

    @property
    def ChannelExtJson(self):
        return self._ChannelExtJson

    @ChannelExtJson.setter
    def ChannelExtJson(self, ChannelExtJson):
        self._ChannelExtJson = ChannelExtJson

    @property
    def ContractOptionFive(self):
        return self._ContractOptionFive

    @ContractOptionFive.setter
    def ContractOptionFive(self, ContractOptionFive):
        self._ContractOptionFive = ContractOptionFive

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def StartDate(self):
        return self._StartDate

    @StartDate.setter
    def StartDate(self, StartDate):
        self._StartDate = StartDate

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def EndDate(self):
        return self._EndDate

    @EndDate.setter
    def EndDate(self, EndDate):
        self._EndDate = EndDate

    @property
    def ContractOptionSix(self):
        return self._ContractOptionSix

    @ContractOptionSix.setter
    def ContractOptionSix(self, ContractOptionSix):
        self._ContractOptionSix = ContractOptionSix

    @property
    def PaymentOptionSeven(self):
        return self._PaymentOptionSeven

    @PaymentOptionSeven.setter
    def PaymentOptionSeven(self, PaymentOptionSeven):
        self._PaymentOptionSeven = PaymentOptionSeven

    @property
    def PictureTwo(self):
        return self._PictureTwo

    @PictureTwo.setter
    def PictureTwo(self, PictureTwo):
        self._PictureTwo = PictureTwo

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def ContractOptionOther(self):
        return self._ContractOptionOther

    @ContractOptionOther.setter
    def ContractOptionOther(self, ContractOptionOther):
        self._ContractOptionOther = ContractOptionOther

    @property
    def ContractOptionThree(self):
        return self._ContractOptionThree

    @ContractOptionThree.setter
    def ContractOptionThree(self, ContractOptionThree):
        self._ContractOptionThree = ContractOptionThree

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def ShopCount(self):
        return self._ShopCount

    @ShopCount.setter
    def ShopCount(self, ShopCount):
        self._ShopCount = ShopCount

    @property
    def PaymentOptionThree(self):
        return self._PaymentOptionThree

    @PaymentOptionThree.setter
    def PaymentOptionThree(self, PaymentOptionThree):
        self._PaymentOptionThree = PaymentOptionThree

    @property
    def PaymentClassificationName(self):
        return self._PaymentClassificationName

    @PaymentClassificationName.setter
    def PaymentClassificationName(self, PaymentClassificationName):
        self._PaymentClassificationName = PaymentClassificationName

    @property
    def ContractOptionSeven(self):
        return self._ContractOptionSeven

    @ContractOptionSeven.setter
    def ContractOptionSeven(self, ContractOptionSeven):
        self._ContractOptionSeven = ContractOptionSeven

    @property
    def PaymentOptionFour(self):
        return self._PaymentOptionFour

    @PaymentOptionFour.setter
    def PaymentOptionFour(self, PaymentOptionFour):
        self._PaymentOptionFour = PaymentOptionFour

    @property
    def PaymentClassificationLimit(self):
        return self._PaymentClassificationLimit

    @PaymentClassificationLimit.setter
    def PaymentClassificationLimit(self, PaymentClassificationLimit):
        self._PaymentClassificationLimit = PaymentClassificationLimit

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def PaymentOptionSix(self):
        return self._PaymentOptionSix

    @PaymentOptionSix.setter
    def PaymentOptionSix(self, PaymentOptionSix):
        self._PaymentOptionSix = PaymentOptionSix

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def ContractOptionOne(self):
        return self._ContractOptionOne

    @ContractOptionOne.setter
    def ContractOptionOne(self, ContractOptionOne):
        self._ContractOptionOne = ContractOptionOne

    @property
    def PaymentOptionOther(self):
        return self._PaymentOptionOther

    @PaymentOptionOther.setter
    def PaymentOptionOther(self, PaymentOptionOther):
        self._PaymentOptionOther = PaymentOptionOther

    @property
    def PaymentOptionTwo(self):
        return self._PaymentOptionTwo

    @PaymentOptionTwo.setter
    def PaymentOptionTwo(self, PaymentOptionTwo):
        self._PaymentOptionTwo = PaymentOptionTwo

    @property
    def PaymentOptionOne(self):
        return self._PaymentOptionOne

    @PaymentOptionOne.setter
    def PaymentOptionOne(self, PaymentOptionOne):
        self._PaymentOptionOne = PaymentOptionOne

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def ContactTelephone(self):
        return self._ContactTelephone

    @ContactTelephone.setter
    def ContactTelephone(self, ContactTelephone):
        self._ContactTelephone = ContactTelephone

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def SignDate(self):
        return self._SignDate

    @SignDate.setter
    def SignDate(self, SignDate):
        self._SignDate = SignDate

    @property
    def PaymentOptionNine(self):
        return self._PaymentOptionNine

    @PaymentOptionNine.setter
    def PaymentOptionNine(self, PaymentOptionNine):
        self._PaymentOptionNine = PaymentOptionNine

    @property
    def PaymentName(self):
        return self._PaymentName

    @PaymentName.setter
    def PaymentName(self, PaymentName):
        self._PaymentName = PaymentName

    @property
    def PaymentInternalName(self):
        return self._PaymentInternalName

    @PaymentInternalName.setter
    def PaymentInternalName(self, PaymentInternalName):
        self._PaymentInternalName = PaymentInternalName

    @property
    def ContractOptionTen(self):
        return self._ContractOptionTen

    @ContractOptionTen.setter
    def ContractOptionTen(self, ContractOptionTen):
        self._ContractOptionTen = ContractOptionTen

    @property
    def Code(self):
        return self._Code

    @Code.setter
    def Code(self, Code):
        self._Code = Code

    @property
    def PictureOne(self):
        return self._PictureOne

    @PictureOne.setter
    def PictureOne(self, PictureOne):
        self._PictureOne = PictureOne

    @property
    def SignMan(self):
        return self._SignMan

    @SignMan.setter
    def SignMan(self, SignMan):
        self._SignMan = SignMan

    @property
    def ChannelNo(self):
        return self._ChannelNo

    @ChannelNo.setter
    def ChannelNo(self, ChannelNo):
        self._ChannelNo = ChannelNo

    @property
    def AddTime(self):
        return self._AddTime

    @AddTime.setter
    def AddTime(self, AddTime):
        self._AddTime = AddTime

    @property
    def AutoSign(self):
        return self._AutoSign

    @AutoSign.setter
    def AutoSign(self, AutoSign):
        self._AutoSign = AutoSign

    @property
    def ContractOptionNine(self):
        return self._ContractOptionNine

    @ContractOptionNine.setter
    def ContractOptionNine(self, ContractOptionNine):
        self._ContractOptionNine = ContractOptionNine

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def PaymentType(self):
        return self._PaymentType

    @PaymentType.setter
    def PaymentType(self, PaymentType):
        self._PaymentType = PaymentType

    @property
    def PaymentClassificationId(self):
        return self._PaymentClassificationId

    @PaymentClassificationId.setter
    def PaymentClassificationId(self, PaymentClassificationId):
        self._PaymentClassificationId = PaymentClassificationId

    @property
    def BrandName(self):
        return self._BrandName

    @BrandName.setter
    def BrandName(self, BrandName):
        self._BrandName = BrandName

    @property
    def PaymentOptionTen(self):
        return self._PaymentOptionTen

    @PaymentOptionTen.setter
    def PaymentOptionTen(self, PaymentOptionTen):
        self._PaymentOptionTen = PaymentOptionTen

    @property
    def ContractId(self):
        return self._ContractId

    @ContractId.setter
    def ContractId(self, ContractId):
        self._ContractId = ContractId


    def _deserialize(self, params):
        self._PaymentTag = params.get("PaymentTag")
        self._City = params.get("City")
        self._AgentNo = params.get("AgentNo")
        self._ContractOptionFour = params.get("ContractOptionFour")
        self._ContractOptionTwo = params.get("ContractOptionTwo")
        self._Status = params.get("Status")
        self._PaymentId = params.get("PaymentId")
        self._Fee = params.get("Fee")
        self._PaymentOptionFive = params.get("PaymentOptionFive")
        self._OutContractId = params.get("OutContractId")
        self._ChannelExtJson = params.get("ChannelExtJson")
        self._ContractOptionFive = params.get("ContractOptionFive")
        self._Province = params.get("Province")
        self._StartDate = params.get("StartDate")
        self._Address = params.get("Address")
        self._EndDate = params.get("EndDate")
        self._ContractOptionSix = params.get("ContractOptionSix")
        self._PaymentOptionSeven = params.get("PaymentOptionSeven")
        self._PictureTwo = params.get("PictureTwo")
        self._MerchantNo = params.get("MerchantNo")
        self._AgentName = params.get("AgentName")
        self._ContractOptionOther = params.get("ContractOptionOther")
        self._ContractOptionThree = params.get("ContractOptionThree")
        self._Country = params.get("Country")
        self._ShopCount = params.get("ShopCount")
        self._PaymentOptionThree = params.get("PaymentOptionThree")
        self._PaymentClassificationName = params.get("PaymentClassificationName")
        self._ContractOptionSeven = params.get("ContractOptionSeven")
        self._PaymentOptionFour = params.get("PaymentOptionFour")
        self._PaymentClassificationLimit = params.get("PaymentClassificationLimit")
        self._Remark = params.get("Remark")
        self._PaymentOptionSix = params.get("PaymentOptionSix")
        self._MerchantName = params.get("MerchantName")
        self._ContractOptionOne = params.get("ContractOptionOne")
        self._PaymentOptionOther = params.get("PaymentOptionOther")
        self._PaymentOptionTwo = params.get("PaymentOptionTwo")
        self._PaymentOptionOne = params.get("PaymentOptionOne")
        self._UpdateTime = params.get("UpdateTime")
        self._ContactTelephone = params.get("ContactTelephone")
        self._Contact = params.get("Contact")
        self._SignDate = params.get("SignDate")
        self._PaymentOptionNine = params.get("PaymentOptionNine")
        self._PaymentName = params.get("PaymentName")
        self._PaymentInternalName = params.get("PaymentInternalName")
        self._ContractOptionTen = params.get("ContractOptionTen")
        self._Code = params.get("Code")
        self._PictureOne = params.get("PictureOne")
        self._SignMan = params.get("SignMan")
        self._ChannelNo = params.get("ChannelNo")
        self._AddTime = params.get("AddTime")
        self._AutoSign = params.get("AutoSign")
        self._ContractOptionNine = params.get("ContractOptionNine")
        self._CityId = params.get("CityId")
        self._PaymentType = params.get("PaymentType")
        self._PaymentClassificationId = params.get("PaymentClassificationId")
        self._BrandName = params.get("BrandName")
        self._PaymentOptionTen = params.get("PaymentOptionTen")
        self._ContractId = params.get("ContractId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewMerchantRequest(AbstractModel):
    """ViewMerchant请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutMerchantId: 外部商户主键编号（MerchantNo或OutMerchantId必须传一个）
        :type OutMerchantId: str
        :param _MerchantNo: 商户编号（MerchantNo或OutMerchantId必须传一个）
        :type MerchantNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutMerchantId = None
        self._MerchantNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutMerchantId(self):
        return self._OutMerchantId

    @OutMerchantId.setter
    def OutMerchantId(self, OutMerchantId):
        self._OutMerchantId = OutMerchantId

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutMerchantId = params.get("OutMerchantId")
        self._MerchantNo = params.get("MerchantNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewMerchantResponse(AbstractModel):
    """ViewMerchant返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 商户明细响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ViewMerchantResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = ViewMerchantResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ViewMerchantResult(AbstractModel):
    """商户明细响应对象

    """

    def __init__(self):
        r"""
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _TaxCollectionPicture: 税务登记证图片【私密区】
注意：此字段可能返回 null，表示取不到有效值。
        :type TaxCollectionPicture: str
        :param _BossIdNo: 法人证件号码
注意：此字段可能返回 null，表示取不到有效值。
        :type BossIdNo: str
        :param _AccountIdNo: 法人亲属证件号码
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountIdNo: str
        :param _OtherPictureThree: 其他资料3
注意：此字段可能返回 null，表示取不到有效值。
        :type OtherPictureThree: str
        :param _AccountIdType: 法人亲属证件类型（1居民身份证,2临时居民身份证,3居民户口簿,4护照,5港澳居民来往内地通行证,6回乡证,7军人证,8武警身份证,9其他法定文件）结算账户人身份为法人亲属时必填
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountIdType: str
        :param _Status: 商户状态（0未审核，1已审核，2审核未通过，3待审核，4已删除，5初审通过）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _BusinessLicensePicture: 营业执照图片【私密区】（系统返回的图片路径）
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicensePicture: str
        :param _BrandName: 品牌名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BrandName: str
        :param _BossPositive: 法人身份证正面【私密区】（系统返回的图片路径）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossPositive: str
        :param _AppCount: 开通应用数量
注意：此字段可能返回 null，表示取不到有效值。
        :type AppCount: str
        :param _BossBack: 法人身份证背面【私密区】（系统返回的图片路径）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossBack: str
        :param _OrganizationCodePicture: 组织机构代码证图片【私密区】
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationCodePicture: str
        :param _BusinessLicenseEndDate: 营业执照过期时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicenseEndDate: str
        :param _OrganizationCodeNo: 组织机构代码证号
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationCodeNo: str
        :param _AgentNo: 机构编号
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentNo: str
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _BossStartDate: 法人证件生效时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossStartDate: str
        :param _UpdateTime: 更新时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _BankNo: 清算联行号，开户行行号
注意：此字段可能返回 null，表示取不到有效值。
        :type BankNo: str
        :param _TaxCollectionStartDate: 税务登记证生效时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type TaxCollectionStartDate: str
        :param _BusinessLicenseStartDate: 营业执照生效时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicenseStartDate: str
        :param _AccountManagerId: 客户经理用户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountManagerId: str
        :param _ClassificationIds: 分类编号(多个以小写逗号分开)
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassificationIds: str
        :param _BusinessLicenseType: 营业执照类型（1三证合一，2非三证合一）
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicenseType: str
        :param _BossEndDate: 法人证件过期时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossEndDate: str
        :param _BusinessLicenseNo: 营业执照编号（系统有唯一性校验）
注意：此字段可能返回 null，表示取不到有效值。
        :type BusinessLicenseNo: str
        :param _AgentName: 机构名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        :param _Intro: 商户简介
注意：此字段可能返回 null，表示取不到有效值。
        :type Intro: str
        :param _BossIdType: 法人证件类型（1居民身份证,2临时居民身份证,3居民户口簿,4护照,5港澳居民来往内地通行证,6回乡证,7军人证,8武警身份证,9其他法定文件）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossIdType: str
        :param _AddTime: 添加时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type AddTime: str
        :param _ShopCount: 门店数量
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopCount: str
        :param _AccountBoss: 结算账户人身份（1法人，2法人亲属），结算帐户为对私时必填
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountBoss: str
        :param _ClassificationNames: 分类名称(多个以小写逗号分开)
注意：此字段可能返回 null，表示取不到有效值。
        :type ClassificationNames: str
        :param _BossTelephone: 法人电话
注意：此字段可能返回 null，表示取不到有效值。
        :type BossTelephone: str
        :param _AccountManagerName: 客户经理姓名，必须为系统后台的管理员真实姓名
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountManagerName: str
        :param _TerminalCount: 终端数量
注意：此字段可能返回 null，表示取不到有效值。
        :type TerminalCount: str
        :param _Remark: 审核备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _FinancialContact: 财务联系人
注意：此字段可能返回 null，表示取不到有效值。
        :type FinancialContact: str
        :param _MerchantName: 商户名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantName: str
        :param _BossSex: 法人性别（1男，2女）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossSex: str
        :param _MerchantNo: 商户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        :param _BossAddress: 法人住址
注意：此字段可能返回 null，表示取不到有效值。
        :type BossAddress: str
        :param _Country: 县/区
注意：此字段可能返回 null，表示取不到有效值。
        :type Country: str
        :param _Address: 详细地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _BossJob: 法人职业
注意：此字段可能返回 null，表示取不到有效值。
        :type BossJob: str
        :param _LicencePicture: 许可证图片【私密区】
注意：此字段可能返回 null，表示取不到有效值。
        :type LicencePicture: str
        :param _OrganizationCodeEndDate: 组织机构代码证过期时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationCodeEndDate: str
        :param _OpenHours: 营业时间，多个以小写逗号分开(9:00-12:00,13:00-18:00)
注意：此字段可能返回 null，表示取不到有效值。
        :type OpenHours: str
        :param _OtherPictureTwo: 其他资料2
注意：此字段可能返回 null，表示取不到有效值。
        :type OtherPictureTwo: str
        :param _OtherPictureOne: 其他资料1
注意：此字段可能返回 null，表示取不到有效值。
        :type OtherPictureOne: str
        :param _AccountName: 银行户名
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountName: str
        :param _ContractCount: 合同数量
注意：此字段可能返回 null，表示取不到有效值。
        :type ContractCount: str
        :param _LicencePictureTwo: 授权文件【私密区】（当结算帐户身份为法人亲属时必传）
注意：此字段可能返回 null，表示取不到有效值。
        :type LicencePictureTwo: str
        :param _AccountNo: 银行账号
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountNo: str
        :param _BossEmail: 法人邮箱
注意：此字段可能返回 null，表示取不到有效值。
        :type BossEmail: str
        :param _AccountType: 结算账户类型（2对私，1对公）
注意：此字段可能返回 null，表示取不到有效值。
        :type AccountType: str
        :param _TaxCollectionEndDate: 税务登记证过期时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type TaxCollectionEndDate: str
        :param _BankName: 开户行名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BankName: str
        :param _Telephone: 联系电话
注意：此字段可能返回 null，表示取不到有效值。
        :type Telephone: str
        :param _OutMerchantId: 外部商户主键编号
注意：此字段可能返回 null，表示取不到有效值。
        :type OutMerchantId: str
        :param _CityId: 城市编码
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        :param _BossIdCount: 法人证件国别/地区（中国CHN，香港HKG，澳门MAC，台湾CTN）
注意：此字段可能返回 null，表示取不到有效值。
        :type BossIdCount: str
        :param _Tag: 商户标记，自定义参数
注意：此字段可能返回 null，表示取不到有效值。
        :type Tag: str
        :param _FinancialTelephone: 财务联系人电话
注意：此字段可能返回 null，表示取不到有效值。
        :type FinancialTelephone: str
        :param _BossName: 法人姓名
注意：此字段可能返回 null，表示取不到有效值。
        :type BossName: str
        :param _OrganizationCodeStartDate: 组织机构代码证生效时间（yyyy-mm-dd）
注意：此字段可能返回 null，表示取不到有效值。
        :type OrganizationCodeStartDate: str
        :param _Logo: 商户logo【公共区】
注意：此字段可能返回 null，表示取不到有效值。
        :type Logo: str
        :param _OtherPictureFour: 其他资料4
注意：此字段可能返回 null，表示取不到有效值。
        :type OtherPictureFour: str
        :param _TaxCollectionNo: 税务登记证号
注意：此字段可能返回 null，表示取不到有效值。
        :type TaxCollectionNo: str
        """
        self._City = None
        self._TaxCollectionPicture = None
        self._BossIdNo = None
        self._AccountIdNo = None
        self._OtherPictureThree = None
        self._AccountIdType = None
        self._Status = None
        self._BusinessLicensePicture = None
        self._BrandName = None
        self._BossPositive = None
        self._AppCount = None
        self._BossBack = None
        self._OrganizationCodePicture = None
        self._BusinessLicenseEndDate = None
        self._OrganizationCodeNo = None
        self._AgentNo = None
        self._Province = None
        self._BossStartDate = None
        self._UpdateTime = None
        self._BankNo = None
        self._TaxCollectionStartDate = None
        self._BusinessLicenseStartDate = None
        self._AccountManagerId = None
        self._ClassificationIds = None
        self._BusinessLicenseType = None
        self._BossEndDate = None
        self._BusinessLicenseNo = None
        self._AgentName = None
        self._Intro = None
        self._BossIdType = None
        self._AddTime = None
        self._ShopCount = None
        self._AccountBoss = None
        self._ClassificationNames = None
        self._BossTelephone = None
        self._AccountManagerName = None
        self._TerminalCount = None
        self._Remark = None
        self._FinancialContact = None
        self._MerchantName = None
        self._BossSex = None
        self._MerchantNo = None
        self._BossAddress = None
        self._Country = None
        self._Address = None
        self._BossJob = None
        self._LicencePicture = None
        self._OrganizationCodeEndDate = None
        self._OpenHours = None
        self._OtherPictureTwo = None
        self._OtherPictureOne = None
        self._AccountName = None
        self._ContractCount = None
        self._LicencePictureTwo = None
        self._AccountNo = None
        self._BossEmail = None
        self._AccountType = None
        self._TaxCollectionEndDate = None
        self._BankName = None
        self._Telephone = None
        self._OutMerchantId = None
        self._CityId = None
        self._BossIdCount = None
        self._Tag = None
        self._FinancialTelephone = None
        self._BossName = None
        self._OrganizationCodeStartDate = None
        self._Logo = None
        self._OtherPictureFour = None
        self._TaxCollectionNo = None

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def TaxCollectionPicture(self):
        return self._TaxCollectionPicture

    @TaxCollectionPicture.setter
    def TaxCollectionPicture(self, TaxCollectionPicture):
        self._TaxCollectionPicture = TaxCollectionPicture

    @property
    def BossIdNo(self):
        return self._BossIdNo

    @BossIdNo.setter
    def BossIdNo(self, BossIdNo):
        self._BossIdNo = BossIdNo

    @property
    def AccountIdNo(self):
        return self._AccountIdNo

    @AccountIdNo.setter
    def AccountIdNo(self, AccountIdNo):
        self._AccountIdNo = AccountIdNo

    @property
    def OtherPictureThree(self):
        return self._OtherPictureThree

    @OtherPictureThree.setter
    def OtherPictureThree(self, OtherPictureThree):
        self._OtherPictureThree = OtherPictureThree

    @property
    def AccountIdType(self):
        return self._AccountIdType

    @AccountIdType.setter
    def AccountIdType(self, AccountIdType):
        self._AccountIdType = AccountIdType

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def BusinessLicensePicture(self):
        return self._BusinessLicensePicture

    @BusinessLicensePicture.setter
    def BusinessLicensePicture(self, BusinessLicensePicture):
        self._BusinessLicensePicture = BusinessLicensePicture

    @property
    def BrandName(self):
        return self._BrandName

    @BrandName.setter
    def BrandName(self, BrandName):
        self._BrandName = BrandName

    @property
    def BossPositive(self):
        return self._BossPositive

    @BossPositive.setter
    def BossPositive(self, BossPositive):
        self._BossPositive = BossPositive

    @property
    def AppCount(self):
        return self._AppCount

    @AppCount.setter
    def AppCount(self, AppCount):
        self._AppCount = AppCount

    @property
    def BossBack(self):
        return self._BossBack

    @BossBack.setter
    def BossBack(self, BossBack):
        self._BossBack = BossBack

    @property
    def OrganizationCodePicture(self):
        return self._OrganizationCodePicture

    @OrganizationCodePicture.setter
    def OrganizationCodePicture(self, OrganizationCodePicture):
        self._OrganizationCodePicture = OrganizationCodePicture

    @property
    def BusinessLicenseEndDate(self):
        return self._BusinessLicenseEndDate

    @BusinessLicenseEndDate.setter
    def BusinessLicenseEndDate(self, BusinessLicenseEndDate):
        self._BusinessLicenseEndDate = BusinessLicenseEndDate

    @property
    def OrganizationCodeNo(self):
        return self._OrganizationCodeNo

    @OrganizationCodeNo.setter
    def OrganizationCodeNo(self, OrganizationCodeNo):
        self._OrganizationCodeNo = OrganizationCodeNo

    @property
    def AgentNo(self):
        return self._AgentNo

    @AgentNo.setter
    def AgentNo(self, AgentNo):
        self._AgentNo = AgentNo

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def BossStartDate(self):
        return self._BossStartDate

    @BossStartDate.setter
    def BossStartDate(self, BossStartDate):
        self._BossStartDate = BossStartDate

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def BankNo(self):
        return self._BankNo

    @BankNo.setter
    def BankNo(self, BankNo):
        self._BankNo = BankNo

    @property
    def TaxCollectionStartDate(self):
        return self._TaxCollectionStartDate

    @TaxCollectionStartDate.setter
    def TaxCollectionStartDate(self, TaxCollectionStartDate):
        self._TaxCollectionStartDate = TaxCollectionStartDate

    @property
    def BusinessLicenseStartDate(self):
        return self._BusinessLicenseStartDate

    @BusinessLicenseStartDate.setter
    def BusinessLicenseStartDate(self, BusinessLicenseStartDate):
        self._BusinessLicenseStartDate = BusinessLicenseStartDate

    @property
    def AccountManagerId(self):
        return self._AccountManagerId

    @AccountManagerId.setter
    def AccountManagerId(self, AccountManagerId):
        self._AccountManagerId = AccountManagerId

    @property
    def ClassificationIds(self):
        return self._ClassificationIds

    @ClassificationIds.setter
    def ClassificationIds(self, ClassificationIds):
        self._ClassificationIds = ClassificationIds

    @property
    def BusinessLicenseType(self):
        return self._BusinessLicenseType

    @BusinessLicenseType.setter
    def BusinessLicenseType(self, BusinessLicenseType):
        self._BusinessLicenseType = BusinessLicenseType

    @property
    def BossEndDate(self):
        return self._BossEndDate

    @BossEndDate.setter
    def BossEndDate(self, BossEndDate):
        self._BossEndDate = BossEndDate

    @property
    def BusinessLicenseNo(self):
        return self._BusinessLicenseNo

    @BusinessLicenseNo.setter
    def BusinessLicenseNo(self, BusinessLicenseNo):
        self._BusinessLicenseNo = BusinessLicenseNo

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def Intro(self):
        return self._Intro

    @Intro.setter
    def Intro(self, Intro):
        self._Intro = Intro

    @property
    def BossIdType(self):
        return self._BossIdType

    @BossIdType.setter
    def BossIdType(self, BossIdType):
        self._BossIdType = BossIdType

    @property
    def AddTime(self):
        return self._AddTime

    @AddTime.setter
    def AddTime(self, AddTime):
        self._AddTime = AddTime

    @property
    def ShopCount(self):
        return self._ShopCount

    @ShopCount.setter
    def ShopCount(self, ShopCount):
        self._ShopCount = ShopCount

    @property
    def AccountBoss(self):
        return self._AccountBoss

    @AccountBoss.setter
    def AccountBoss(self, AccountBoss):
        self._AccountBoss = AccountBoss

    @property
    def ClassificationNames(self):
        return self._ClassificationNames

    @ClassificationNames.setter
    def ClassificationNames(self, ClassificationNames):
        self._ClassificationNames = ClassificationNames

    @property
    def BossTelephone(self):
        return self._BossTelephone

    @BossTelephone.setter
    def BossTelephone(self, BossTelephone):
        self._BossTelephone = BossTelephone

    @property
    def AccountManagerName(self):
        return self._AccountManagerName

    @AccountManagerName.setter
    def AccountManagerName(self, AccountManagerName):
        self._AccountManagerName = AccountManagerName

    @property
    def TerminalCount(self):
        return self._TerminalCount

    @TerminalCount.setter
    def TerminalCount(self, TerminalCount):
        self._TerminalCount = TerminalCount

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def FinancialContact(self):
        return self._FinancialContact

    @FinancialContact.setter
    def FinancialContact(self, FinancialContact):
        self._FinancialContact = FinancialContact

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def BossSex(self):
        return self._BossSex

    @BossSex.setter
    def BossSex(self, BossSex):
        self._BossSex = BossSex

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def BossAddress(self):
        return self._BossAddress

    @BossAddress.setter
    def BossAddress(self, BossAddress):
        self._BossAddress = BossAddress

    @property
    def Country(self):
        return self._Country

    @Country.setter
    def Country(self, Country):
        self._Country = Country

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def BossJob(self):
        return self._BossJob

    @BossJob.setter
    def BossJob(self, BossJob):
        self._BossJob = BossJob

    @property
    def LicencePicture(self):
        return self._LicencePicture

    @LicencePicture.setter
    def LicencePicture(self, LicencePicture):
        self._LicencePicture = LicencePicture

    @property
    def OrganizationCodeEndDate(self):
        return self._OrganizationCodeEndDate

    @OrganizationCodeEndDate.setter
    def OrganizationCodeEndDate(self, OrganizationCodeEndDate):
        self._OrganizationCodeEndDate = OrganizationCodeEndDate

    @property
    def OpenHours(self):
        return self._OpenHours

    @OpenHours.setter
    def OpenHours(self, OpenHours):
        self._OpenHours = OpenHours

    @property
    def OtherPictureTwo(self):
        return self._OtherPictureTwo

    @OtherPictureTwo.setter
    def OtherPictureTwo(self, OtherPictureTwo):
        self._OtherPictureTwo = OtherPictureTwo

    @property
    def OtherPictureOne(self):
        return self._OtherPictureOne

    @OtherPictureOne.setter
    def OtherPictureOne(self, OtherPictureOne):
        self._OtherPictureOne = OtherPictureOne

    @property
    def AccountName(self):
        return self._AccountName

    @AccountName.setter
    def AccountName(self, AccountName):
        self._AccountName = AccountName

    @property
    def ContractCount(self):
        return self._ContractCount

    @ContractCount.setter
    def ContractCount(self, ContractCount):
        self._ContractCount = ContractCount

    @property
    def LicencePictureTwo(self):
        return self._LicencePictureTwo

    @LicencePictureTwo.setter
    def LicencePictureTwo(self, LicencePictureTwo):
        self._LicencePictureTwo = LicencePictureTwo

    @property
    def AccountNo(self):
        return self._AccountNo

    @AccountNo.setter
    def AccountNo(self, AccountNo):
        self._AccountNo = AccountNo

    @property
    def BossEmail(self):
        return self._BossEmail

    @BossEmail.setter
    def BossEmail(self, BossEmail):
        self._BossEmail = BossEmail

    @property
    def AccountType(self):
        return self._AccountType

    @AccountType.setter
    def AccountType(self, AccountType):
        self._AccountType = AccountType

    @property
    def TaxCollectionEndDate(self):
        return self._TaxCollectionEndDate

    @TaxCollectionEndDate.setter
    def TaxCollectionEndDate(self, TaxCollectionEndDate):
        self._TaxCollectionEndDate = TaxCollectionEndDate

    @property
    def BankName(self):
        return self._BankName

    @BankName.setter
    def BankName(self, BankName):
        self._BankName = BankName

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def OutMerchantId(self):
        return self._OutMerchantId

    @OutMerchantId.setter
    def OutMerchantId(self, OutMerchantId):
        self._OutMerchantId = OutMerchantId

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId

    @property
    def BossIdCount(self):
        return self._BossIdCount

    @BossIdCount.setter
    def BossIdCount(self, BossIdCount):
        self._BossIdCount = BossIdCount

    @property
    def Tag(self):
        return self._Tag

    @Tag.setter
    def Tag(self, Tag):
        self._Tag = Tag

    @property
    def FinancialTelephone(self):
        return self._FinancialTelephone

    @FinancialTelephone.setter
    def FinancialTelephone(self, FinancialTelephone):
        self._FinancialTelephone = FinancialTelephone

    @property
    def BossName(self):
        return self._BossName

    @BossName.setter
    def BossName(self, BossName):
        self._BossName = BossName

    @property
    def OrganizationCodeStartDate(self):
        return self._OrganizationCodeStartDate

    @OrganizationCodeStartDate.setter
    def OrganizationCodeStartDate(self, OrganizationCodeStartDate):
        self._OrganizationCodeStartDate = OrganizationCodeStartDate

    @property
    def Logo(self):
        return self._Logo

    @Logo.setter
    def Logo(self, Logo):
        self._Logo = Logo

    @property
    def OtherPictureFour(self):
        return self._OtherPictureFour

    @OtherPictureFour.setter
    def OtherPictureFour(self, OtherPictureFour):
        self._OtherPictureFour = OtherPictureFour

    @property
    def TaxCollectionNo(self):
        return self._TaxCollectionNo

    @TaxCollectionNo.setter
    def TaxCollectionNo(self, TaxCollectionNo):
        self._TaxCollectionNo = TaxCollectionNo


    def _deserialize(self, params):
        self._City = params.get("City")
        self._TaxCollectionPicture = params.get("TaxCollectionPicture")
        self._BossIdNo = params.get("BossIdNo")
        self._AccountIdNo = params.get("AccountIdNo")
        self._OtherPictureThree = params.get("OtherPictureThree")
        self._AccountIdType = params.get("AccountIdType")
        self._Status = params.get("Status")
        self._BusinessLicensePicture = params.get("BusinessLicensePicture")
        self._BrandName = params.get("BrandName")
        self._BossPositive = params.get("BossPositive")
        self._AppCount = params.get("AppCount")
        self._BossBack = params.get("BossBack")
        self._OrganizationCodePicture = params.get("OrganizationCodePicture")
        self._BusinessLicenseEndDate = params.get("BusinessLicenseEndDate")
        self._OrganizationCodeNo = params.get("OrganizationCodeNo")
        self._AgentNo = params.get("AgentNo")
        self._Province = params.get("Province")
        self._BossStartDate = params.get("BossStartDate")
        self._UpdateTime = params.get("UpdateTime")
        self._BankNo = params.get("BankNo")
        self._TaxCollectionStartDate = params.get("TaxCollectionStartDate")
        self._BusinessLicenseStartDate = params.get("BusinessLicenseStartDate")
        self._AccountManagerId = params.get("AccountManagerId")
        self._ClassificationIds = params.get("ClassificationIds")
        self._BusinessLicenseType = params.get("BusinessLicenseType")
        self._BossEndDate = params.get("BossEndDate")
        self._BusinessLicenseNo = params.get("BusinessLicenseNo")
        self._AgentName = params.get("AgentName")
        self._Intro = params.get("Intro")
        self._BossIdType = params.get("BossIdType")
        self._AddTime = params.get("AddTime")
        self._ShopCount = params.get("ShopCount")
        self._AccountBoss = params.get("AccountBoss")
        self._ClassificationNames = params.get("ClassificationNames")
        self._BossTelephone = params.get("BossTelephone")
        self._AccountManagerName = params.get("AccountManagerName")
        self._TerminalCount = params.get("TerminalCount")
        self._Remark = params.get("Remark")
        self._FinancialContact = params.get("FinancialContact")
        self._MerchantName = params.get("MerchantName")
        self._BossSex = params.get("BossSex")
        self._MerchantNo = params.get("MerchantNo")
        self._BossAddress = params.get("BossAddress")
        self._Country = params.get("Country")
        self._Address = params.get("Address")
        self._BossJob = params.get("BossJob")
        self._LicencePicture = params.get("LicencePicture")
        self._OrganizationCodeEndDate = params.get("OrganizationCodeEndDate")
        self._OpenHours = params.get("OpenHours")
        self._OtherPictureTwo = params.get("OtherPictureTwo")
        self._OtherPictureOne = params.get("OtherPictureOne")
        self._AccountName = params.get("AccountName")
        self._ContractCount = params.get("ContractCount")
        self._LicencePictureTwo = params.get("LicencePictureTwo")
        self._AccountNo = params.get("AccountNo")
        self._BossEmail = params.get("BossEmail")
        self._AccountType = params.get("AccountType")
        self._TaxCollectionEndDate = params.get("TaxCollectionEndDate")
        self._BankName = params.get("BankName")
        self._Telephone = params.get("Telephone")
        self._OutMerchantId = params.get("OutMerchantId")
        self._CityId = params.get("CityId")
        self._BossIdCount = params.get("BossIdCount")
        self._Tag = params.get("Tag")
        self._FinancialTelephone = params.get("FinancialTelephone")
        self._BossName = params.get("BossName")
        self._OrganizationCodeStartDate = params.get("OrganizationCodeStartDate")
        self._Logo = params.get("Logo")
        self._OtherPictureFour = params.get("OtherPictureFour")
        self._TaxCollectionNo = params.get("TaxCollectionNo")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewShopRequest(AbstractModel):
    """ViewShop请求参数结构体

    """

    def __init__(self):
        r"""
        :param _OpenId: 收单系统分配的开放ID
        :type OpenId: str
        :param _OpenKey: 收单系统分配的密钥
        :type OpenKey: str
        :param _OutShopId: 外部商户主键编号（ShopNo或OutShopId必须传一个）
        :type OutShopId: str
        :param _ShopNo: 门店编号（ShopNo或OutShopId必须传一个）
        :type ShopNo: str
        :param _Profile: 沙箱环境填sandbox，正式环境不填
        :type Profile: str
        """
        self._OpenId = None
        self._OpenKey = None
        self._OutShopId = None
        self._ShopNo = None
        self._Profile = None

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def OpenKey(self):
        return self._OpenKey

    @OpenKey.setter
    def OpenKey(self, OpenKey):
        self._OpenKey = OpenKey

    @property
    def OutShopId(self):
        return self._OutShopId

    @OutShopId.setter
    def OutShopId(self, OutShopId):
        self._OutShopId = OutShopId

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._OpenId = params.get("OpenId")
        self._OpenKey = params.get("OpenKey")
        self._OutShopId = params.get("OutShopId")
        self._ShopNo = params.get("ShopNo")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class ViewShopResponse(AbstractModel):
    """ViewShop返回参数结构体

    """

    def __init__(self):
        r"""
        :param _ErrMessage: 业务系统返回消息
注意：此字段可能返回 null，表示取不到有效值。
        :type ErrMessage: str
        :param _ErrCode: 业务系统返回码
        :type ErrCode: str
        :param _Result: 门店明细响应对象
注意：此字段可能返回 null，表示取不到有效值。
        :type Result: :class:`tencentcloud.cpdp.v20190820.models.ViewShopResult`
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._ErrMessage = None
        self._ErrCode = None
        self._Result = None
        self._RequestId = None

    @property
    def ErrMessage(self):
        return self._ErrMessage

    @ErrMessage.setter
    def ErrMessage(self, ErrMessage):
        self._ErrMessage = ErrMessage

    @property
    def ErrCode(self):
        return self._ErrCode

    @ErrCode.setter
    def ErrCode(self, ErrCode):
        self._ErrCode = ErrCode

    @property
    def Result(self):
        return self._Result

    @Result.setter
    def Result(self, Result):
        self._Result = Result

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._ErrMessage = params.get("ErrMessage")
        self._ErrCode = params.get("ErrCode")
        if params.get("Result") is not None:
            self._Result = ViewShopResult()
            self._Result._deserialize(params.get("Result"))
        self._RequestId = params.get("RequestId")


class ViewShopResult(AbstractModel):
    """门店明细响应对象

    """

    def __init__(self):
        r"""
        :param _City: 城市
注意：此字段可能返回 null，表示取不到有效值。
        :type City: str
        :param _ShopName: 门店简称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopName: str
        :param _Latitude: 百度地图纬度
注意：此字段可能返回 null，表示取不到有效值。
        :type Latitude: str
        :param _BrandName: 品牌名称
注意：此字段可能返回 null，表示取不到有效值。
        :type BrandName: str
        :param _AppCount: 开通应用数量
注意：此字段可能返回 null，表示取不到有效值。
        :type AppCount: str
        :param _ContactTelephone: 负责人手机号码
注意：此字段可能返回 null，表示取不到有效值。
        :type ContactTelephone: str
        :param _MerchantName: 商户名称
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantName: str
        :param _Province: 省份
注意：此字段可能返回 null，表示取不到有效值。
        :type Province: str
        :param _County: 县/区
注意：此字段可能返回 null，表示取不到有效值。
        :type County: str
        :param _UpdateTime: 更新时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type UpdateTime: str
        :param _TerminalCount: 终端数量
注意：此字段可能返回 null，表示取不到有效值。
        :type TerminalCount: str
        :param _PictureTwo: 收银台图片【公共区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureTwo: str
        :param _LatitudeTwo: 高德地图纬度
注意：此字段可能返回 null，表示取不到有效值。
        :type LatitudeTwo: str
        :param _AgentName: 机构名称
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentName: str
        :param _PictureFour: 其他照片【公共区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureFour: str
        :param _LongitudeTwo: 高德地图经度
注意：此字段可能返回 null，表示取不到有效值。
        :type LongitudeTwo: str
        :param _Status: 门店状态（0未审核，1已审核，2审核未通过，3待审核，4已删除，5初审通过）
注意：此字段可能返回 null，表示取不到有效值。
        :type Status: str
        :param _Remark: 审核备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        :param _AgentNo: 机构编号
注意：此字段可能返回 null，表示取不到有效值。
        :type AgentNo: str
        :param _MerchantNo: 商户编号
注意：此字段可能返回 null，表示取不到有效值。
        :type MerchantNo: str
        :param _AddTime: 添加时间（yyyy-mm-dd hh:ii:ss）
注意：此字段可能返回 null，表示取不到有效值。
        :type AddTime: str
        :param _Address: 详细地址
注意：此字段可能返回 null，表示取不到有效值。
        :type Address: str
        :param _Longitude: 百度地图经度
注意：此字段可能返回 null，表示取不到有效值。
        :type Longitude: str
        :param _ShopNo: 门店编号
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopNo: str
        :param _ShopFullName: 门店全称
注意：此字段可能返回 null，表示取不到有效值。
        :type ShopFullName: str
        :param _Contact: 门店负责人
注意：此字段可能返回 null，表示取不到有效值。
        :type Contact: str
        :param _PictureThree: 店内环境图片【公共区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureThree: str
        :param _PictureOne: 整体门面（含招牌）图片【公共区】
注意：此字段可能返回 null，表示取不到有效值。
        :type PictureOne: str
        :param _Telephone: 门店电话
注意：此字段可能返回 null，表示取不到有效值。
        :type Telephone: str
        :param _OutShopId: 机构门店主键
注意：此字段可能返回 null，表示取不到有效值。
        :type OutShopId: str
        :param _CityId: 城市编码
注意：此字段可能返回 null，表示取不到有效值。
        :type CityId: str
        """
        self._City = None
        self._ShopName = None
        self._Latitude = None
        self._BrandName = None
        self._AppCount = None
        self._ContactTelephone = None
        self._MerchantName = None
        self._Province = None
        self._County = None
        self._UpdateTime = None
        self._TerminalCount = None
        self._PictureTwo = None
        self._LatitudeTwo = None
        self._AgentName = None
        self._PictureFour = None
        self._LongitudeTwo = None
        self._Status = None
        self._Remark = None
        self._AgentNo = None
        self._MerchantNo = None
        self._AddTime = None
        self._Address = None
        self._Longitude = None
        self._ShopNo = None
        self._ShopFullName = None
        self._Contact = None
        self._PictureThree = None
        self._PictureOne = None
        self._Telephone = None
        self._OutShopId = None
        self._CityId = None

    @property
    def City(self):
        return self._City

    @City.setter
    def City(self, City):
        self._City = City

    @property
    def ShopName(self):
        return self._ShopName

    @ShopName.setter
    def ShopName(self, ShopName):
        self._ShopName = ShopName

    @property
    def Latitude(self):
        return self._Latitude

    @Latitude.setter
    def Latitude(self, Latitude):
        self._Latitude = Latitude

    @property
    def BrandName(self):
        return self._BrandName

    @BrandName.setter
    def BrandName(self, BrandName):
        self._BrandName = BrandName

    @property
    def AppCount(self):
        return self._AppCount

    @AppCount.setter
    def AppCount(self, AppCount):
        self._AppCount = AppCount

    @property
    def ContactTelephone(self):
        return self._ContactTelephone

    @ContactTelephone.setter
    def ContactTelephone(self, ContactTelephone):
        self._ContactTelephone = ContactTelephone

    @property
    def MerchantName(self):
        return self._MerchantName

    @MerchantName.setter
    def MerchantName(self, MerchantName):
        self._MerchantName = MerchantName

    @property
    def Province(self):
        return self._Province

    @Province.setter
    def Province(self, Province):
        self._Province = Province

    @property
    def County(self):
        return self._County

    @County.setter
    def County(self, County):
        self._County = County

    @property
    def UpdateTime(self):
        return self._UpdateTime

    @UpdateTime.setter
    def UpdateTime(self, UpdateTime):
        self._UpdateTime = UpdateTime

    @property
    def TerminalCount(self):
        return self._TerminalCount

    @TerminalCount.setter
    def TerminalCount(self, TerminalCount):
        self._TerminalCount = TerminalCount

    @property
    def PictureTwo(self):
        return self._PictureTwo

    @PictureTwo.setter
    def PictureTwo(self, PictureTwo):
        self._PictureTwo = PictureTwo

    @property
    def LatitudeTwo(self):
        return self._LatitudeTwo

    @LatitudeTwo.setter
    def LatitudeTwo(self, LatitudeTwo):
        self._LatitudeTwo = LatitudeTwo

    @property
    def AgentName(self):
        return self._AgentName

    @AgentName.setter
    def AgentName(self, AgentName):
        self._AgentName = AgentName

    @property
    def PictureFour(self):
        return self._PictureFour

    @PictureFour.setter
    def PictureFour(self, PictureFour):
        self._PictureFour = PictureFour

    @property
    def LongitudeTwo(self):
        return self._LongitudeTwo

    @LongitudeTwo.setter
    def LongitudeTwo(self, LongitudeTwo):
        self._LongitudeTwo = LongitudeTwo

    @property
    def Status(self):
        return self._Status

    @Status.setter
    def Status(self, Status):
        self._Status = Status

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def AgentNo(self):
        return self._AgentNo

    @AgentNo.setter
    def AgentNo(self, AgentNo):
        self._AgentNo = AgentNo

    @property
    def MerchantNo(self):
        return self._MerchantNo

    @MerchantNo.setter
    def MerchantNo(self, MerchantNo):
        self._MerchantNo = MerchantNo

    @property
    def AddTime(self):
        return self._AddTime

    @AddTime.setter
    def AddTime(self, AddTime):
        self._AddTime = AddTime

    @property
    def Address(self):
        return self._Address

    @Address.setter
    def Address(self, Address):
        self._Address = Address

    @property
    def Longitude(self):
        return self._Longitude

    @Longitude.setter
    def Longitude(self, Longitude):
        self._Longitude = Longitude

    @property
    def ShopNo(self):
        return self._ShopNo

    @ShopNo.setter
    def ShopNo(self, ShopNo):
        self._ShopNo = ShopNo

    @property
    def ShopFullName(self):
        return self._ShopFullName

    @ShopFullName.setter
    def ShopFullName(self, ShopFullName):
        self._ShopFullName = ShopFullName

    @property
    def Contact(self):
        return self._Contact

    @Contact.setter
    def Contact(self, Contact):
        self._Contact = Contact

    @property
    def PictureThree(self):
        return self._PictureThree

    @PictureThree.setter
    def PictureThree(self, PictureThree):
        self._PictureThree = PictureThree

    @property
    def PictureOne(self):
        return self._PictureOne

    @PictureOne.setter
    def PictureOne(self, PictureOne):
        self._PictureOne = PictureOne

    @property
    def Telephone(self):
        return self._Telephone

    @Telephone.setter
    def Telephone(self, Telephone):
        self._Telephone = Telephone

    @property
    def OutShopId(self):
        return self._OutShopId

    @OutShopId.setter
    def OutShopId(self, OutShopId):
        self._OutShopId = OutShopId

    @property
    def CityId(self):
        return self._CityId

    @CityId.setter
    def CityId(self, CityId):
        self._CityId = CityId


    def _deserialize(self, params):
        self._City = params.get("City")
        self._ShopName = params.get("ShopName")
        self._Latitude = params.get("Latitude")
        self._BrandName = params.get("BrandName")
        self._AppCount = params.get("AppCount")
        self._ContactTelephone = params.get("ContactTelephone")
        self._MerchantName = params.get("MerchantName")
        self._Province = params.get("Province")
        self._County = params.get("County")
        self._UpdateTime = params.get("UpdateTime")
        self._TerminalCount = params.get("TerminalCount")
        self._PictureTwo = params.get("PictureTwo")
        self._LatitudeTwo = params.get("LatitudeTwo")
        self._AgentName = params.get("AgentName")
        self._PictureFour = params.get("PictureFour")
        self._LongitudeTwo = params.get("LongitudeTwo")
        self._Status = params.get("Status")
        self._Remark = params.get("Remark")
        self._AgentNo = params.get("AgentNo")
        self._MerchantNo = params.get("MerchantNo")
        self._AddTime = params.get("AddTime")
        self._Address = params.get("Address")
        self._Longitude = params.get("Longitude")
        self._ShopNo = params.get("ShopNo")
        self._ShopFullName = params.get("ShopFullName")
        self._Contact = params.get("Contact")
        self._PictureThree = params.get("PictureThree")
        self._PictureOne = params.get("PictureOne")
        self._Telephone = params.get("Telephone")
        self._OutShopId = params.get("OutShopId")
        self._CityId = params.get("CityId")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WechatPreAuthResult(AbstractModel):
    """微工卡预核身结果

    """

    def __init__(self):
        r"""
        :param _AuthNo: 商户核身单号
        :type AuthNo: str
        :param _OpenId: 微信用户标识
        :type OpenId: str
        :param _MchId: 商户号
        :type MchId: str
        :param _SubMchId: 子商户号
        :type SubMchId: str
        :param _Token: 预核身token值
        :type Token: str
        :param _Expire: token有效期时间，单位：秒
        :type Expire: int
        """
        self._AuthNo = None
        self._OpenId = None
        self._MchId = None
        self._SubMchId = None
        self._Token = None
        self._Expire = None

    @property
    def AuthNo(self):
        return self._AuthNo

    @AuthNo.setter
    def AuthNo(self, AuthNo):
        self._AuthNo = AuthNo

    @property
    def OpenId(self):
        return self._OpenId

    @OpenId.setter
    def OpenId(self, OpenId):
        self._OpenId = OpenId

    @property
    def MchId(self):
        return self._MchId

    @MchId.setter
    def MchId(self, MchId):
        self._MchId = MchId

    @property
    def SubMchId(self):
        return self._SubMchId

    @SubMchId.setter
    def SubMchId(self, SubMchId):
        self._SubMchId = SubMchId

    @property
    def Token(self):
        return self._Token

    @Token.setter
    def Token(self, Token):
        self._Token = Token

    @property
    def Expire(self):
        return self._Expire

    @Expire.setter
    def Expire(self, Expire):
        self._Expire = Expire


    def _deserialize(self, params):
        self._AuthNo = params.get("AuthNo")
        self._OpenId = params.get("OpenId")
        self._MchId = params.get("MchId")
        self._SubMchId = params.get("SubMchId")
        self._Token = params.get("Token")
        self._Expire = params.get("Expire")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WithdrawBill(AbstractModel):
    """聚鑫提现订单内容

    """

    def __init__(self):
        r"""
        :param _WithdrawOrderId: 业务提现订单号
        :type WithdrawOrderId: str
        :param _Date: 提现日期
        :type Date: str
        :param _PayAmt: 提现金额，单位： 分
        :type PayAmt: str
        :param _InSubAppId: 聚鑫分配转入账户appid
        :type InSubAppId: str
        :param _OutSubAppId: 聚鑫分配转出账户appid
        :type OutSubAppId: str
        :param _CurrencyType: ISO货币代码
        :type CurrencyType: str
        :param _MetaData: 透传字段
        :type MetaData: str
        :param _ExtendFieldData: 扩展字段
        :type ExtendFieldData: str
        """
        self._WithdrawOrderId = None
        self._Date = None
        self._PayAmt = None
        self._InSubAppId = None
        self._OutSubAppId = None
        self._CurrencyType = None
        self._MetaData = None
        self._ExtendFieldData = None

    @property
    def WithdrawOrderId(self):
        return self._WithdrawOrderId

    @WithdrawOrderId.setter
    def WithdrawOrderId(self, WithdrawOrderId):
        self._WithdrawOrderId = WithdrawOrderId

    @property
    def Date(self):
        return self._Date

    @Date.setter
    def Date(self, Date):
        self._Date = Date

    @property
    def PayAmt(self):
        return self._PayAmt

    @PayAmt.setter
    def PayAmt(self, PayAmt):
        self._PayAmt = PayAmt

    @property
    def InSubAppId(self):
        return self._InSubAppId

    @InSubAppId.setter
    def InSubAppId(self, InSubAppId):
        self._InSubAppId = InSubAppId

    @property
    def OutSubAppId(self):
        return self._OutSubAppId

    @OutSubAppId.setter
    def OutSubAppId(self, OutSubAppId):
        self._OutSubAppId = OutSubAppId

    @property
    def CurrencyType(self):
        return self._CurrencyType

    @CurrencyType.setter
    def CurrencyType(self, CurrencyType):
        self._CurrencyType = CurrencyType

    @property
    def MetaData(self):
        return self._MetaData

    @MetaData.setter
    def MetaData(self, MetaData):
        self._MetaData = MetaData

    @property
    def ExtendFieldData(self):
        return self._ExtendFieldData

    @ExtendFieldData.setter
    def ExtendFieldData(self, ExtendFieldData):
        self._ExtendFieldData = ExtendFieldData


    def _deserialize(self, params):
        self._WithdrawOrderId = params.get("WithdrawOrderId")
        self._Date = params.get("Date")
        self._PayAmt = params.get("PayAmt")
        self._InSubAppId = params.get("InSubAppId")
        self._OutSubAppId = params.get("OutSubAppId")
        self._CurrencyType = params.get("CurrencyType")
        self._MetaData = params.get("MetaData")
        self._ExtendFieldData = params.get("ExtendFieldData")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WithdrawCashMembershipRequest(AbstractModel):
    """WithdrawCashMembership请求参数结构体

    """

    def __init__(self):
        r"""
        :param _MrchCode: String(22)，商户号（签约客户号）
        :type MrchCode: str
        :param _TranWebName: STRING(150)，交易网名称（市场名称）
        :type TranWebName: str
        :param _MemberGlobalType: STRING(5)，会员证件类型（详情见“常见问题”）
        :type MemberGlobalType: str
        :param _MemberGlobalId: STRING(32)，会员证件号码
        :type MemberGlobalId: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码
        :type TranNetMemberCode: str
        :param _MemberName: STRING(150)，会员名称
        :type MemberName: str
        :param _TakeCashAcctNo: STRING(50)，提现账号（银行卡）
        :type TakeCashAcctNo: str
        :param _OutAmtAcctName: STRING(150)，出金账户名称（银行卡户名）
        :type OutAmtAcctName: str
        :param _Ccy: STRING(3)，币种（默认为RMB）
        :type Ccy: str
        :param _CashAmt: STRING(20)，可提现金额
        :type CashAmt: str
        :param _Remark: STRING(300)，备注（建议可送订单号，可在对账文件的备注字段获取到）
        :type Remark: str
        :param _ReservedMsg: STRING(1027)，保留域
        :type ReservedMsg: str
        :param _WebSign: STRING(300)，网银签名
        :type WebSign: str
        :param _Profile: STRING(12)，接入环境，默认接入沙箱环境。接入正式环境填"prod"
        :type Profile: str
        """
        self._MrchCode = None
        self._TranWebName = None
        self._MemberGlobalType = None
        self._MemberGlobalId = None
        self._TranNetMemberCode = None
        self._MemberName = None
        self._TakeCashAcctNo = None
        self._OutAmtAcctName = None
        self._Ccy = None
        self._CashAmt = None
        self._Remark = None
        self._ReservedMsg = None
        self._WebSign = None
        self._Profile = None

    @property
    def MrchCode(self):
        return self._MrchCode

    @MrchCode.setter
    def MrchCode(self, MrchCode):
        self._MrchCode = MrchCode

    @property
    def TranWebName(self):
        return self._TranWebName

    @TranWebName.setter
    def TranWebName(self, TranWebName):
        self._TranWebName = TranWebName

    @property
    def MemberGlobalType(self):
        return self._MemberGlobalType

    @MemberGlobalType.setter
    def MemberGlobalType(self, MemberGlobalType):
        self._MemberGlobalType = MemberGlobalType

    @property
    def MemberGlobalId(self):
        return self._MemberGlobalId

    @MemberGlobalId.setter
    def MemberGlobalId(self, MemberGlobalId):
        self._MemberGlobalId = MemberGlobalId

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def MemberName(self):
        return self._MemberName

    @MemberName.setter
    def MemberName(self, MemberName):
        self._MemberName = MemberName

    @property
    def TakeCashAcctNo(self):
        return self._TakeCashAcctNo

    @TakeCashAcctNo.setter
    def TakeCashAcctNo(self, TakeCashAcctNo):
        self._TakeCashAcctNo = TakeCashAcctNo

    @property
    def OutAmtAcctName(self):
        return self._OutAmtAcctName

    @OutAmtAcctName.setter
    def OutAmtAcctName(self, OutAmtAcctName):
        self._OutAmtAcctName = OutAmtAcctName

    @property
    def Ccy(self):
        return self._Ccy

    @Ccy.setter
    def Ccy(self, Ccy):
        self._Ccy = Ccy

    @property
    def CashAmt(self):
        return self._CashAmt

    @CashAmt.setter
    def CashAmt(self, CashAmt):
        self._CashAmt = CashAmt

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def WebSign(self):
        return self._WebSign

    @WebSign.setter
    def WebSign(self, WebSign):
        self._WebSign = WebSign

    @property
    def Profile(self):
        return self._Profile

    @Profile.setter
    def Profile(self, Profile):
        self._Profile = Profile


    def _deserialize(self, params):
        self._MrchCode = params.get("MrchCode")
        self._TranWebName = params.get("TranWebName")
        self._MemberGlobalType = params.get("MemberGlobalType")
        self._MemberGlobalId = params.get("MemberGlobalId")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._MemberName = params.get("MemberName")
        self._TakeCashAcctNo = params.get("TakeCashAcctNo")
        self._OutAmtAcctName = params.get("OutAmtAcctName")
        self._Ccy = params.get("Ccy")
        self._CashAmt = params.get("CashAmt")
        self._Remark = params.get("Remark")
        self._ReservedMsg = params.get("ReservedMsg")
        self._WebSign = params.get("WebSign")
        self._Profile = params.get("Profile")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        


class WithdrawCashMembershipResponse(AbstractModel):
    """WithdrawCashMembership返回参数结构体

    """

    def __init__(self):
        r"""
        :param _TxnReturnCode: String(20)，返回码
        :type TxnReturnCode: str
        :param _TxnReturnMsg: String(100)，返回信息
        :type TxnReturnMsg: str
        :param _CnsmrSeqNo: String(22)，交易流水号
        :type CnsmrSeqNo: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _TransferFee: STRING(20)，转账手续费（固定返回0.00）
注意：此字段可能返回 null，表示取不到有效值。
        :type TransferFee: str
        :param _ReservedMsg: STRING(1027)，保留域
注意：此字段可能返回 null，表示取不到有效值。
        :type ReservedMsg: str
        :param _RequestId: 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        :type RequestId: str
        """
        self._TxnReturnCode = None
        self._TxnReturnMsg = None
        self._CnsmrSeqNo = None
        self._FrontSeqNo = None
        self._TransferFee = None
        self._ReservedMsg = None
        self._RequestId = None

    @property
    def TxnReturnCode(self):
        return self._TxnReturnCode

    @TxnReturnCode.setter
    def TxnReturnCode(self, TxnReturnCode):
        self._TxnReturnCode = TxnReturnCode

    @property
    def TxnReturnMsg(self):
        return self._TxnReturnMsg

    @TxnReturnMsg.setter
    def TxnReturnMsg(self, TxnReturnMsg):
        self._TxnReturnMsg = TxnReturnMsg

    @property
    def CnsmrSeqNo(self):
        return self._CnsmrSeqNo

    @CnsmrSeqNo.setter
    def CnsmrSeqNo(self, CnsmrSeqNo):
        self._CnsmrSeqNo = CnsmrSeqNo

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def TransferFee(self):
        return self._TransferFee

    @TransferFee.setter
    def TransferFee(self, TransferFee):
        self._TransferFee = TransferFee

    @property
    def ReservedMsg(self):
        return self._ReservedMsg

    @ReservedMsg.setter
    def ReservedMsg(self, ReservedMsg):
        self._ReservedMsg = ReservedMsg

    @property
    def RequestId(self):
        return self._RequestId

    @RequestId.setter
    def RequestId(self, RequestId):
        self._RequestId = RequestId


    def _deserialize(self, params):
        self._TxnReturnCode = params.get("TxnReturnCode")
        self._TxnReturnMsg = params.get("TxnReturnMsg")
        self._CnsmrSeqNo = params.get("CnsmrSeqNo")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._TransferFee = params.get("TransferFee")
        self._ReservedMsg = params.get("ReservedMsg")
        self._RequestId = params.get("RequestId")


class WithdrawItem(AbstractModel):
    """清分提现明细信息

    """

    def __init__(self):
        r"""
        :param _BookingFlag: STRING(2)，记账标志（01: 提现; 02: 清分 ）
注意：此字段可能返回 null，表示取不到有效值。
        :type BookingFlag: str
        :param _TranStatus: STRING(32)，交易状态（0: 成功）
注意：此字段可能返回 null，表示取不到有效值。
        :type TranStatus: str
        :param _BookingMsg: STRING(200)，记账说明
注意：此字段可能返回 null，表示取不到有效值。
        :type BookingMsg: str
        :param _TranNetMemberCode: STRING(32)，交易网会员代码
注意：此字段可能返回 null，表示取不到有效值。
        :type TranNetMemberCode: str
        :param _SubAcctNo: STRING(50)，见证子帐户的帐号
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctNo: str
        :param _SubAcctName: STRING(150)，见证子账户的名称
注意：此字段可能返回 null，表示取不到有效值。
        :type SubAcctName: str
        :param _TranAmt: STRING(20)，交易金额
注意：此字段可能返回 null，表示取不到有效值。
        :type TranAmt: str
        :param _Commission: STRING(20)，手续费
注意：此字段可能返回 null，表示取不到有效值。
        :type Commission: str
        :param _TranDate: STRING(8)，交易日期
注意：此字段可能返回 null，表示取不到有效值。
        :type TranDate: str
        :param _TranTime: STRING(20)，交易时间
注意：此字段可能返回 null，表示取不到有效值。
        :type TranTime: str
        :param _FrontSeqNo: STRING(52)，见证系统流水号
注意：此字段可能返回 null，表示取不到有效值。
        :type FrontSeqNo: str
        :param _Remark: STRING(300)，备注
注意：此字段可能返回 null，表示取不到有效值。
        :type Remark: str
        """
        self._BookingFlag = None
        self._TranStatus = None
        self._BookingMsg = None
        self._TranNetMemberCode = None
        self._SubAcctNo = None
        self._SubAcctName = None
        self._TranAmt = None
        self._Commission = None
        self._TranDate = None
        self._TranTime = None
        self._FrontSeqNo = None
        self._Remark = None

    @property
    def BookingFlag(self):
        return self._BookingFlag

    @BookingFlag.setter
    def BookingFlag(self, BookingFlag):
        self._BookingFlag = BookingFlag

    @property
    def TranStatus(self):
        return self._TranStatus

    @TranStatus.setter
    def TranStatus(self, TranStatus):
        self._TranStatus = TranStatus

    @property
    def BookingMsg(self):
        return self._BookingMsg

    @BookingMsg.setter
    def BookingMsg(self, BookingMsg):
        self._BookingMsg = BookingMsg

    @property
    def TranNetMemberCode(self):
        return self._TranNetMemberCode

    @TranNetMemberCode.setter
    def TranNetMemberCode(self, TranNetMemberCode):
        self._TranNetMemberCode = TranNetMemberCode

    @property
    def SubAcctNo(self):
        return self._SubAcctNo

    @SubAcctNo.setter
    def SubAcctNo(self, SubAcctNo):
        self._SubAcctNo = SubAcctNo

    @property
    def SubAcctName(self):
        return self._SubAcctName

    @SubAcctName.setter
    def SubAcctName(self, SubAcctName):
        self._SubAcctName = SubAcctName

    @property
    def TranAmt(self):
        return self._TranAmt

    @TranAmt.setter
    def TranAmt(self, TranAmt):
        self._TranAmt = TranAmt

    @property
    def Commission(self):
        return self._Commission

    @Commission.setter
    def Commission(self, Commission):
        self._Commission = Commission

    @property
    def TranDate(self):
        return self._TranDate

    @TranDate.setter
    def TranDate(self, TranDate):
        self._TranDate = TranDate

    @property
    def TranTime(self):
        return self._TranTime

    @TranTime.setter
    def TranTime(self, TranTime):
        self._TranTime = TranTime

    @property
    def FrontSeqNo(self):
        return self._FrontSeqNo

    @FrontSeqNo.setter
    def FrontSeqNo(self, FrontSeqNo):
        self._FrontSeqNo = FrontSeqNo

    @property
    def Remark(self):
        return self._Remark

    @Remark.setter
    def Remark(self, Remark):
        self._Remark = Remark


    def _deserialize(self, params):
        self._BookingFlag = params.get("BookingFlag")
        self._TranStatus = params.get("TranStatus")
        self._BookingMsg = params.get("BookingMsg")
        self._TranNetMemberCode = params.get("TranNetMemberCode")
        self._SubAcctNo = params.get("SubAcctNo")
        self._SubAcctName = params.get("SubAcctName")
        self._TranAmt = params.get("TranAmt")
        self._Commission = params.get("Commission")
        self._TranDate = params.get("TranDate")
        self._TranTime = params.get("TranTime")
        self._FrontSeqNo = params.get("FrontSeqNo")
        self._Remark = params.get("Remark")
        memeber_set = set(params.keys())
        for name, value in vars(self).items():
            property_name = name[1:]
            if property_name in memeber_set:
                memeber_set.remove(property_name)
        if len(memeber_set) > 0:
            warnings.warn("%s fileds are useless." % ",".join(memeber_set))
        