/** * {@inheritDoc} * * @param GetCustomerProfileIds $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $response = $this->api->getCustomerProfileIds(); $model->replace(get_object_vars($response)); }
/** * {@inheritDoc} * * @param GetHostedProfilePageRequest $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $model->validateNotEmpty(['customerProfileId', 'settings']); $response = $this->api->getHostedProfilePageRequest($model->get('customerProfileId'), $model->getArray('settings')); $model->replace(get_object_vars($response)); }
/** * {@inheritDoc} * * @param DeleteCustomerPaymentProfile $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $model->validateNotEmpty(['customerProfileId', 'paymentProfileId']); $response = $this->api->deleteCustomerPaymentProfile($model->get('customerProfileId'), $model->get('paymentProfileId')); $model->replace(get_object_vars($response)); }
/** * {@inheritDoc} * * @param UpdateCustomerPaymentProfile $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $model->validateNotEmpty(['customerProfileId']); $modelPaymentProfile = $model->getArray('paymentProfile'); $paymentProfile = new \AuthorizeNetPaymentProfile(); $paymentProfile->customerType = $modelPaymentProfile['customerType']; if ($modelPaymentProfile['billTo']) { $paymentBillTo = new \AuthorizeNetAddress(); $paymentBillTo->firstName = $modelPaymentProfile['billTo']['firstName']; $paymentBillTo->lastName = $modelPaymentProfile['billTo']['lastName']; $paymentBillTo->company = $modelPaymentProfile['billTo']['company']; $paymentBillTo->address = $modelPaymentProfile['billTo']['address']; $paymentBillTo->city = $paymentProfile['billTo']['city']; $paymentBillTo->state = $modelPaymentProfile['billTo']['state']; $paymentBillTo->zip = $modelPaymentProfile['billTo']['state']; $paymentBillTo->country = $modelPaymentProfile['billTo']['country']; $paymentBillTo->phoneNumber = $modelPaymentProfile['billTo']['phoneNumber']; $paymentBillTo->faxNumber = $modelPaymentProfile['billTo']['faxNumber']; $paymentProfile->billTo = $paymentProfile; } if ($paymentProfile['payment']) { $payment = new \AuthorizeNetPayment(); if (isset($modelPaymentProfile['payment']['creditCard'])) { $paymentCreditCard = new \AuthorizeNetCreditCard(); $paymentCreditCard->cardNumber = $modelPaymentProfile['payment']['creditCard']['cardNumber']; $paymentCreditCard->expirationDate = $modelPaymentProfile['payment']['creditCard']['expirationDate']; $paymentCreditCard->cardCode = $modelPaymentProfile['payment']['creditCard']['cardCode']; $payment->creditCard = $paymentCreditCard; } if (isset($paymentProfiles['payment']['bankAccount'])) { $paymentBankAccount = new \AuthorizeNetBankAccount(); $paymentBankAccount->accountType = $modelPaymentProfile['payment']['bankAccount']["accountType"]; $paymentBankAccount->routingNumber = $modelPaymentProfile['payment']['bankAccount']['routingNumber']; $paymentBankAccount->accountNumber = $modelPaymentProfile['payment']['bankAccount']['accountNumber']; $paymentBankAccount->nameOnAccount = $modelPaymentProfile['payment']['bankAccount']['nameOnAccount']; $paymentBankAccount->echeckType = $modelPaymentProfile['payment']['bankAccount']['echeckType']; $paymentBankAccount->bankName = $modelPaymentProfile['payment']['bankAccount']['bankName']; $payment->bankAccount = $paymentBankAccount; } $paymentProfile->payment = $payment; } $response = $this->api->updateCustomerPaymentProfile($model->get('customerProfileId'), $model->get('paymentProfileId'), $paymentProfile); $model->replace(get_object_vars($response)); }
/** * {@inheritDoc} * * @param CreateCustomerProfile $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $address = new \AuthorizeNetAddress(); $address->firstName = $model->get('firstName', ''); $address->lastName = $model->get('lastName', ''); $address->company = $model->get('company', ''); $address->address = $model->get('address', ''); $address->city = $model->get('city', ''); $address->state = $model->get('state', ''); $address->zip = $model->get('zip', ''); $address->country = $model->get('country', ''); $address->phoneNumber = $model->get('phoneNumber', ''); $address->faxNumber = $model->get('faxNumber', ''); $response = $this->api->createCustomerShippingAddress($model->get('customerProfileId'), $address); $model->replace(get_object_vars($response)); }
/** * {@inheritDoc} */ protected function populateConfig(ArrayObject $config) { if (!class_exists(\AuthorizeNetCIM::class)) { throw new \LogicException('You must install "authorizenet/authorizenet" library.'); } $config->defaults(array('payum.factory_name' => 'authorize_net_cim', 'payum.factory_title' => 'Authorize.NET CIM', 'payum.action.create_customer_profile' => new CreateCustomerProfileAction(), 'payum.action.create_customer_shipping_address' => new CreateCustomerShippingAddressAction(), 'payum.action.create_customer_profile_transaction' => new CreateCustomerProfileTransactionAction(), 'payum.action.create_customer_payment_profile' => new CreateCustomerPaymentProfileAction(), 'payum.action.delete_customer_payment_profile' => new DeleteCustomerPaymentProfileAction(), 'payum.action.delete_customer_profile' => new DeleteCustomerProfileAction(), 'payum.action.delete_customer_shipping_address' => new DeleteCustomerShippingAddressAction(), 'payum.action.get_customer_payment_profile' => new GetCustomerPaymentProfileAction(), 'payum.action.get_customer_profile_ids' => new GetCustomerProfileIdsAction(), 'payum.action.get_hosted_profile_page_request' => new GetHostedProfilePageRequestAction(), 'payum.action.get_customer_profile' => new GetCustomerProfileAction(), 'payum.action.get_customer_shipping_address' => new GetCustomerShippingAddressAction(), 'payum.action.update_split_tender_group' => new UpdateSplitTenderGroupAction(), 'payum.action.update_customer_shipping_address' => new UpdateCustomerShippingAddressAction(), 'payum.action.update_customer_payment_profile' => new UpdateCustomerPaymentProfileAction(), 'payum.action.update_customer_profile' => new UpdateCustomerProfileAction(), 'payum.action.validate_customer_payment_profile' => new ValidateCustomerPaymentProfileAction())); if (false == $config['payum.api']) { $config['payum.default_options'] = array('login_id' => '', 'transaction_key' => '', 'sandbox' => true); $config->defaults($config['payum.default_options']); $config['payum.required_options'] = array('login_id', 'transaction_key'); $config['payum.api'] = function (ArrayObject $config) { $config->validateNotEmpty($config['payum.required_options']); $api = new AuthorizeNetCIM($config['login_id'], $config['transaction_key']); $api->setSandbox($config['sandbox']); return $api; }; } }
/** * {@inheritDoc} * * @param CreateCustomerProfile $request */ public function execute($request) { RequestNotSupportedException::assertSupports($this, $request); $model = ArrayObject::ensureArrayObject($request->getModel()); $customerProfile = new \AuthorizeNetCustomer(); $customerProfile->description = $model->get('description', ''); $customerProfile->merchantCustomerId = $model->get('merchantCustomerId'); $customerProfile->email = $model->get('email'); foreach ($model->getArray('paymentProfiles') as $paymentProfiles) { $paymentProfile = new \AuthorizeNetPaymentProfile(); $paymentProfile->customerType = $paymentProfiles['customerType']; if ($paymentProfiles['billTo']) { $paymentBillTo = new \AuthorizeNetAddress(); $paymentBillTo->firstName = $paymentProfiles['billTo']['firstName']; $paymentBillTo->lastName = $paymentProfiles['billTo']['lastName']; $paymentBillTo->company = $paymentProfiles['billTo']['company']; $paymentBillTo->address = $paymentProfiles['billTo']['address']; $paymentBillTo->city = $paymentProfiles['billTo']['city']; $paymentBillTo->state = $paymentProfiles['billTo']['state']; $paymentBillTo->zip = $paymentProfiles['billTo']['state']; $paymentBillTo->country = $paymentProfiles['billTo']['country']; $paymentBillTo->phoneNumber = $paymentProfiles['billTo']['phoneNumber']; $paymentBillTo->faxNumber = $paymentProfiles['billTo']['faxNumber']; $paymentProfile->billTo = $paymentBillTo; } if ($paymentProfiles['payment']) { $payment = new \AuthorizeNetPayment(); if (isset($paymentProfiles['payment']['creditCard'])) { $paymentCreditCard = new \AuthorizeNetCreditCard(); $paymentCreditCard->cardNumber = $paymentProfiles['payment']['creditCard']['cardNumber']; $paymentCreditCard->expirationDate = $paymentProfiles['payment']['creditCard']['expirationDate']; $paymentCreditCard->cardCode = $paymentProfiles['payment']['creditCard']['cardCode']; $payment->creditCard = $paymentCreditCard; } if (isset($paymentProfiles['payment']['bankAccount'])) { $paymentBankAccount = new \AuthorizeNetBankAccount(); $paymentBankAccount->accountType = $paymentProfiles['payment']['bankAccount']["accountType"]; $paymentBankAccount->routingNumber = $paymentProfiles['payment']['bankAccount']['routingNumber']; $paymentBankAccount->accountNumber = $paymentProfiles['payment']['bankAccount']['accountNumber']; $paymentBankAccount->nameOnAccount = $paymentProfiles['payment']['bankAccount']['nameOnAccount']; $paymentBankAccount->echeckType = $paymentProfiles['payment']['bankAccount']['echeckType']; $paymentBankAccount->bankName = $paymentProfiles['payment']['bankAccount']['bankName']; $payment->bankAccount = $paymentBankAccount; } $paymentProfile->payment = $payment; } $customerProfile->paymentProfiles[] = $paymentProfile; } foreach ($model->getArray('shipToList') as $addresses) { $address = new \AuthorizeNetAddress(); $address->firstName = $addresses['firstName']; $address->lastName = $addresses['lastName']; $address->company = $addresses['company']; $address->address = $addresses['address']; $address->city = $addresses['city']; $address->state = $addresses['state']; $address->zip = $addresses['zip']; $address->country = $addresses['country']; $address->phoneNumber = $addresses['phoneNumber']; $address->faxNumber = $addresses['faxNumber']; $customerProfile->shipToList[] = $address; } $response = $this->api->createCustomerProfile($customerProfile); $model->replace(get_object_vars($response)); }