mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
226 lines
4.9 KiB
PHP
226 lines
4.9 KiB
PHP
<?php
|
|
/**
|
|
* The capture entity.
|
|
*
|
|
* @link https://developer.paypal.com/docs/api/orders/v2/#definition-capture
|
|
*
|
|
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
|
|
*/
|
|
|
|
declare( strict_types=1 );
|
|
|
|
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
|
|
|
|
/**
|
|
* Class Capture
|
|
*/
|
|
class Capture {
|
|
|
|
/**
|
|
* The ID.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $id;
|
|
|
|
/**
|
|
* The status.
|
|
*
|
|
* @var CaptureStatus
|
|
*/
|
|
private $status;
|
|
|
|
/**
|
|
* The amount.
|
|
*
|
|
* @var Amount
|
|
*/
|
|
private $amount;
|
|
|
|
/**
|
|
* Whether this is the final capture or not.
|
|
*
|
|
* @var bool
|
|
*/
|
|
private $final_capture;
|
|
|
|
/**
|
|
* The seller protection.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $seller_protection;
|
|
|
|
/**
|
|
* The detailed breakdown of the capture activity (fees, ...).
|
|
*
|
|
* @var SellerReceivableBreakdown|null
|
|
*/
|
|
private $seller_receivable_breakdown;
|
|
|
|
/**
|
|
* The fraud processor response (AVS, CVV ...).
|
|
*
|
|
* @var FraudProcessorResponse|null
|
|
*/
|
|
protected $fraud_processor_response;
|
|
|
|
/**
|
|
* The invoice id.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $invoice_id;
|
|
|
|
/**
|
|
* The custom id.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $custom_id;
|
|
|
|
/**
|
|
* Capture constructor.
|
|
*
|
|
* @param string $id The ID.
|
|
* @param CaptureStatus $status The status.
|
|
* @param Amount $amount The amount.
|
|
* @param bool $final_capture The final capture.
|
|
* @param string $seller_protection The seller protection.
|
|
* @param string $invoice_id The invoice id.
|
|
* @param string $custom_id The custom id.
|
|
* @param SellerReceivableBreakdown|null $seller_receivable_breakdown The detailed breakdown of the capture activity (fees, ...).
|
|
* @param FraudProcessorResponse|null $fraud_processor_response The fraud processor response (AVS, CVV ...).
|
|
*/
|
|
public function __construct(
|
|
string $id,
|
|
CaptureStatus $status,
|
|
Amount $amount,
|
|
bool $final_capture,
|
|
string $seller_protection,
|
|
string $invoice_id,
|
|
string $custom_id,
|
|
?SellerReceivableBreakdown $seller_receivable_breakdown,
|
|
?FraudProcessorResponse $fraud_processor_response
|
|
) {
|
|
|
|
$this->id = $id;
|
|
$this->status = $status;
|
|
$this->amount = $amount;
|
|
$this->final_capture = $final_capture;
|
|
$this->seller_protection = $seller_protection;
|
|
$this->invoice_id = $invoice_id;
|
|
$this->custom_id = $custom_id;
|
|
$this->seller_receivable_breakdown = $seller_receivable_breakdown;
|
|
$this->fraud_processor_response = $fraud_processor_response;
|
|
}
|
|
|
|
/**
|
|
* Returns the ID.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function id() : string {
|
|
return $this->id;
|
|
}
|
|
|
|
/**
|
|
* Returns the status.
|
|
*
|
|
* @return CaptureStatus
|
|
*/
|
|
public function status() : CaptureStatus {
|
|
return $this->status;
|
|
}
|
|
|
|
/**
|
|
* Returns the amount.
|
|
*
|
|
* @return Amount
|
|
*/
|
|
public function amount() : Amount {
|
|
return $this->amount;
|
|
}
|
|
|
|
/**
|
|
* Returns whether this is the final capture or not.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function final_capture() : bool {
|
|
return $this->final_capture;
|
|
}
|
|
|
|
/**
|
|
* Returns the seller protection object.
|
|
*
|
|
* @return object
|
|
*/
|
|
public function seller_protection() {
|
|
return (object) array( 'status' => $this->seller_protection );
|
|
}
|
|
|
|
/**
|
|
* Returns the invoice id.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function invoice_id() : string {
|
|
return $this->invoice_id;
|
|
}
|
|
|
|
/**
|
|
* Returns the custom id.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function custom_id() : string {
|
|
return $this->custom_id;
|
|
}
|
|
|
|
/**
|
|
* Returns the detailed breakdown of the capture activity (fees, ...).
|
|
*
|
|
* @return SellerReceivableBreakdown|null
|
|
*/
|
|
public function seller_receivable_breakdown() : ?SellerReceivableBreakdown {
|
|
return $this->seller_receivable_breakdown;
|
|
}
|
|
|
|
/**
|
|
* Returns the fraud processor response (AVS, CVV ...).
|
|
*
|
|
* @return FraudProcessorResponse|null
|
|
*/
|
|
public function fraud_processor_response() : ?FraudProcessorResponse {
|
|
return $this->fraud_processor_response;
|
|
}
|
|
|
|
/**
|
|
* Returns the entity as array.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function to_array() : array {
|
|
$data = array(
|
|
'id' => $this->id(),
|
|
'status' => $this->status()->name(),
|
|
'amount' => $this->amount()->to_array(),
|
|
'final_capture' => $this->final_capture(),
|
|
'seller_protection' => (array) $this->seller_protection(),
|
|
'invoice_id' => $this->invoice_id(),
|
|
'custom_id' => $this->custom_id(),
|
|
);
|
|
$details = $this->status()->details();
|
|
if ( $details ) {
|
|
$data['status_details'] = array( 'reason' => $details->reason() );
|
|
}
|
|
if ( $this->seller_receivable_breakdown ) {
|
|
$data['seller_receivable_breakdown'] = $this->seller_receivable_breakdown->to_array();
|
|
}
|
|
if ( $this->fraud_processor_response ) {
|
|
$data['fraud_processor_response'] = $this->fraud_processor_response->to_array();
|
|
}
|
|
return $data;
|
|
}
|
|
}
|