function save_owner($event_data = array()) { if (empty($event_data)) { $event_data = $this->getData(); } $uid = isset($event_data['uid']) ? $event_data['uid'] : false; if (!$uid && (!defined('AMP_FORM_ID_EVENT_OWNER') || !AMP_FORM_ID_EVENT_OWNER)) { return false; } require_once 'AMP/System/User/Profile/Profile.php'; $owner = new AMP_System_User_Profile($this->dbcon, $uid); if (!$owner->hasData()) { $owner->setDefaults(); $owner->mergeData(array('modin' => AMP_FORM_ID_EVENT_OWNER)); } $allowed_keys = $this->export_keys(); foreach ($this->_legacy_fields as $old_name => $new_name) { if (!isset($event_data[$old_name])) { continue; } $event_data[$new_name] = $event_data[$old_name]; } $allowed_data = array_combine_key($allowed_keys, $event_data); unset($allowed_data['id']); $owner->mergeData($allowed_data); $result = $owner->save(); if (!$result) { return false; } $this->_owner =& $owner; return $owner->id; }
function save($data) { $data = $this->udm->getData(); foreach ($data as $key => $value) { if ($field = $this->checkPrefix($key)) { $plugin[$field] = $value; } } $options = $this->getOptions(); require_once 'PayPal.php'; require_once 'PayPal/Profile/API.php'; require_once 'PayPal/Profile/Handler.php'; require_once 'PayPal/Profile/Handler/Array.php'; require_once 'PayPal/Type/DoDirectPaymentRequestType.php'; require_once 'PayPal/Type/DoDirectPaymentRequestDetailsType.php'; require_once 'PayPal/Type/DoDirectPaymentResponseType.php'; require_once 'PayPal/Type/BasicAmountType.php'; require_once 'PayPal/Type/PaymentDetailsType.php'; require_once 'PayPal/Type/AddressType.php'; require_once 'PayPal/Type/CreditCardDetailsType.php'; require_once 'PayPal/Type/PayerInfoType.php'; require_once 'PayPal/Type/PersonNameType.php'; $pid = ProfileHandler::generateID(); $handler = ProfileHandler_Array::getInstance(array('username' => $options['api_username'], 'password' => $options['api_password'], 'certificateFile' => $options['cert_file'], 'subject' => null, 'environment' => $options['environment'])); $profile = APIProfile::getInstance($pid, $handler); $dp_request = PayPal::getType('DoDirectPaymentRequestType'); $firstName = $data['First_Name']; $lastName = $data['Last_Name']; $creditCardType = $plugin['cc_type']; $creditCardNumber = $plugin['cc_number']; $expDateMonth = $plugin['cc_expiration']['m']; // Month must be padded with leading zero $padDateMonth = str_pad($expDateMonth, 2, '0', STR_PAD_LEFT); $expDateYear = $plugin['cc_expiration']['Y']; $cvv2Number = $plugin['cc_cvv2']; $address1 = $data['Street']; $address2 = isset($data['Street_1']) ? $data['Street_1'] : null; $city = $data['City']; $state = $data['State']; $zip = $data['Zip']; $amount = $plugin['amount']; $OrderTotal = PayPal::getType('BasicAmountType'); $OrderTotal->setattr('currencyID', 'USD'); $OrderTotal->setval($amount, 'iso-8859-1'); $PaymentDetails = PayPal::getType('PaymentDetailsType'); $PaymentDetails->setOrderTotal($OrderTotal); $shipTo = PayPal::getType('AddressType'); $shipTo->setName($firstName . ' ' . $lastName); $shipTo->setStreet1($address1); $shipTo->setStreet2($address2); $shipTo->setCityName($city); $shipTo->setStateOrProvince($state); $shipTo->setCountry('US'); $shipTo->setPostalCode($zip); $PaymentDetails->setShipToAddress($shipTo); $dp_details = PayPal::getType('DoDirectPaymentRequestDetailsType'); $dp_details->setPaymentDetails($PaymentDetails); // Credit Card info $card_details = PayPal::getType('CreditCardDetailsType'); $card_details->setCreditCardType($creditCardType); $card_details->setCreditCardNumber($creditCardNumber); $card_details->setExpMonth($padDateMonth); $card_details->setExpYear($expDateYear); $card_details->setCVV2($cvv2Number); $payer = PayPal::getType('PayerInfoType'); $person_name = PayPal::getType('PersonNameType'); $person_name->setFirstName($firstName); $person_name->setLastName($lastName); $payer->setPayerName($person_name); $payer->setPayerCountry('US'); $payer->setAddress($shipTo); if (isset($data['Email'])) { $payer->setPayer($data['Email']); } $card_details->setCardOwner($payer); $dp_details->setCreditCard($card_details); $dp_details->setIPAddress($_SERVER['SERVER_ADDR']); $dp_details->setPaymentAction('Sale'); $dp_request->setDoDirectPaymentRequestDetails($dp_details); $caller = PayPal::getCallerServices($profile); if (PEAR::isError($caller)) { trigger_error($caller->getMessage()); return false; } $response = $caller->DoDirectPayment($dp_request); $ack = $response->getAck(); define('ACK_SUCCESS', 'Success'); define('ACK_SUCCESS_WITH_WARNING', 'SuccessWithWarning'); switch ($ack) { case ACK_SUCCESS: case ACK_SUCCESS_WITH_WARNING: if (isset($options['response']) && $options['response']) { $response_code = 'Transaction ID: ' . $response->getTransactionID() . "\n" . 'Completed AVS Code: ' . $response->getAVSCode() . "\n" . 'CVV2 Code: ' . $response->getCVV2Code(); require_once 'AMP/System/User/Profile/Profile.php'; $profile = new AMP_System_User_Profile($this->dbcon, $this->udm->uid); if ($profile->hasData()) { $update = array($options['response'] => $response_code); $profile->mergeData($update); $profile->save(); } else { trigger_error('cannot update profile with paypal response: ' . $response_code); } } return true; default: require_once 'PayPal/Type/AbstractResponseType.php'; require_once 'PayPal/Type/ErrorType.php'; require_once 'PayPal/Type/DoDirectPaymentResponseType.php'; $errors = $response->getErrors(); if (!is_array($errors)) { $errors = array($errors); } foreach ($errors as $error) { trigger_error($error->getShortMessage() . ' : ' . $error->getLongMessage()); $flash = AMP_System_Flash::instance(); $flash->add_error($error->getLongMessage()); } } return false; }