<?php

namespace Yeepay\Yop\Sdk\Service\Aggpay\Model;

use Yeepay\Yop\Sdk\Model\BaseRequest;

class PrePayRequest extends BaseRequest
{

    /**
     * @var string
     */
    private $parentMerchantNo;

    /**
     * @var string
     */
    private $merchantNo;

    /**
     * @var string
     */
    private $orderId;

    /**
     * @var float
     */
    private $orderAmount;

    /**
     * @var string
     */
    private $expiredTime;

    /**
     * @var string
     */
    private $notifyUrl;

    /**
     * @var string
     */
    private $redirectUrl;

    /**
     * @var string
     */
    private $memo;

    /**
     * @var string
     */
    private $goodsName;

    /**
     * @var string
     */
    private $fundProcessType;

    /**
     * @var string
     */
    private $payWay;

    /**
     * @var string
     */
    private $channel;

    /**
     * @var string
     */
    private $scene;

    /**
     * @var string
     */
    private $appId;

    /**
     * @var string
     */
    private $userId;

    /**
     * @var string
     */
    private $userIp;

    /**
     * @var string
     */
    private $channelSpecifiedInfo;

    /**
     * @var string
     */
    private $channelPromotionInfo;

    /**
     * @var string
     */
    private $identityInfo;

    /**
     * @var string
     */
    private $limitCredit;

    /**
     * @var string
     */
    private $token;

    /**
     * @var string
     */
    private $uniqueOrderNo;

    /**
     * @var string
     */
    private $csUrl;

    /**
     * @var string
     */
    private $accountLinkInfo;

    /**
     * @var string
     */
    private $ypPromotionInfo;

    /**
     * Gets parentMerchantNo
     * @return string
     */
    public function getParentMerchantNo()
    {
        return $this->parentMerchantNo;
    }

    /**
     * Sets parentMerchantNo
     * @param  string  $parentMerchantNo
     * @return PrePayRequest
     */
    public function setParentMerchantNo($parentMerchantNo)
    {
        $this->parentMerchantNo = $parentMerchantNo;

        return $this;
    }

    /**
     * Gets merchantNo
     * @return string
     */
    public function getMerchantNo()
    {
        return $this->merchantNo;
    }

    /**
     * Sets merchantNo
     * @param  string  $merchantNo
     * @return PrePayRequest
     */
    public function setMerchantNo($merchantNo)
    {
        $this->merchantNo = $merchantNo;

        return $this;
    }

    /**
     * Gets orderId
     * @return string
     */
    public function getOrderId()
    {
        return $this->orderId;
    }

    /**
     * Sets orderId
     * @param  string  $orderId
     * @return PrePayRequest
     */
    public function setOrderId($orderId)
    {
        $this->orderId = $orderId;

        return $this;
    }

    /**
     * Gets orderAmount
     * @return float
     */
    public function getOrderAmount()
    {
        return $this->orderAmount;
    }

    /**
     * Sets orderAmount
     * @param  float  $orderAmount
     * @return PrePayRequest
     */
    public function setOrderAmount($orderAmount)
    {
        $this->orderAmount = $orderAmount;

        return $this;
    }

    /**
     * Gets expiredTime
     * @return string
     */
    public function getExpiredTime()
    {
        return $this->expiredTime;
    }

    /**
     * Sets expiredTime
     * @param  string  $expiredTime
     * @return PrePayRequest
     */
    public function setExpiredTime($expiredTime)
    {
        $this->expiredTime = $expiredTime;

        return $this;
    }

    /**
     * Gets notifyUrl
     * @return string
     */
    public function getNotifyUrl()
    {
        return $this->notifyUrl;
    }

    /**
     * Sets notifyUrl
     * @param  string  $notifyUrl
     * @return PrePayRequest
     */
    public function setNotifyUrl($notifyUrl)
    {
        $this->notifyUrl = $notifyUrl;

        return $this;
    }

    /**
     * Gets redirectUrl
     * @return string
     */
    public function getRedirectUrl()
    {
        return $this->redirectUrl;
    }

    /**
     * Sets redirectUrl
     * @param  string  $redirectUrl
     * @return PrePayRequest
     */
    public function setRedirectUrl($redirectUrl)
    {
        $this->redirectUrl = $redirectUrl;

        return $this;
    }

    /**
     * Gets memo
     * @return string
     */
    public function getMemo()
    {
        return $this->memo;
    }

    /**
     * Sets memo
     * @param  string  $memo
     * @return PrePayRequest
     */
    public function setMemo($memo)
    {
        $this->memo = $memo;

        return $this;
    }

    /**
     * Gets goodsName
     * @return string
     */
    public function getGoodsName()
    {
        return $this->goodsName;
    }

    /**
     * Sets goodsName
     * @param  string  $goodsName
     * @return PrePayRequest
     */
    public function setGoodsName($goodsName)
    {
        $this->goodsName = $goodsName;

        return $this;
    }

    /**
     * Gets fundProcessType
     * @return string
     */
    public function getFundProcessType()
    {
        return $this->fundProcessType;
    }

    /**
     * Sets fundProcessType
     * @param  string  $fundProcessType
     * @return PrePayRequest
     */
    public function setFundProcessType($fundProcessType)
    {
        $this->fundProcessType = $fundProcessType;

        return $this;
    }

    /**
     * Gets payWay
     * @return string
     */
    public function getPayWay()
    {
        return $this->payWay;
    }

    /**
     * Sets payWay
     * @param  string  $payWay
     * @return PrePayRequest
     */
    public function setPayWay($payWay)
    {
        $this->payWay = $payWay;

        return $this;
    }

    /**
     * Gets channel
     * @return string
     */
    public function getChannel()
    {
        return $this->channel;
    }

    /**
     * Sets channel
     * @param  string  $channel
     * @return PrePayRequest
     */
    public function setChannel($channel)
    {
        $this->channel = $channel;

        return $this;
    }

    /**
     * Gets scene
     * @return string
     */
    public function getScene()
    {
        return $this->scene;
    }

    /**
     * Sets scene
     * @param  string  $scene
     * @return PrePayRequest
     */
    public function setScene($scene)
    {
        $this->scene = $scene;

        return $this;
    }

    /**
     * Gets appId
     * @return string
     */
    public function getAppId()
    {
        return $this->appId;
    }

    /**
     * Sets appId
     * @param  string  $appId
     * @return PrePayRequest
     */
    public function setAppId($appId)
    {
        $this->appId = $appId;

        return $this;
    }

    /**
     * Gets userId
     * @return string
     */
    public function getUserId()
    {
        return $this->userId;
    }

    /**
     * Sets userId
     * @param  string  $userId
     * @return PrePayRequest
     */
    public function setUserId($userId)
    {
        $this->userId = $userId;

        return $this;
    }

    /**
     * Gets userIp
     * @return string
     */
    public function getUserIp()
    {
        return $this->userIp;
    }

    /**
     * Sets userIp
     * @param  string  $userIp
     * @return PrePayRequest
     */
    public function setUserIp($userIp)
    {
        $this->userIp = $userIp;

        return $this;
    }

    /**
     * Gets channelSpecifiedInfo
     * @return string
     */
    public function getChannelSpecifiedInfo()
    {
        return $this->channelSpecifiedInfo;
    }

    /**
     * Sets channelSpecifiedInfo
     * @param  string  $channelSpecifiedInfo
     * @return PrePayRequest
     */
    public function setChannelSpecifiedInfo($channelSpecifiedInfo)
    {
        $this->channelSpecifiedInfo = $channelSpecifiedInfo;

        return $this;
    }

    /**
     * Gets channelPromotionInfo
     * @return string
     */
    public function getChannelPromotionInfo()
    {
        return $this->channelPromotionInfo;
    }

    /**
     * Sets channelPromotionInfo
     * @param  string  $channelPromotionInfo
     * @return PrePayRequest
     */
    public function setChannelPromotionInfo($channelPromotionInfo)
    {
        $this->channelPromotionInfo = $channelPromotionInfo;

        return $this;
    }

    /**
     * Gets identityInfo
     * @return string
     */
    public function getIdentityInfo()
    {
        return $this->identityInfo;
    }

    /**
     * Sets identityInfo
     * @param  string  $identityInfo
     * @return PrePayRequest
     */
    public function setIdentityInfo($identityInfo)
    {
        $this->identityInfo = $identityInfo;

        return $this;
    }

    /**
     * Gets limitCredit
     * @return string
     */
    public function getLimitCredit()
    {
        return $this->limitCredit;
    }

    /**
     * Sets limitCredit
     * @param  string  $limitCredit
     * @return PrePayRequest
     */
    public function setLimitCredit($limitCredit)
    {
        $this->limitCredit = $limitCredit;

        return $this;
    }

    /**
     * Gets token
     * @return string
     */
    public function getToken()
    {
        return $this->token;
    }

    /**
     * Sets token
     * @param  string  $token
     * @return PrePayRequest
     */
    public function setToken($token)
    {
        $this->token = $token;

        return $this;
    }

    /**
     * Gets uniqueOrderNo
     * @return string
     */
    public function getUniqueOrderNo()
    {
        return $this->uniqueOrderNo;
    }

    /**
     * Sets uniqueOrderNo
     * @param  string  $uniqueOrderNo
     * @return PrePayRequest
     */
    public function setUniqueOrderNo($uniqueOrderNo)
    {
        $this->uniqueOrderNo = $uniqueOrderNo;

        return $this;
    }

    /**
     * Gets csUrl
     * @return string
     */
    public function getCsUrl()
    {
        return $this->csUrl;
    }

    /**
     * Sets csUrl
     * @param  string  $csUrl
     * @return PrePayRequest
     */
    public function setCsUrl($csUrl)
    {
        $this->csUrl = $csUrl;

        return $this;
    }

    /**
     * Gets accountLinkInfo
     * @return string
     */
    public function getAccountLinkInfo()
    {
        return $this->accountLinkInfo;
    }

    /**
     * Sets accountLinkInfo
     * @param  string  $accountLinkInfo
     * @return PrePayRequest
     */
    public function setAccountLinkInfo($accountLinkInfo)
    {
        $this->accountLinkInfo = $accountLinkInfo;

        return $this;
    }

    /**
     * Gets ypPromotionInfo
     * @return string
     */
    public function getYpPromotionInfo()
    {
        return $this->ypPromotionInfo;
    }

    /**
     * Sets ypPromotionInfo
     * @param  string  $ypPromotionInfo
     * @return PrePayRequest
     */
    public function setYpPromotionInfo($ypPromotionInfo)
    {
        $this->ypPromotionInfo = $ypPromotionInfo;

        return $this;
    }

    public static function getOperationId()
    {
        return 'prePay';
    }

}
