File: D:/HostingSpaces/brameda/brameda.nl/app/Komma/Shop/Payment/Clients/MultiSafepay/Models/Order.php
<?php
namespace App\Komma\Shop\Payment\Clients\MultiSafepay\Models;
/**
* Class Order
*
* @see https://docs.multisafepay.com/api/#orders
* @sidenote Created by Komma
*
* MultiSafepay calls their transactions / payments orders.
*
* @package App\Komma\Shop\Payment\Clients\MultiSafepay\Models
*/
class Order
{
/** @var string */
private $transaction_id;
/** @var string */
private $order_id;
/** @var string */
private $created;
/** @var string */
private $currency;
/** @var int */
private $amount;
/** @var string */
private $description;
/** @var string */
private $var1;
/** @var string */
private $var2;
/** @var string */
private $var3;
/** @var string */
private $items;
/** @var int */
private $amount_refunded;
/** @var string */
private $status;
/** @var string */
private $financial_status;
/** @var string */
private $reason;
/** @var string */
private $reason_code;
/** @var string */
private $fastcheckout;
/** @var string */
private $modified;
/** @var PaymentDetails */
private $payment_details;
/** @var Customer */
private $customer;
/** @var PaymentMethod[] */
private $payment_methods = [];
/** @var Cost[] */
private $costs = [];
/** @var string */
private $payment_url;
/** @var string Example: NL87ABNA0000000001*/
private $account_iban;
/** @var string Example: INGBNL2A*/
private $account_bic;
/** Prevent constructing a new instance with the new keyword */
private function __construct() {}
/**
* Create an instance from a json string
*
* @param string $jsonString
* @return Order
* @throws \Exception
*/
public static function FromJsonString(string $jsonString): Order {
$instance = new self;
$data = json_decode($jsonString, true);
if($data == null) throw new \Exception('MultiSafepay Order: The order data is invalid. It does not seem to be a json string.');
$instance->transaction_id = (!empty($data['transaction_id'])) ? $data['transaction_id'] : '';
$instance->order_id = (!empty($data['order_id'])) ? $data['order_id'] : '';
$instance->created = (!empty($data['created'])) ? $data['created'] : '';
$instance->currency = (!empty($data['currency'])) ? $data['currency'] : '';
$instance->amount = (!empty($data['amount'])) ? $data['amount'] : 0;
$instance->description = (!empty($data['description'])) ? $data['description'] : '';
$instance->var1 = (!empty($data['var1'])) ? $data['var1'] : null;
$instance->var2 = (!empty($data['var2'])) ? $data['var2'] : null;
$instance->var3 = (!empty($data['var3'])) ? $data['var3'] : null;
$instance->items = (!empty($data['items'])) ? $data['items'] : '';
$instance->amount_refunded = (!empty($data['amount_refunded'])) ? $data['amount_refunded'] : 0;
$instance->status = (!empty($data['status'])) ? $data['status'] : '';
$instance->financial_status = (!empty($data['financial_status'])) ? $data['financial_status'] : '';
$instance->reason = (!empty($data['reason'])) ? $data['reason'] : '';
$instance->reason_code = (!empty($data['reason_code'])) ? $data['reason_code'] : '';
$instance->fastcheckout = (!empty($data['fastcheckout'])) ? $data['fastcheckout'] : '';
$instance->modified = (!empty($data['modified'])) ? $data['modified'] : '';
if(!empty($data['customer'])) {
$instance->customer = Customer::FromJsonString(json_encode($data['customer']));
} else {
$instance->customer = Customer::FromJsonString('{}');
}
if(!empty($data['payment_details'])) {
$instance->payment_details = PaymentDetails::FromJsonString(json_encode($data['payment_details']));
} else {
$instance->payment_details = PaymentDetails::FromJsonString('{}');
}
if(!empty($data['payment_methods'])) {
if(is_array($data['payment_methods'])) {
foreach ($data['payment_methods'] as $paymentMethod) {
$instance->payment_methods[] = PaymentMethod::FromJsonString(json_encode($paymentMethod));
}
}
}
if(!empty($data['costs'])) {
if(is_array($data['costs'])) {
foreach ($data['costs'] as $paymentMethod) {
$instance->costs[] = Cost::FromJsonString(json_encode($paymentMethod));
}
}
}
$instance->payment_url = (!empty($data['payment_url'])) ? $data['payment_url'] : '';
return $instance;
}
/**
* @return string
*/
public function getTransactionId(): string
{
return $this->transaction_id;
}
/**
* @return string
*/
public function getOrderId(): string
{
return $this->order_id;
}
/**
* @return string
*/
public function getCreated(): string
{
return $this->created;
}
/**
* @return string
*/
public function getCurrency(): string
{
return $this->currency;
}
/**
* @return int
*/
public function getAmount(): int
{
return $this->amount;
}
/**
* @return string
*/
public function getDescription(): string
{
return $this->description;
}
/**
* @return string
*/
public function getVar1(): string
{
return $this->var1;
}
/**
* @return string
*/
public function getVar2(): string
{
return $this->var2;
}
/**
* @return string
*/
public function getVar3(): string
{
return $this->var3;
}
/**
* @return string
*/
public function getItems(): string
{
return $this->items;
}
/**
* @return int
*/
public function getAmountRefunded(): int
{
return $this->amount_refunded;
}
/**
* @return string
*/
public function getStatus(): string
{
return $this->status;
}
/**
* @return string
*/
public function getFinancialStatus(): string
{
return $this->financial_status;
}
/**
* @return string
*/
public function getReason(): string
{
return $this->reason;
}
/**
* @return string
*/
public function getReasonCode(): string
{
return $this->reason_code;
}
/**
* @return string
*/
public function getFastcheckout(): string
{
return $this->fastcheckout;
}
/**
* @return string
*/
public function getModified(): string
{
return $this->modified;
}
/**
* @return PaymentDetails
*/
public function getPaymentDetails(): PaymentDetails
{
return $this->payment_details;
}
/**
* @return Customer
*/
public function getCustomer(): Customer
{
return $this->customer;
}
/**
* @return PaymentMethod[]
*/
public function getPaymentMethods(): array
{
return $this->payment_methods;
}
/**
* @return Cost[]
*/
public function getCosts(): array
{
return $this->costs;
}
/**
* @return string
*/
public function getPaymentUrl(): string
{
return $this->payment_url;
}
/**
* @return string
*/
public function getAccountIban(): string
{
return $this->account_iban;
}
/**
* @return string
*/
public function getAccountBic(): string
{
return $this->account_bic;
}
/**
* @param string $transaction_id
* @return Order
*/
public function setTransactionId(string $transaction_id): Order
{
$this->transaction_id = $transaction_id;
return $this;
}
/**
* @param string $order_id
* @return Order
*/
public function setOrderId(string $order_id): Order
{
$this->order_id = $order_id;
return $this;
}
/**
* @param string $created
* @return Order
*/
public function setCreated(string $created): Order
{
$this->created = $created;
return $this;
}
/**
* @param string $currency
* @return Order
*/
public function setCurrency(string $currency): Order
{
$this->currency = $currency;
return $this;
}
/**
* @param int $amount
* @return Order
*/
public function setAmount(int $amount): Order
{
$this->amount = $amount;
return $this;
}
/**
* @param string $description
* @return Order
*/
public function setDescription(string $description): Order
{
$this->description = $description;
return $this;
}
/**
* @param string $var1
* @return Order
*/
public function setVar1(string $var1): Order
{
$this->var1 = $var1;
return $this;
}
/**
* @param string $var2
* @return Order
*/
public function setVar2(string $var2): Order
{
$this->var2 = $var2;
return $this;
}
/**
* @param string $var3
* @return Order
*/
public function setVar3(string $var3): Order
{
$this->var3 = $var3;
return $this;
}
/**
* @param string $items
* @return Order
*/
public function setItems(string $items): Order
{
$this->items = $items;
return $this;
}
/**
* @param int $amount_refunded
* @return Order
*/
public function setAmountRefunded(int $amount_refunded): Order
{
$this->amount_refunded = $amount_refunded;
return $this;
}
/**
* @param string $status
* @return Order
*/
public function setStatus(string $status): Order
{
$this->status = $status;
return $this;
}
/**
* @param string $financial_status
* @return Order
*/
public function setFinancialStatus(string $financial_status): Order
{
$this->financial_status = $financial_status;
return $this;
}
/**
* @param string $reason
* @return Order
*/
public function setReason(string $reason): Order
{
$this->reason = $reason;
return $this;
}
/**
* @param string $reason_code
* @return Order
*/
public function setReasonCode(string $reason_code): Order
{
$this->reason_code = $reason_code;
return $this;
}
/**
* @param string $fastcheckout
* @return Order
*/
public function setFastcheckout(string $fastcheckout): Order
{
$this->fastcheckout = $fastcheckout;
return $this;
}
/**
* @param string $modified
* @return Order
*/
public function setModified(string $modified): Order
{
$this->modified = $modified;
return $this;
}
/**
* @param PaymentDetails $payment_details
* @return Order
*/
public function setPaymentDetails(PaymentDetails $payment_details): Order
{
$this->payment_details = $payment_details;
return $this;
}
/**
* @param Customer $customer
* @return Order
*/
public function setCustomer(Customer $customer): Order
{
$this->customer = $customer;
return $this;
}
/**
* @param PaymentMethod[] $payment_methods
* @return Order
*/
public function setPaymentMethods(array $payment_methods): Order
{
$this->payment_methods = $payment_methods;
return $this;
}
/**
* @param Cost[] $costs
* @return Order
*/
public function setCosts(array $costs): Order
{
$this->costs = $costs;
return $this;
}
/**
* @param string $payment_url
* @return Order
*/
public function setPaymentUrl(string $payment_url): Order
{
$this->payment_url = $payment_url;
return $this;
}
/**
* @param string $account_iban
* @return Order
*/
public function setAccountIban(string $account_iban): Order
{
$this->account_iban = $account_iban;
return $this;
}
/**
* @param string $account_bic
* @return Order
*/
public function setAccountBic(string $account_bic): Order
{
$this->account_bic = $account_bic;
return $this;
}
}