<?php
/**
 * AlipayEcoEduKtSchoolinfoModifyModel
 *
 * PHP version 7.4
 *
 * @category Class
 * @package  Alipay\OpenAPISDK
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 */

/**
 * 支付宝开放平台API
 *
 * 支付宝开放平台v3协议文档
 *
 * The version of the OpenAPI document: 2023-12-20
 * Generated by: https://openapi-generator.tech
 * OpenAPI Generator version: 6.2.1
 */

/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

namespace Alipay\OpenAPISDK\Model;

use \ArrayAccess;
use \Alipay\OpenAPISDK\ObjectSerializer;

/**
 * AlipayEcoEduKtSchoolinfoModifyModel Class Doc Comment
 *
 * @category Class
 * @package  Alipay\OpenAPISDK
 * @author   OpenAPI Generator team
 * @link     https://openapi-generator.tech
 * @implements \ArrayAccess<TKey, TValue>
 * @template TKey int|null
 * @template TValue mixed|null
 */
class AlipayEcoEduKtSchoolinfoModifyModel implements ModelInterface, ArrayAccess, \JsonSerializable
{
    public const DISCRIMINATOR = null;

    /**
      * The original name of the model.
      *
      * @var string
      */
    protected static $openAPIModelName = 'AlipayEcoEduKtSchoolinfoModifyModel';

    /**
      * Array of property to type mappings. Used for (de)serialization
      *
      * @var string[]
      */
    protected static $openAPITypes = [
        'bankNotifyUrl' => 'string',
        'bankPartnerId' => 'string',
        'bankUid' => 'string',
        'bankcardNo' => 'string',
        'batchNo' => 'string',
        'cardAliasNo' => 'string',
        'cityCode' => 'string',
        'cityName' => 'string',
        'corporateBranchPid' => 'string',
        'districtCode' => 'string',
        'districtName' => 'string',
        'isvName' => 'string',
        'isvNo' => 'string',
        'isvNotifyUrl' => 'string',
        'isvPhone' => 'string',
        'isvPid' => 'string',
        'provinceCode' => 'string',
        'provinceName' => 'string',
        'schoolIcon' => 'string',
        'schoolIconType' => 'string',
        'schoolName' => 'string',
        'schoolPid' => 'string',
        'schoolStdcode' => 'string',
        'schoolType' => 'string',
        'smid' => 'string',
        'transIn' => 'string',
        'whiteChannelCode' => 'string'
    ];

    /**
      * Array of property to format mappings. Used for (de)serialization
      *
      * @var string[]
      * @phpstan-var array<string, string|null>
      * @psalm-var array<string, string|null>
      */
    protected static $openAPIFormats = [
        'bankNotifyUrl' => null,
        'bankPartnerId' => null,
        'bankUid' => null,
        'bankcardNo' => null,
        'batchNo' => null,
        'cardAliasNo' => null,
        'cityCode' => null,
        'cityName' => null,
        'corporateBranchPid' => null,
        'districtCode' => null,
        'districtName' => null,
        'isvName' => null,
        'isvNo' => null,
        'isvNotifyUrl' => null,
        'isvPhone' => null,
        'isvPid' => null,
        'provinceCode' => null,
        'provinceName' => null,
        'schoolIcon' => null,
        'schoolIconType' => null,
        'schoolName' => null,
        'schoolPid' => null,
        'schoolStdcode' => null,
        'schoolType' => null,
        'smid' => null,
        'transIn' => null,
        'whiteChannelCode' => null
    ];

    /**
     * Array of property to type mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPITypes()
    {
        return self::$openAPITypes;
    }

    /**
     * Array of property to format mappings. Used for (de)serialization
     *
     * @return array
     */
    public static function openAPIFormats()
    {
        return self::$openAPIFormats;
    }

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @var string[]
     */
    protected static $attributeMap = [
        'bankNotifyUrl' => 'bank_notify_url',
        'bankPartnerId' => 'bank_partner_id',
        'bankUid' => 'bank_uid',
        'bankcardNo' => 'bankcard_no',
        'batchNo' => 'batch_no',
        'cardAliasNo' => 'card_alias_no',
        'cityCode' => 'city_code',
        'cityName' => 'city_name',
        'corporateBranchPid' => 'corporate_branch_pid',
        'districtCode' => 'district_code',
        'districtName' => 'district_name',
        'isvName' => 'isv_name',
        'isvNo' => 'isv_no',
        'isvNotifyUrl' => 'isv_notify_url',
        'isvPhone' => 'isv_phone',
        'isvPid' => 'isv_pid',
        'provinceCode' => 'province_code',
        'provinceName' => 'province_name',
        'schoolIcon' => 'school_icon',
        'schoolIconType' => 'school_icon_type',
        'schoolName' => 'school_name',
        'schoolPid' => 'school_pid',
        'schoolStdcode' => 'school_stdcode',
        'schoolType' => 'school_type',
        'smid' => 'smid',
        'transIn' => 'trans_in',
        'whiteChannelCode' => 'white_channel_code'
    ];

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @var string[]
     */
    protected static $setters = [
        'bankNotifyUrl' => 'setBankNotifyUrl',
        'bankPartnerId' => 'setBankPartnerId',
        'bankUid' => 'setBankUid',
        'bankcardNo' => 'setBankcardNo',
        'batchNo' => 'setBatchNo',
        'cardAliasNo' => 'setCardAliasNo',
        'cityCode' => 'setCityCode',
        'cityName' => 'setCityName',
        'corporateBranchPid' => 'setCorporateBranchPid',
        'districtCode' => 'setDistrictCode',
        'districtName' => 'setDistrictName',
        'isvName' => 'setIsvName',
        'isvNo' => 'setIsvNo',
        'isvNotifyUrl' => 'setIsvNotifyUrl',
        'isvPhone' => 'setIsvPhone',
        'isvPid' => 'setIsvPid',
        'provinceCode' => 'setProvinceCode',
        'provinceName' => 'setProvinceName',
        'schoolIcon' => 'setSchoolIcon',
        'schoolIconType' => 'setSchoolIconType',
        'schoolName' => 'setSchoolName',
        'schoolPid' => 'setSchoolPid',
        'schoolStdcode' => 'setSchoolStdcode',
        'schoolType' => 'setSchoolType',
        'smid' => 'setSmid',
        'transIn' => 'setTransIn',
        'whiteChannelCode' => 'setWhiteChannelCode'
    ];

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @var string[]
     */
    protected static $getters = [
        'bankNotifyUrl' => 'getBankNotifyUrl',
        'bankPartnerId' => 'getBankPartnerId',
        'bankUid' => 'getBankUid',
        'bankcardNo' => 'getBankcardNo',
        'batchNo' => 'getBatchNo',
        'cardAliasNo' => 'getCardAliasNo',
        'cityCode' => 'getCityCode',
        'cityName' => 'getCityName',
        'corporateBranchPid' => 'getCorporateBranchPid',
        'districtCode' => 'getDistrictCode',
        'districtName' => 'getDistrictName',
        'isvName' => 'getIsvName',
        'isvNo' => 'getIsvNo',
        'isvNotifyUrl' => 'getIsvNotifyUrl',
        'isvPhone' => 'getIsvPhone',
        'isvPid' => 'getIsvPid',
        'provinceCode' => 'getProvinceCode',
        'provinceName' => 'getProvinceName',
        'schoolIcon' => 'getSchoolIcon',
        'schoolIconType' => 'getSchoolIconType',
        'schoolName' => 'getSchoolName',
        'schoolPid' => 'getSchoolPid',
        'schoolStdcode' => 'getSchoolStdcode',
        'schoolType' => 'getSchoolType',
        'smid' => 'getSmid',
        'transIn' => 'getTransIn',
        'whiteChannelCode' => 'getWhiteChannelCode'
    ];

    /**
     * Array of attributes where the key is the local name,
     * and the value is the original name
     *
     * @return array
     */
    public static function attributeMap()
    {
        return self::$attributeMap;
    }

    /**
     * Array of attributes to setter functions (for deserialization of responses)
     *
     * @return array
     */
    public static function setters()
    {
        return self::$setters;
    }

    /**
     * Array of attributes to getter functions (for serialization of requests)
     *
     * @return array
     */
    public static function getters()
    {
        return self::$getters;
    }

    /**
     * The original name of the model.
     *
     * @return string
     */
    public function getModelName()
    {
        return self::$openAPIModelName;
    }


    /**
     * Associative array for storing property values
     *
     * @var mixed[]
     */
    protected $container = [];

    /**
     * Constructor
     *
     * @param mixed[] $data Associated array of property values
     *                      initializing the model
     */
    public function __construct(array $data = null)
    {
        $this->container['bankNotifyUrl'] = $data['bankNotifyUrl'] ?? null;
        $this->container['bankPartnerId'] = $data['bankPartnerId'] ?? null;
        $this->container['bankUid'] = $data['bankUid'] ?? null;
        $this->container['bankcardNo'] = $data['bankcardNo'] ?? null;
        $this->container['batchNo'] = $data['batchNo'] ?? null;
        $this->container['cardAliasNo'] = $data['cardAliasNo'] ?? null;
        $this->container['cityCode'] = $data['cityCode'] ?? null;
        $this->container['cityName'] = $data['cityName'] ?? null;
        $this->container['corporateBranchPid'] = $data['corporateBranchPid'] ?? null;
        $this->container['districtCode'] = $data['districtCode'] ?? null;
        $this->container['districtName'] = $data['districtName'] ?? null;
        $this->container['isvName'] = $data['isvName'] ?? null;
        $this->container['isvNo'] = $data['isvNo'] ?? null;
        $this->container['isvNotifyUrl'] = $data['isvNotifyUrl'] ?? null;
        $this->container['isvPhone'] = $data['isvPhone'] ?? null;
        $this->container['isvPid'] = $data['isvPid'] ?? null;
        $this->container['provinceCode'] = $data['provinceCode'] ?? null;
        $this->container['provinceName'] = $data['provinceName'] ?? null;
        $this->container['schoolIcon'] = $data['schoolIcon'] ?? null;
        $this->container['schoolIconType'] = $data['schoolIconType'] ?? null;
        $this->container['schoolName'] = $data['schoolName'] ?? null;
        $this->container['schoolPid'] = $data['schoolPid'] ?? null;
        $this->container['schoolStdcode'] = $data['schoolStdcode'] ?? null;
        $this->container['schoolType'] = $data['schoolType'] ?? null;
        $this->container['smid'] = $data['smid'] ?? null;
        $this->container['transIn'] = $data['transIn'] ?? null;
        $this->container['whiteChannelCode'] = $data['whiteChannelCode'] ?? null;
    }

    /**
     * Show all the invalid properties with reasons.
     *
     * @return array invalid properties with reasons
     */
    public function listInvalidProperties()
    {
        $invalidProperties = [];

        return $invalidProperties;
    }

    /**
     * Validate all the properties in the model
     * return true if all passed
     *
     * @return bool True if all properties are valid
     */
    public function valid()
    {
        return count($this->listInvalidProperties()) === 0;
    }


    /**
     * Gets bankNotifyUrl
     *
     * @return string|null
     */
    public function getBankNotifyUrl()
    {
        return $this->container['bankNotifyUrl'];
    }

    /**
     * Sets bankNotifyUrl
     *
     * @param string|null $bankNotifyUrl 与浙江网商交易见证平台有交互ISV输入网商交易异步通知回调URL，教育缴费同步账单信息给网商，网商会回调此url，ISV即可获取网商相关的参数，根据教育缴费平台账单发送接口返回的 order_no和网商返回的outer_trade_no来对应账单信息。
     *
     * @return self
     */
    public function setBankNotifyUrl($bankNotifyUrl)
    {
        $this->container['bankNotifyUrl'] = $bankNotifyUrl;

        return $this;
    }

    /**
     * Gets bankPartnerId
     *
     * @return string|null
     */
    public function getBankPartnerId()
    {
        return $this->container['bankPartnerId'];
    }

    /**
     * Sets bankPartnerId
     *
     * @param string|null $bankPartnerId 与浙江网商交易见证平台有交互的ISV,由交易见证平台分配给合作方业务平台 签约唯一ID ，由网商分配给ISV的渠道参数
     *
     * @return self
     */
    public function setBankPartnerId($bankPartnerId)
    {
        $this->container['bankPartnerId'] = $bankPartnerId;

        return $this;
    }

    /**
     * Gets bankUid
     *
     * @return string|null
     */
    public function getBankUid()
    {
        return $this->container['bankUid'];
    }

    /**
     * Sets bankUid
     *
     * @param string|null $bankUid 与浙江网商交易见证平台有交互的ISV在创建账户时的uid，也就是ISV平台上的用户ID（字母或数字）
     *
     * @return self
     */
    public function setBankUid($bankUid)
    {
        $this->container['bankUid'] = $bankUid;

        return $this;
    }

    /**
     * Gets bankcardNo
     *
     * @return string|null
     */
    public function getBankcardNo()
    {
        return $this->container['bankcardNo'];
    }

    /**
     * Sets bankcardNo
     *
     * @param string|null $bankcardNo 对应集团到卡模式的银行编号.学校与支付宝后台签约时，由学校提交给支付宝的编号
     *
     * @return self
     */
    public function setBankcardNo($bankcardNo)
    {
        $this->container['bankcardNo'] = $bankcardNo;

        return $this;
    }

    /**
     * Gets batchNo
     *
     * @return string|null
     */
    public function getBatchNo()
    {
        return $this->container['batchNo'];
    }

    /**
     * Sets batchNo
     *
     * @param string|null $batchNo 集团收单模式：分账批次号，支付宝配置后提供的银行卡批次号
     *
     * @return self
     */
    public function setBatchNo($batchNo)
    {
        $this->container['batchNo'] = $batchNo;

        return $this;
    }

    /**
     * Gets cardAliasNo
     *
     * @return string|null
     */
    public function getCardAliasNo()
    {
        return $this->container['cardAliasNo'];
    }

    /**
     * Sets cardAliasNo
     *
     * @param string|null $cardAliasNo 学校开通直付通卡编号，smid与card_alias_no必须同时填写
     *
     * @return self
     */
    public function setCardAliasNo($cardAliasNo)
    {
        $this->container['cardAliasNo'] = $cardAliasNo;

        return $this;
    }

    /**
     * Gets cityCode
     *
     * @return string|null
     */
    public function getCityCode()
    {
        return $this->container['cityCode'];
    }

    /**
     * Sets cityCode
     *
     * @param string|null $cityCode 城市的国家编码。参见 <a href=\"http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/\">国家统计局出版的行政区划代码</a>。
     *
     * @return self
     */
    public function setCityCode($cityCode)
    {
        $this->container['cityCode'] = $cityCode;

        return $this;
    }

    /**
     * Gets cityName
     *
     * @return string|null
     */
    public function getCityName()
    {
        return $this->container['cityName'];
    }

    /**
     * Sets cityName
     *
     * @param string|null $cityName 城市名称
     *
     * @return self
     */
    public function setCityName($cityName)
    {
        $this->container['cityName'] = $cityName;

        return $this;
    }

    /**
     * Gets corporateBranchPid
     *
     * @return string|null
     */
    public function getCorporateBranchPid()
    {
        return $this->container['corporateBranchPid'];
    }

    /**
     * Sets corporateBranchPid
     *
     * @param string|null $corporateBranchPid 集团收单模式：BD批量上传银行卡信息后，支付宝系统分配给ISV的每个卡分配的唯一标识
     *
     * @return self
     */
    public function setCorporateBranchPid($corporateBranchPid)
    {
        $this->container['corporateBranchPid'] = $corporateBranchPid;

        return $this;
    }

    /**
     * Gets districtCode
     *
     * @return string|null
     */
    public function getDistrictCode()
    {
        return $this->container['districtCode'];
    }

    /**
     * Sets districtCode
     *
     * @param string|null $districtCode 区县的国家编码。参见 <a href=\"http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/\">国家统计局出版的行政区划代码</a>。
     *
     * @return self
     */
    public function setDistrictCode($districtCode)
    {
        $this->container['districtCode'] = $districtCode;

        return $this;
    }

    /**
     * Gets districtName
     *
     * @return string|null
     */
    public function getDistrictName()
    {
        return $this->container['districtName'];
    }

    /**
     * Sets districtName
     *
     * @param string|null $districtName 区县名称
     *
     * @return self
     */
    public function setDistrictName($districtName)
    {
        $this->container['districtName'] = $districtName;

        return $this;
    }

    /**
     * Gets isvName
     *
     * @return string|null
     */
    public function getIsvName()
    {
        return $this->container['isvName'];
    }

    /**
     * Sets isvName
     *
     * @param string|null $isvName ISV公司名称 ， 会在账单详情页面展示给用户
     *
     * @return self
     */
    public function setIsvName($isvName)
    {
        $this->container['isvName'] = $isvName;

        return $this;
    }

    /**
     * Gets isvNo
     *
     * @return string|null
     */
    public function getIsvNo()
    {
        return $this->container['isvNo'];
    }

    /**
     * Sets isvNo
     *
     * @param string|null $isvNo 注意：本参数于2017-08-03开始已经废弃，不再需要传递。 由支付宝提供的给已经签约的isv的编码，业务上一般直接采用isv的支付宝PID。
     *
     * @return self
     */
    public function setIsvNo($isvNo)
    {
        $this->container['isvNo'] = $isvNo;

        return $this;
    }

    /**
     * Gets isvNotifyUrl
     *
     * @return string|null
     */
    public function getIsvNotifyUrl()
    {
        return $this->container['isvNotifyUrl'];
    }

    /**
     * Sets isvNotifyUrl
     *
     * @param string|null $isvNotifyUrl 此通知地址是为了保持教育缴费平台与ISV商户支付状态一致性。用户支付成功后，支付宝会根据本isv_notify_url(异步通知说明https://docs.open.alipay.com/203/105286/)，通过POST请求的形式将支付结果作为参数通知到商户系统，ISV商户可以根据返回的参数更新账单状态。
     *
     * @return self
     */
    public function setIsvNotifyUrl($isvNotifyUrl)
    {
        $this->container['isvNotifyUrl'] = $isvNotifyUrl;

        return $this;
    }

    /**
     * Gets isvPhone
     *
     * @return string|null
     */
    public function getIsvPhone()
    {
        return $this->container['isvPhone'];
    }

    /**
     * Sets isvPhone
     *
     * @param string|null $isvPhone ISV的联系方式 ， 会在账单详情页面展示给用户，用户有问题可以直接联系此电话获取帮助
     *
     * @return self
     */
    public function setIsvPhone($isvPhone)
    {
        $this->container['isvPhone'] = $isvPhone;

        return $this;
    }

    /**
     * Gets isvPid
     *
     * @return string|null
     */
    public function getIsvPid()
    {
        return $this->container['isvPid'];
    }

    /**
     * Sets isvPid
     *
     * @param string|null $isvPid 填写已经签约教育缴费的isv的支付宝PID
     *
     * @return self
     */
    public function setIsvPid($isvPid)
    {
        $this->container['isvPid'] = $isvPid;

        return $this;
    }

    /**
     * Gets provinceCode
     *
     * @return string|null
     */
    public function getProvinceCode()
    {
        return $this->container['provinceCode'];
    }

    /**
     * Sets provinceCode
     *
     * @param string|null $provinceCode 省份的国家编码，参见 <a href=\"http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/\">国家统计局出版的行政区划代码</a>。
     *
     * @return self
     */
    public function setProvinceCode($provinceCode)
    {
        $this->container['provinceCode'] = $provinceCode;

        return $this;
    }

    /**
     * Gets provinceName
     *
     * @return string|null
     */
    public function getProvinceName()
    {
        return $this->container['provinceName'];
    }

    /**
     * Sets provinceName
     *
     * @param string|null $provinceName 省名称
     *
     * @return self
     */
    public function setProvinceName($provinceName)
    {
        $this->container['provinceName'] = $provinceName;

        return $this;
    }

    /**
     * Gets schoolIcon
     *
     * @return string|null
     */
    public function getSchoolIcon()
    {
        return $this->container['schoolIcon'];
    }

    /**
     * Sets schoolIcon
     *
     * @param string|null $schoolIcon 学校的校徽或logo，在学校展示页面作为学校的标识。该字段为图片的链接地址，只支持png或jpg图片格式，图片高度为108，宽度为108 ，不大于20k。  注意：此链接要求公网可以访问，否则无法正常展示。
     *
     * @return self
     */
    public function setSchoolIcon($schoolIcon)
    {
        $this->container['schoolIcon'] = $schoolIcon;

        return $this;
    }

    /**
     * Gets schoolIconType
     *
     * @return string|null
     */
    public function getSchoolIconType()
    {
        return $this->container['schoolIconType'];
    }

    /**
     * Sets schoolIconType
     *
     * @param string|null $schoolIconType 如果填写了school_icon参数，则此字段不能为空。目前只支持png和jpg两种格式
     *
     * @return self
     */
    public function setSchoolIconType($schoolIconType)
    {
        $this->container['schoolIconType'] = $schoolIconType;

        return $this;
    }

    /**
     * Gets schoolName
     *
     * @return string|null
     */
    public function getSchoolName()
    {
        return $this->container['schoolName'];
    }

    /**
     * Sets schoolName
     *
     * @param string|null $schoolName 学校名称
     *
     * @return self
     */
    public function setSchoolName($schoolName)
    {
        $this->container['schoolName'] = $schoolName;

        return $this;
    }

    /**
     * Gets schoolPid
     *
     * @return string|null
     */
    public function getSchoolPid()
    {
        return $this->container['schoolPid'];
    }

    /**
     * Sets schoolPid
     *
     * @param string|null $schoolPid 学校签约支付宝教育缴费支付宝pid,如果是直付通学校，填写直付通返回的smid
     *
     * @return self
     */
    public function setSchoolPid($schoolPid)
    {
        $this->container['schoolPid'] = $schoolPid;

        return $this;
    }

    /**
     * Gets schoolStdcode
     *
     * @return string|null
     */
    public function getSchoolStdcode()
    {
        return $this->container['schoolStdcode'];
    }

    /**
     * Sets schoolStdcode
     *
     * @param string|null $schoolStdcode 学校(机构)标识码（由教育部按照国家标准及编码规则编制，可以在教育局官网查询）
     *
     * @return self
     */
    public function setSchoolStdcode($schoolStdcode)
    {
        $this->container['schoolStdcode'] = $schoolStdcode;

        return $this;
    }

    /**
     * Gets schoolType
     *
     * @return string|null
     */
    public function getSchoolType()
    {
        return $this->container['schoolType'];
    }

    /**
     * Sets schoolType
     *
     * @param string|null $schoolType 学校的类型。枚举值如下： *1：代表托儿所。 *2：代表幼儿园。 *3：代表小学。 *4：代表初中。 *5：代表高中。 注意：如果学校兼有多种属性，可以连写，比如：45：代表兼有初中部高中部；34：代表兼有小学部初中部。
     *
     * @return self
     */
    public function setSchoolType($schoolType)
    {
        $this->container['schoolType'] = $schoolType;

        return $this;
    }

    /**
     * Gets smid
     *
     * @return string|null
     */
    public function getSmid()
    {
        return $this->container['smid'];
    }

    /**
     * Sets smid
     *
     * @param string|null $smid 学校开通直付通返回的二级商户id，smid与card_alias_no必须同时填写
     *
     * @return self
     */
    public function setSmid($smid)
    {
        $this->container['smid'] = $smid;

        return $this;
    }

    /**
     * Gets transIn
     *
     * @return string|null
     */
    public function getTransIn()
    {
        return $this->container['transIn'];
    }

    /**
     * Sets transIn
     *
     * @param string|null $transIn 集团收单模式：分账批次号，支付宝配置后提供的银行卡批次号
     *
     * @return self
     */
    public function setTransIn($transIn)
    {
        $this->container['transIn'] = $transIn;

        return $this;
    }

    /**
     * Gets whiteChannelCode
     *
     * @return string|null
     */
    public function getWhiteChannelCode()
    {
        return $this->container['whiteChannelCode'];
    }

    /**
     * Sets whiteChannelCode
     *
     * @param string|null $whiteChannelCode 与浙江网商交易见证平台有交互的ISV,由网商分配给ISV的渠道参数
     *
     * @return self
     */
    public function setWhiteChannelCode($whiteChannelCode)
    {
        $this->container['whiteChannelCode'] = $whiteChannelCode;

        return $this;
    }
    /**
     * Returns true if offset exists. False otherwise.
     *
     * @param integer $offset Offset
     *
     * @return boolean
     */
    public function offsetExists($offset): bool
    {
        return isset($this->container[$offset]);
    }

    /**
     * Gets offset.
     *
     * @param integer $offset Offset
     *
     * @return mixed|null
     */
    #[\ReturnTypeWillChange]
    public function offsetGet($offset)
    {
        return $this->container[$offset] ?? null;
    }

    /**
     * Sets value based on offset.
     *
     * @param int|null $offset Offset
     * @param mixed    $value  Value to be set
     *
     * @return void
     */
    public function offsetSet($offset, $value): void
    {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    /**
     * Unsets offset.
     *
     * @param integer $offset Offset
     *
     * @return void
     */
    public function offsetUnset($offset): void
    {
        unset($this->container[$offset]);
    }

    /**
     * Serializes the object to a value that can be serialized natively by json_encode().
     * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php
     *
     * @return mixed Returns data which can be serialized by json_encode(), which is a value
     * of any type other than a resource.
     */
    #[\ReturnTypeWillChange]
    public function jsonSerialize()
    {
       return ObjectSerializer::sanitizeForSerialization($this);
    }

    /**
     * Gets the string presentation of the object
     *
     * @return string
     */
    public function __toString()
    {
        return json_encode(
            ObjectSerializer::sanitizeForSerialization($this),
            JSON_PRETTY_PRINT
        );
    }

    /**
     * Gets a header-safe presentation of the object
     *
     * @return string
     */
    public function toHeaderValue()
    {
        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
    }
}


