View file sdark.mobi/vendor/xsolla/xsolla-sdk-php/src/API/PaymentUI/TokenRequest.php

File size: 2.21Kb
<?php

namespace Xsolla\SDK\API\PaymentUI;

class TokenRequest
{
    /**
     * @var array
     */
    protected $data = array();

    /**
     * @param int    $projectId
     * @param string $userId
     */
    public function __construct($projectId, $userId)
    {
        $this->data['user']['id']['value'] = $userId;
        $this->data['settings']['project_id'] = $projectId;
    }

    /**
     * @param string $email
     *
     * @return self
     */
    public function setUserEmail($email)
    {
        $this->data['user']['email']['value'] = $email;

        return $this;
    }

    /**
     * @param string $name
     *
     * @return self
     */
    public function setUserName($name)
    {
        $this->data['user']['name']['value'] = $name;

        return $this;
    }

    /**
     * @param string $currencyIsoCode
     *
     * @return self
     */
    public function setCurrency($currencyIsoCode)
    {
        $this->data['settings']['currency'] = $currencyIsoCode;

        return $this;
    }

    /**
     * @param array $customParameters
     *
     * @return self
     */
    public function setCustomParameters(array $customParameters)
    {
        $this->data['custom_parameters'] = $customParameters;

        return $this;
    }

    /**
     * @param string $externalId
     *
     * @return self
     */
    public function setExternalPaymentId($externalId)
    {
        $this->data['settings']['external_id'] = $externalId;

        return $this;
    }

    /**
     * @param bool $isSandbox
     *
     * @return self
     */
    public function setSandboxMode($isSandbox = true)
    {
        if (true === $isSandbox) {
            $this->data['settings']['mode'] = 'sandbox';
        } else {
            unset($this->data['settings']['mode']);
        }

        return $this;
    }

    /**
     * @param  float  $amount
     * @param  string $currency
     * @return $this
     */
    public function setPurchase($amount, $currency)
    {
        $this->data['purchase']['checkout']['amount'] = $amount;
        $this->data['purchase']['checkout']['currency'] = $currency;

        return $this;
    }

    /**
     * @return array
     */
    public function toArray()
    {
        return $this->data;
    }
}