1
0
Files
PayPal-PHP-Server-SDK/src/Models/Order.php
2024-11-21 17:43:29 +00:00

352 lines
9.6 KiB
PHP

<?php
declare(strict_types=1);
/*
* PaypalServerSdkLib
*
* This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
*/
namespace PaypalServerSdkLib\Models;
use stdClass;
/**
* The order details.
*/
class Order implements \JsonSerializable
{
/**
* @var string|null
*/
private $createTime;
/**
* @var string|null
*/
private $updateTime;
/**
* @var string|null
*/
private $id;
/**
* @var PaymentSourceResponse|null
*/
private $paymentSource;
/**
* @var string|null
*/
private $intent;
/**
* @var mixed
*/
private $processingInstruction;
/**
* @var Payer|null
*/
private $payer;
/**
* @var PurchaseUnit[]|null
*/
private $purchaseUnits;
/**
* @var string|null
*/
private $status;
/**
* @var LinkDescription[]|null
*/
private $links;
/**
* Returns Create Time.
* The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.
* 6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong>
* The regular expression provides guidance but does not reject all invalid dates.</blockquote>
*/
public function getCreateTime(): ?string
{
return $this->createTime;
}
/**
* Sets Create Time.
* The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.
* 6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong>
* The regular expression provides guidance but does not reject all invalid dates.</blockquote>
*
* @maps create_time
*/
public function setCreateTime(?string $createTime): void
{
$this->createTime = $createTime;
}
/**
* Returns Update Time.
* The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.
* 6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong>
* The regular expression provides guidance but does not reject all invalid dates.</blockquote>
*/
public function getUpdateTime(): ?string
{
return $this->updateTime;
}
/**
* Sets Update Time.
* The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.
* 6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong>
* The regular expression provides guidance but does not reject all invalid dates.</blockquote>
*
* @maps update_time
*/
public function setUpdateTime(?string $updateTime): void
{
$this->updateTime = $updateTime;
}
/**
* Returns Id.
* The ID of the order.
*/
public function getId(): ?string
{
return $this->id;
}
/**
* Sets Id.
* The ID of the order.
*
* @maps id
*/
public function setId(?string $id): void
{
$this->id = $id;
}
/**
* Returns Payment Source.
* The payment source used to fund the payment.
*/
public function getPaymentSource(): ?PaymentSourceResponse
{
return $this->paymentSource;
}
/**
* Sets Payment Source.
* The payment source used to fund the payment.
*
* @maps payment_source
*/
public function setPaymentSource(?PaymentSourceResponse $paymentSource): void
{
$this->paymentSource = $paymentSource;
}
/**
* Returns Intent.
* The intent to either capture payment immediately or authorize a payment for an order after order
* creation.
*/
public function getIntent(): ?string
{
return $this->intent;
}
/**
* Sets Intent.
* The intent to either capture payment immediately or authorize a payment for an order after order
* creation.
*
* @maps intent
*/
public function setIntent(?string $intent): void
{
$this->intent = $intent;
}
/**
* Returns Processing Instruction.
*
* @return mixed
*/
public function getProcessingInstruction()
{
return $this->processingInstruction;
}
/**
* Sets Processing Instruction.
*
* @maps processing_instruction
*
* @param mixed $processingInstruction
*/
public function setProcessingInstruction($processingInstruction): void
{
$this->processingInstruction = $processingInstruction;
}
/**
* Returns Payer.
*/
public function getPayer(): ?Payer
{
return $this->payer;
}
/**
* Sets Payer.
*
* @maps payer
*/
public function setPayer(?Payer $payer): void
{
$this->payer = $payer;
}
/**
* Returns Purchase Units.
* An array of purchase units. Each purchase unit establishes a contract between a customer and
* merchant. Each purchase unit represents either a full or partial order that the customer intends to
* purchase from the merchant.
*
* @return PurchaseUnit[]|null
*/
public function getPurchaseUnits(): ?array
{
return $this->purchaseUnits;
}
/**
* Sets Purchase Units.
* An array of purchase units. Each purchase unit establishes a contract between a customer and
* merchant. Each purchase unit represents either a full or partial order that the customer intends to
* purchase from the merchant.
*
* @maps purchase_units
*
* @param PurchaseUnit[]|null $purchaseUnits
*/
public function setPurchaseUnits(?array $purchaseUnits): void
{
$this->purchaseUnits = $purchaseUnits;
}
/**
* Returns Status.
* The order status.
*/
public function getStatus(): ?string
{
return $this->status;
}
/**
* Sets Status.
* The order status.
*
* @maps status
*/
public function setStatus(?string $status): void
{
$this->status = $status;
}
/**
* Returns Links.
* An array of request-related HATEOAS links. To complete payer approval, use the `approve` link to
* redirect the payer. The API caller has 6 hours (default setting, this which can be changed by your
* account manager to 24/48/72 hours to accommodate your use case) from the time the order is created,
* to redirect your payer. Once redirected, the API caller has 6 hours for the payer to approve the
* order and either authorize or capture the order. If you are not using the PayPal JavaScript SDK to
* initiate PayPal Checkout (in context) ensure that you include `application_context.return_url` is
* specified or you will get "We're sorry, Things don't appear to be working at the moment" after the
* payer approves the payment.
*
* @return LinkDescription[]|null
*/
public function getLinks(): ?array
{
return $this->links;
}
/**
* Sets Links.
* An array of request-related HATEOAS links. To complete payer approval, use the `approve` link to
* redirect the payer. The API caller has 6 hours (default setting, this which can be changed by your
* account manager to 24/48/72 hours to accommodate your use case) from the time the order is created,
* to redirect your payer. Once redirected, the API caller has 6 hours for the payer to approve the
* order and either authorize or capture the order. If you are not using the PayPal JavaScript SDK to
* initiate PayPal Checkout (in context) ensure that you include `application_context.return_url` is
* specified or you will get "We're sorry, Things don't appear to be working at the moment" after the
* payer approves the payment.
*
* @maps links
*
* @param LinkDescription[]|null $links
*/
public function setLinks(?array $links): void
{
$this->links = $links;
}
/**
* Encode this object to JSON
*
* @param bool $asArrayWhenEmpty Whether to serialize this model as an array whenever no fields
* are set. (default: false)
*
* @return array|stdClass
*/
#[\ReturnTypeWillChange] // @phan-suppress-current-line PhanUndeclaredClassAttribute for (php < 8.1)
public function jsonSerialize(bool $asArrayWhenEmpty = false)
{
$json = [];
if (isset($this->createTime)) {
$json['create_time'] = $this->createTime;
}
if (isset($this->updateTime)) {
$json['update_time'] = $this->updateTime;
}
if (isset($this->id)) {
$json['id'] = $this->id;
}
if (isset($this->paymentSource)) {
$json['payment_source'] = $this->paymentSource;
}
if (isset($this->intent)) {
$json['intent'] = CheckoutPaymentIntent::checkValue($this->intent);
}
if (isset($this->processingInstruction)) {
$json['processing_instruction'] = $this->processingInstruction;
}
if (isset($this->payer)) {
$json['payer'] = $this->payer;
}
if (isset($this->purchaseUnits)) {
$json['purchase_units'] = $this->purchaseUnits;
}
if (isset($this->status)) {
$json['status'] = OrderStatus::checkValue($this->status);
}
if (isset($this->links)) {
$json['links'] = $this->links;
}
return (!$asArrayWhenEmpty && empty($json)) ? new stdClass() : $json;
}
}