private static function get_arb($local_api_settings = array())
 {
     self::include_api();
     $api_settings = self::get_api_settings($local_api_settings);
     $is_sandbox = $api_settings['mode'] == "test";
     $arb = new AuthorizeNetARB($api_settings["login_id"], $api_settings["transaction_key"]);
     $arb->setSandbox($is_sandbox);
     return $arb;
 }
Esempio n. 2
0
 function onTP_Processpayment_recurring($data)
 {
     $order_id = $data['order_id'];
     require_once dirname(__FILE__) . '/authorizenet/lib/AuthorizeNet.php';
     $auth_net_login_id = $this->params->get('login_id', '1');
     $auth_net_tran_key = $this->params->get('tran_key', '1');
     $plgPaymentAuthorizenetHelper = new plgPaymentAuthorizenetHelper();
     $auth_net_url = $plgPaymentAuthorizenetHelper->buildAuthorizenetUrl();
     $auth_net_url;
     $DEBUGGING = 1;
     # Display additional information to track down problems
     $TESTING = 1;
     # Set the testing flag so that transactions are not live
     $ERROR_RETRIES = 2;
     # Number of transactions to post if soft errors occur
     $exp_date = explode('-', $data['expirationDate']);
     $data['expirationDate'] = $exp_date[1] . "-" . $exp_date[0];
     define("AUTHORIZENET_API_LOGIN_ID", $auth_net_login_id);
     define("AUTHORIZENET_TRANSACTION_KEY", $auth_net_tran_key);
     $subscription = new AuthorizeNet_Subscription();
     $subscription->name = $data['sub_name'];
     $subscription->intervalLength = $data['intervalLength'];
     $subscription->intervalUnit = $data['intervalUnit'];
     $subscription->startDate = $data['startDate'];
     $subscription->totalOccurrences = $data['totalOccurrences'];
     $subscription->amount = $data['amount'];
     $subscription->orderInvoiceNumber = $data['order_id'];
     $subscription->creditCardCardNumber = $data['cardNumber'];
     $subscription->creditCardExpirationDate = $data['expirationDate'];
     $subscription->creditCardCardCode = $data['cardcode'];
     $subscription->billToFirstName = $data['firstName'];
     $subscription->billToLastName = $data['lastName'];
     $subscription->billToAddress = $data['cardaddress1'];
     $subscription->billToCity = $data['cardcity'];
     $subscription->billToState = $data['cardstate'];
     $subscription->billToZip = $data['cardzip'];
     // Create the subscription.
     $request = new AuthorizeNetARB();
     $refId = $subscription->orderInvoiceNumber;
     $request->setRefId($refId);
     $testmode = $this->params->get('sandbox', '1');
     if ($testmode == 0) {
         $request->setSandbox(false);
         //turn OFF sandbox
     } else {
         $request->setSandbox(true);
         //turn ON sandbox
     }
     $response = $request->createSubscription($subscription);
     $subscription_id = $response->getSubscriptionId();
     $error = "";
     if ($response->xml->messages->resultCode != 'Ok') {
         $payment_status = "P";
         $error = JText::_('AUTH_SUB_FAIL') . $response->xml->messages->message->text;
     } else {
         $payment_status = "C";
         $success = JText::_('AUTH_SUB_SUCCESS') . $subscription_id;
     }
     $result = array('transaction_id' => $refId, 'subscription_id' => $subscription_id, 'order_id' => $data['order_id'], 'status' => $payment_status, 'total_paid_amt' => $data['amount'], 'raw_data' => $response, 'payment_type' => 'recurring', 'error' => $error, 'success' => $success, 'return' => $data['return']);
     return $result;
 }
 function process_subscription($item, $data, $config)
 {
     //Check for subscriptions
     $sub = array();
     if (!defined('AUTHORIZENET_API_LOGIN_ID')) {
         define("AUTHORIZENET_API_LOGIN_ID", $config["x_login"]);
         define("AUTHORIZENET_TRANSACTION_KEY", $config["x_tran_key"]);
     }
     $unit = $item["subscription"]["period"] == 1 ? 'days' : 'months';
     $member_id = $this->EE->session->userdata["member_id"];
     $email = $this->EE->session->userdata["email"];
     // Set the start date
     $start_dt = date('Y-m-d', strtotime('+' . $item["subscription"]["length"] . ' ' . $unit));
     // Check if there is a trial subscription
     $price = $item["subscription"]["price"];
     $renewal_price = $item["subscription"]["price"];
     unset($item["subscription"]["price"]);
     $trial_occur = "";
     $trial_price = "";
     if ($item["subscription"]["trial_occur"] > 1) {
         // reduce the trial occurrences by one since we
         // already gave them the discount on the first
         // payment
         $occur = $item["subscription"]["trial_occur"] - 1;
         if ($occur >= 1) {
             #$renewal_price = $item["subscription"]["trial_price"];
             $trial_occur = $occur;
             $trial_price = $item["subscription"]["trial_price"];
         }
     }
     $subscription = new AuthorizeNet_Subscription();
     $subscription->name = $item["title"];
     $subscription->intervalLength = $item["subscription"]["length"];
     $subscription->intervalUnit = $unit;
     $subscription->startDate = $start_dt;
     $subscription->totalOccurrences = 9999;
     $subscription->trialOccurrences = $trial_occur;
     $subscription->amount = $price;
     $subscription->trialAmount = $trial_price;
     $subscription->creditCardCardNumber = $data["autho_cc_num"];
     $subscription->creditCardExpirationDate = $data["autho_cc_year"] . '-' . $data["autho_cc_month"];
     $subscription->creditCardCardCode = $data["autho_cc_code"];
     $subscription->orderInvoiceNumber = $data["order_id"];
     $subscription->orderDescription = "";
     $subscription->customerId = $member_id;
     $subscription->customerEmail = $email;
     $subscription->customerPhoneNumber = $data["br_billing_phone"];
     $subscription->billToFirstName = $data["br_billing_fname"];
     $subscription->billToLastName = $data["br_billing_lname"];
     $subscription->billToCompany = $data["br_billing_company"];
     $subscription->billToAddress = $data["br_billing_address1"] . ' ' . $data["br_billing_address2"];
     $subscription->billToCity = $data["br_billing_city"];
     $subscription->billToState = $data["br_billing_state"];
     $subscription->billToZip = $data["br_billing_zip"];
     $subscription->billToCountry = $data["br_billing_country"];
     $subscription->shipToFirstName = $data["br_shipping_fname"];
     $subscription->shipToLastName = $data["br_shipping_lname"];
     $subscription->shipToCompany = $data["br_shipping_company"];
     $subscription->shipToAddress = $data["br_shipping_address1"] . ' ' . $data["br_shipping_address2"];
     $subscription->shipToCity = $data["br_shipping_city"];
     $subscription->shipToState = $data["br_shipping_state"];
     $subscription->shipToZip = $data["br_shipping_zip"];
     $subscription->shipToCountry = $data["br_shipping_country"];
     $refId = "ref" . time();
     // Create the request and send it.
     $request = new AuthorizeNetARB();
     // do we need to process in sandbox mode
     if (array_key_exists("x_test_request", $config) && $config["x_test_request"] == 'FALSE') {
         $request->setSandbox(FALSE);
     }
     $request->setRefId($refId);
     $response = $request->createSubscription($subscription);
     $item["subscription"]["code"] = (string) $response->xml->refId;
     $item["subscription"]["status_id"] = 1;
     $item["subscription"]["result"] = (string) $response->xml->messages->resultCode;
     $item["subscription"]["message"] = (string) $response->xml->messages->message->text;
     $item["subscription"]["subscription_id"] = (int) $response->xml->subscriptionId;
     $item["subscription"]["renewal_price"] = $renewal_price;
     $item["subscription"]["trial_occur"] = $trial_occur;
     $item["subscription"]["trial_price"] = $trial_price;
     $item["subscription"]["next_renewal"] = $start_dt;
     $item["subscription"]["cc_last_four"] = substr($data["autho_cc_num"], -4, 4);
     $item["subscription"]["cc_month"] = $data["autho_cc_month"];
     $item["subscription"]["cc_year"] = $data["autho_cc_year"];
     return $item["subscription"];
 }
 private function get_arb($local_api_settings = array())
 {
     if (!empty($local_api_settings)) {
         $this->log_debug(__METHOD__ . '(): Local API settings enabled.');
         $api_settings = array('login_id' => rgar($local_api_settings, 'login_id'), 'transaction_key' => rgar($local_api_settings, 'transaction_key'), 'mode' => rgar($local_api_settings, 'mode'));
     } else {
         $api_settings = $this->get_api_settings($local_api_settings);
     }
     $this->include_api();
     $is_sandbox = $api_settings['mode'] == 'test';
     $arb = new AuthorizeNetARB($api_settings['login_id'], $api_settings['transaction_key']);
     $arb->setSandbox($is_sandbox);
     return $arb;
 }
 public function handle_expiration($payment)
 {
     if (!class_exists('AuthorizeNetAIM')) {
         require_once WPBDP_PATH . 'vendors/anet_php_sdk/AuthorizeNet.php';
     }
     $recurring = $payment->get_recurring_item();
     $listing = WPBDP_Listing::get($payment->get_listing_id());
     if (!$listing || !$recurring) {
         return;
     }
     $recurring_id = $payment->get_data('recurring_id');
     $arb = new AuthorizeNetARB(wpbdp_get_option('authorize-net-login-id'), wpbdp_get_option('authorize-net-transaction-key'));
     if (wpbdp_get_option('payments-test-mode')) {
         $arb->setSandbox(true);
     } else {
         $arb->setSandbox(false);
     }
     $response = $arb->getSubscriptionStatus($recurring_id);
     $status = $response->isOk() ? $response->getSubscriptionStatus() : '';
     if ('active' == $status) {
         // If subscription is active, renew automatically for another period.
         $term_payment = $payment->generate_recurring_payment();
         $term_payment->set_status(WPBDP_Payment::STATUS_COMPLETED, WPBDP_Payment::HANDLER_GATEWAY);
         $term_payment->save();
     } else {
         // If subscription is not active, make item non recurring so it expires normally next time.
         $recurring_item = $payment->get_recurring_item();
         $listing->make_category_non_recurring($recurring_item->rel_id_1);
     }
 }
Esempio n. 6
0
 /**
  * Initializes and returns AuthorizeNetARB object.
  *
  * @since  3.5
  *
  * @access protected
  * @return AuthorizeNetARB The instance of AuthorizeNetARB class.
  */
 protected function _get_arb()
 {
     require_once MEMBERSHIP_ABSPATH . '/classes/Authorize.net/AuthorizeNet.php';
     // merchant information
     $login_id = $this->_get_option('api_user');
     $transaction_key = $this->_get_option('api_key');
     $mode = $this->_get_option('mode', self::MODE_SANDBOX);
     $arb = new AuthorizeNetARB($login_id, $transaction_key);
     $arb->setSandbox($mode != self::MODE_LIVE);
     if (defined('MEMBERSHIP_AUTHORIZE_LOGFILE')) {
         $arb->setLogFile(MEMBERSHIP_AUTHORIZE_LOGFILE);
     }
     return $arb;
 }