Exemplo n.º 1
0
 /**
  * cancelSubscription($purchaseLog, $subscription) find the subscription and cancel it
  * TODO rewrite to be used as API
  * @param int $purchlogID
  */
 function cancelSubscription($purchaseLog = false, $subscription = false)
 {
     if ($purchaseLog != false && $subscription != false) {
         $ref_id = $subscription['ref_id'];
         $subscription_id = $subscription['subscription_id'];
         $cancellation = new AuthorizeNetARB();
         $cancellation->setRefId($ref_id);
         $cancel_response = $cancellation->cancelSubscription($subscription_id);
         if ($cancel_response->isOk()) {
             return true;
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
 public function testGetSubscriptionList()
 {
     $refId = "ref" . time();
     $paging = new AuthorizeNetSubscriptionListPaging();
     $paging->limit = 10;
     $paging->offset = 1;
     $sorting = new AuthorizeNetSubscriptionListSorting();
     $sorting->orderBy = "firstName";
     $sorting->orderDescending = "false";
     $getSubscriptionList = new AuthorizeNetGetSubscriptionList();
     $getSubscriptionList->searchType = "subscriptionActive";
     $getSubscriptionList->paging = $paging;
     $getSubscriptionList->sorting = $sorting;
     // Create the request and send it.
     $request = new AuthorizeNetARB();
     $request->setRefId($refId);
     $response = $request->getSubscriptionList($getSubscriptionList);
     // Handle the response.
     $this->assertTrue($response->isOk());
     $this->assertEquals($response->getMessageCode(), "I00001");
     $this->assertEquals($response->getMessageText(), "Successful.");
     $this->assertEquals($response->getRefId(), $refId);
     $this->assertEquals($response->getResultCode(), "Ok");
 }
Exemplo n.º 3
0
 function cancelsubscription($data)
 {
     $subid = $data['0'];
     $id = $data['1'];
     $gateway = $data['2'];
     $ad_id = $data['3'];
     $db = JFactory::getDBO();
     if ($subid) {
         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();
         define("AUTHORIZENET_API_LOGIN_ID", $auth_net_login_id);
         define("AUTHORIZENET_TRANSACTION_KEY", $auth_net_tran_key);
         $refId = $id;
         // Cancel the subscription.
         $cancellation = new AuthorizeNetARB();
         $cancellation->setRefId($refId);
         $response = $cancellation->cancelSubscription($subid);
         if ($response->xml->messages->resultCode != 'Ok') {
             $payment_status = "P";
             $error = JText::_('AUTH_SUB_CANCEL_FAIL') . $response->xml->messages->message->text;
         } else {
             $payment_status = "C";
             $success = JText::_('AUTH_SUB_CANCEL_SUCCESS');
             $paymentdata = new stdClass();
         }
         $result = array('transaction_id' => $refId, 'subscription_id' => $subid, '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;
     }
 }
Exemplo n.º 4
0
 public function testCreateSubscriptionECheck()
 {
     $subscription = new AuthorizeNet_Subscription();
     $subscription->name = "my test echeck subscription";
     $subscription->intervalLength = "1";
     $subscription->intervalUnit = "months";
     $subscription->startDate = "2015-04-12";
     $subscription->totalOccurrences = "2";
     $subscription->trialOccurrences = "";
     $subscription->amount = "11.99";
     $subscription->trialAmount = "";
     $subscription->bankAccountAccountType = "checking";
     $subscription->bankAccountRoutingNumber = "121000248";
     $subscription->bankAccountAccountNumber = "12345678";
     $subscription->bankAccountNameOnAccount = "John Doe";
     $subscription->bankAccountEcheckType = "WEB";
     $subscription->bankAccountBankName = "Bank of Earth";
     $subscription->orderInvoiceNumber = "";
     $subscription->orderDescription = "";
     $subscription->customerId = "12";
     $subscription->customerEmail = "*****@*****.**";
     $subscription->customerPhoneNumber = "";
     $subscription->customerFaxNumber = "";
     $subscription->billToFirstName = "john";
     $subscription->billToLastName = "doe";
     $subscription->billToCompany = "";
     $subscription->billToAddress = "";
     $subscription->billToCity = "";
     $subscription->billToState = "";
     $subscription->billToZip = "";
     $subscription->billToCountry = "";
     $subscription->shipToFirstName = "";
     $subscription->shipToLastName = "";
     $subscription->shipToCompany = "";
     $subscription->shipToAddress = "";
     $subscription->shipToCity = "";
     $subscription->shipToState = "";
     $subscription->shipToZip = "";
     $subscription->shipToCountry = "";
     $refId = "ref" . time();
     // Create the request and send it.
     $request = new AuthorizeNetARB();
     $request->setRefId($refId);
     $response = $request->createSubscription($subscription);
     // Handle the response.
     $this->assertTrue($response->isOk());
     $this->assertEquals($response->getMessageCode(), "I00001");
     $this->assertEquals($response->getMessageText(), "Successful.");
     $this->assertEquals($response->getRefId(), $refId);
     $this->assertEquals($response->getResultCode(), "Ok");
     // Cancel the subscription to avoid duplicate errors in future
     $cancellation = new AuthorizeNetARB();
     $cancellation->setRefId($refId);
     $cancel_response = $cancellation->cancelSubscription($response->getSubscriptionId());
     $this->assertTrue($cancel_response->isOk());
 }
 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"];
 }