%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/square/square/src/Models/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Square\Models;
use stdClass;
/**
* Square Checkout lets merchants accept online payments for supported
* payment types using a checkout workflow hosted on squareup.com.
*/
class Checkout implements \JsonSerializable
{
/**
* @var string|null
*/
private $id;
/**
* @var string|null
*/
private $checkoutPageUrl;
/**
* @var bool|null
*/
private $askForShippingAddress;
/**
* @var string|null
*/
private $merchantSupportEmail;
/**
* @var string|null
*/
private $prePopulateBuyerEmail;
/**
* @var Address|null
*/
private $prePopulateShippingAddress;
/**
* @var string|null
*/
private $redirectUrl;
/**
* @var Order|null
*/
private $order;
/**
* @var string|null
*/
private $createdAt;
/**
* @var AdditionalRecipient[]|null
*/
private $additionalRecipients;
/**
* Returns Id.
*
* ID generated by Square Checkout when a new checkout is requested.
*/
public function getId(): ?string
{
return $this->id;
}
/**
* Sets Id.
*
* ID generated by Square Checkout when a new checkout is requested.
*
* @maps id
*/
public function setId(?string $id): void
{
$this->id = $id;
}
/**
* Returns Checkout Page Url.
*
* The URL that the buyer's browser should be redirected to after the
* checkout is completed.
*/
public function getCheckoutPageUrl(): ?string
{
return $this->checkoutPageUrl;
}
/**
* Sets Checkout Page Url.
*
* The URL that the buyer's browser should be redirected to after the
* checkout is completed.
*
* @maps checkout_page_url
*/
public function setCheckoutPageUrl(?string $checkoutPageUrl): void
{
$this->checkoutPageUrl = $checkoutPageUrl;
}
/**
* Returns Ask for Shipping Address.
*
* If `true`, Square Checkout will collect shipping information on your
* behalf and store that information with the transaction information in your
* Square Dashboard.
*
* Default: `false`.
*/
public function getAskForShippingAddress(): ?bool
{
return $this->askForShippingAddress;
}
/**
* Sets Ask for Shipping Address.
*
* If `true`, Square Checkout will collect shipping information on your
* behalf and store that information with the transaction information in your
* Square Dashboard.
*
* Default: `false`.
*
* @maps ask_for_shipping_address
*/
public function setAskForShippingAddress(?bool $askForShippingAddress): void
{
$this->askForShippingAddress = $askForShippingAddress;
}
/**
* Returns Merchant Support Email.
*
* The email address to display on the Square Checkout confirmation page
* and confirmation email that the buyer can use to contact the merchant.
*
* If this value is not set, the confirmation page and email will display the
* primary email address associated with the merchant's Square account.
*
* Default: none; only exists if explicitly set.
*/
public function getMerchantSupportEmail(): ?string
{
return $this->merchantSupportEmail;
}
/**
* Sets Merchant Support Email.
*
* The email address to display on the Square Checkout confirmation page
* and confirmation email that the buyer can use to contact the merchant.
*
* If this value is not set, the confirmation page and email will display the
* primary email address associated with the merchant's Square account.
*
* Default: none; only exists if explicitly set.
*
* @maps merchant_support_email
*/
public function setMerchantSupportEmail(?string $merchantSupportEmail): void
{
$this->merchantSupportEmail = $merchantSupportEmail;
}
/**
* Returns Pre Populate Buyer Email.
*
* If provided, the buyer's email is pre-populated on the checkout page
* as an editable text field.
*
* Default: none; only exists if explicitly set.
*/
public function getPrePopulateBuyerEmail(): ?string
{
return $this->prePopulateBuyerEmail;
}
/**
* Sets Pre Populate Buyer Email.
*
* If provided, the buyer's email is pre-populated on the checkout page
* as an editable text field.
*
* Default: none; only exists if explicitly set.
*
* @maps pre_populate_buyer_email
*/
public function setPrePopulateBuyerEmail(?string $prePopulateBuyerEmail): void
{
$this->prePopulateBuyerEmail = $prePopulateBuyerEmail;
}
/**
* Returns Pre Populate Shipping Address.
*
* Represents a postal address in a country. The address format is based
* on an [open-source library from Google](https://github.com/google/libaddressinput). For more
* information,
* see [AddressValidationMetadata](https://github.
* com/google/libaddressinput/wiki/AddressValidationMetadata).
* This format has dedicated fields for four address components: postal code,
* locality (city), administrative district (state, prefecture, or province), and
* sublocality (town or village). These components have dedicated fields in the
* `Address` object because software sometimes behaves differently based on them.
* For example, sales tax software may charge different amounts of sales tax
* based on the postal code, and some software is only available in
* certain states due to compliance reasons.
*
* For the remaining address components, the `Address` type provides the
* `address_line_1` and `address_line_2` fields for free-form data entry.
* These fields are free-form because the remaining address components have
* too many variations around the world and typical software does not parse
* these components. These fields enable users to enter anything they want.
*
* Note that, in the current implementation, all other `Address` type fields are blank.
* These include `address_line_3`, `sublocality_2`, `sublocality_3`,
* `administrative_district_level_2`, `administrative_district_level_3`,
* `first_name`, `last_name`, and `organization`.
*
* When it comes to localization, the seller's language preferences
* (see [Language preferences](https://developer.squareup.com/docs/locations-api#location-specific-and-
* seller-level-language-preferences))
* are ignored for addresses. Even though Square products (such as Square Point of Sale
* and the Seller Dashboard) mostly use a seller's language preference in
* communication, when it comes to addresses, they will use English for a US address,
* Japanese for an address in Japan, and so on.
*/
public function getPrePopulateShippingAddress(): ?Address
{
return $this->prePopulateShippingAddress;
}
/**
* Sets Pre Populate Shipping Address.
*
* Represents a postal address in a country. The address format is based
* on an [open-source library from Google](https://github.com/google/libaddressinput). For more
* information,
* see [AddressValidationMetadata](https://github.
* com/google/libaddressinput/wiki/AddressValidationMetadata).
* This format has dedicated fields for four address components: postal code,
* locality (city), administrative district (state, prefecture, or province), and
* sublocality (town or village). These components have dedicated fields in the
* `Address` object because software sometimes behaves differently based on them.
* For example, sales tax software may charge different amounts of sales tax
* based on the postal code, and some software is only available in
* certain states due to compliance reasons.
*
* For the remaining address components, the `Address` type provides the
* `address_line_1` and `address_line_2` fields for free-form data entry.
* These fields are free-form because the remaining address components have
* too many variations around the world and typical software does not parse
* these components. These fields enable users to enter anything they want.
*
* Note that, in the current implementation, all other `Address` type fields are blank.
* These include `address_line_3`, `sublocality_2`, `sublocality_3`,
* `administrative_district_level_2`, `administrative_district_level_3`,
* `first_name`, `last_name`, and `organization`.
*
* When it comes to localization, the seller's language preferences
* (see [Language preferences](https://developer.squareup.com/docs/locations-api#location-specific-and-
* seller-level-language-preferences))
* are ignored for addresses. Even though Square products (such as Square Point of Sale
* and the Seller Dashboard) mostly use a seller's language preference in
* communication, when it comes to addresses, they will use English for a US address,
* Japanese for an address in Japan, and so on.
*
* @maps pre_populate_shipping_address
*/
public function setPrePopulateShippingAddress(?Address $prePopulateShippingAddress): void
{
$this->prePopulateShippingAddress = $prePopulateShippingAddress;
}
/**
* Returns Redirect Url.
*
* The URL to redirect to after checkout is completed with `checkoutId`,
* Square's `orderId`, `transactionId`, and `referenceId` appended as URL
* parameters. For example, if the provided redirect_url is
* `http://www.example.com/order-complete`, a successful transaction redirects
* the customer to:
*
* <pre><code>http://www.example.com/order-complete?checkoutId=xxxxxx&orderId=xxxxxx&
* referenceId=xxxxxx&transactionId=xxxxxx</code></pre>
*
* If you do not provide a redirect URL, Square Checkout will display an order
* confirmation page on your behalf; however Square strongly recommends that
* you provide a redirect URL so you can verify the transaction results and
* finalize the order through your existing/normal confirmation workflow.
*/
public function getRedirectUrl(): ?string
{
return $this->redirectUrl;
}
/**
* Sets Redirect Url.
*
* The URL to redirect to after checkout is completed with `checkoutId`,
* Square's `orderId`, `transactionId`, and `referenceId` appended as URL
* parameters. For example, if the provided redirect_url is
* `http://www.example.com/order-complete`, a successful transaction redirects
* the customer to:
*
* <pre><code>http://www.example.com/order-complete?checkoutId=xxxxxx&orderId=xxxxxx&
* referenceId=xxxxxx&transactionId=xxxxxx</code></pre>
*
* If you do not provide a redirect URL, Square Checkout will display an order
* confirmation page on your behalf; however Square strongly recommends that
* you provide a redirect URL so you can verify the transaction results and
* finalize the order through your existing/normal confirmation workflow.
*
* @maps redirect_url
*/
public function setRedirectUrl(?string $redirectUrl): void
{
$this->redirectUrl = $redirectUrl;
}
/**
* Returns Order.
*
* Contains all information related to a single order to process with Square,
* including line items that specify the products to purchase. `Order` objects also
* include information about any associated tenders, refunds, and returns.
*
* All Connect V2 Transactions have all been converted to Orders including all associated
* itemization data.
*/
public function getOrder(): ?Order
{
return $this->order;
}
/**
* Sets Order.
*
* Contains all information related to a single order to process with Square,
* including line items that specify the products to purchase. `Order` objects also
* include information about any associated tenders, refunds, and returns.
*
* All Connect V2 Transactions have all been converted to Orders including all associated
* itemization data.
*
* @maps order
*/
public function setOrder(?Order $order): void
{
$this->order = $order;
}
/**
* Returns Created At.
*
* The time when the checkout was created, in RFC 3339 format.
*/
public function getCreatedAt(): ?string
{
return $this->createdAt;
}
/**
* Sets Created At.
*
* The time when the checkout was created, in RFC 3339 format.
*
* @maps created_at
*/
public function setCreatedAt(?string $createdAt): void
{
$this->createdAt = $createdAt;
}
/**
* Returns Additional Recipients.
*
* Additional recipients (other than the merchant) receiving a portion of this checkout.
* For example, fees assessed on the purchase by a third party integration.
*
* @return AdditionalRecipient[]|null
*/
public function getAdditionalRecipients(): ?array
{
return $this->additionalRecipients;
}
/**
* Sets Additional Recipients.
*
* Additional recipients (other than the merchant) receiving a portion of this checkout.
* For example, fees assessed on the purchase by a third party integration.
*
* @maps additional_recipients
*
* @param AdditionalRecipient[]|null $additionalRecipients
*/
public function setAdditionalRecipients(?array $additionalRecipients): void
{
$this->additionalRecipients = $additionalRecipients;
}
/**
* Encode this object to JSON
*
* @param bool $asArrayWhenEmpty Whether to serialize this model as an array whenever no fields
* are set. (default: false)
*
* @return mixed
*/
public function jsonSerialize(bool $asArrayWhenEmpty = false)
{
$json = [];
if (isset($this->id)) {
$json['id'] = $this->id;
}
if (isset($this->checkoutPageUrl)) {
$json['checkout_page_url'] = $this->checkoutPageUrl;
}
if (isset($this->askForShippingAddress)) {
$json['ask_for_shipping_address'] = $this->askForShippingAddress;
}
if (isset($this->merchantSupportEmail)) {
$json['merchant_support_email'] = $this->merchantSupportEmail;
}
if (isset($this->prePopulateBuyerEmail)) {
$json['pre_populate_buyer_email'] = $this->prePopulateBuyerEmail;
}
if (isset($this->prePopulateShippingAddress)) {
$json['pre_populate_shipping_address'] = $this->prePopulateShippingAddress;
}
if (isset($this->redirectUrl)) {
$json['redirect_url'] = $this->redirectUrl;
}
if (isset($this->order)) {
$json['order'] = $this->order;
}
if (isset($this->createdAt)) {
$json['created_at'] = $this->createdAt;
}
if (isset($this->additionalRecipients)) {
$json['additional_recipients'] = $this->additionalRecipients;
}
$json = array_filter($json, function ($val) {
return $val !== null;
});
return (!$asArrayWhenEmpty && empty($json)) ? new stdClass() : $json;
}
}