protected function _initialize($transactionAttribs)
{
$this->_attributes = $transactionAttribs;
if (isset($transactionAttribs['applePay'])) {
$this->_set('applePayCardDetails', new Transaction\ApplePayCardDetails($transactionAttribs['applePay']));
}
if (isset($transactionAttribs['androidPayCard'])) {
$this->_set('androidPayCardDetails', new Transaction\AndroidPayCardDetails($transactionAttribs['androidPayCard']));
}
if (isset($transactionAttribs['amexExpressCheckoutCard'])) {
$this->_set('amexExpressCheckoutCardDetails', new Transaction\AmexExpressCheckoutCardDetails($transactionAttribs['amexExpressCheckoutCard']));
}
if (isset($transactionAttribs['venmoAccount'])) {
$this->_set('venmoAccountDetails', new Transaction\VenmoAccountDetails($transactionAttribs['venmoAccount']));
}
if (isset($transactionAttribs['creditCard'])) {
$this->_set('creditCardDetails', new Transaction\CreditCardDetails($transactionAttribs['creditCard']));
}
if (isset($transactionAttribs['coinbaseAccount'])) {
$this->_set('coinbaseDetails', new Transaction\CoinbaseDetails($transactionAttribs['coinbaseAccount']));
}
if (isset($transactionAttribs['europeBankAccount'])) {
$this->_set('europeBankAccount', new Transaction\EuropeBankAccountDetails($transactionAttribs['europeBankAccount']));
}
if (isset($transactionAttribs['usBankAccount'])) {
$this->_set('usBankAccount', new Transaction\UsBankAccountDetails($transactionAttribs['usBankAccount']));
}
if (isset($transactionAttribs['paypal'])) {
$this->_set('paypalDetails', new Transaction\PayPalDetails($transactionAttribs['paypal']));
}
if (isset($transactionAttribs['customer'])) {
$this->_set('customerDetails', new Transaction\CustomerDetails($transactionAttribs['customer']));
}
if (isset($transactionAttribs['billing'])) {
$this->_set('billingDetails', new Transaction\AddressDetails($transactionAttribs['billing']));
}
if (isset($transactionAttribs['shipping'])) {
$this->_set('shippingDetails', new Transaction\AddressDetails($transactionAttribs['shipping']));
}
if (isset($transactionAttribs['subscription'])) {
$this->_set('subscriptionDetails', new Transaction\SubscriptionDetails($transactionAttribs['subscription']));
}
if (isset($transactionAttribs['descriptor'])) {
$this->_set('descriptor', new Descriptor($transactionAttribs['descriptor']));
}
if (isset($transactionAttribs['disbursementDetails'])) {
$this->_set('disbursementDetails', new DisbursementDetails($transactionAttribs['disbursementDetails']));
}
$disputes = [];
if (isset($transactionAttribs['disputes'])) {
foreach ($transactionAttribs['disputes'] as $dispute) {
$disputes[] = Dispute::factory($dispute);
}
}
$this->_set('disputes', $disputes);
$statusHistory = [];
if (isset($transactionAttribs['statusHistory'])) {
foreach ($transactionAttribs['statusHistory'] as $history) {
$statusHistory[] = new Transaction\StatusDetails($history);
}
}
$this->_set('statusHistory', $statusHistory);
$addOnArray = [];
if (isset($transactionAttribs['addOns'])) {
foreach ($transactionAttribs['addOns'] as $addOn) {
$addOnArray[] = AddOn::factory($addOn);
}
}
$this->_set('addOns', $addOnArray);
$discountArray = [];
if (isset($transactionAttribs['discounts'])) {
foreach ($transactionAttribs['discounts'] as $discount) {
$discountArray[] = Discount::factory($discount);
}
}
$this->_set('discounts', $discountArray);
if (isset($transactionAttribs['riskData'])) {
$this->_set('riskData', RiskData::factory($transactionAttribs['riskData']));
}
if (isset($transactionAttribs['threeDSecureInfo'])) {
$this->_set('threeDSecureInfo', ThreeDSecureInfo::factory($transactionAttribs['threeDSecureInfo']));
}
if (isset($transactionAttribs['facilitatorDetails'])) {
$this->_set('facilitatorDetails', FacilitatorDetails::factory($transactionAttribs['facilitatorDetails']));
}
}