/** * 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"); }
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; } }
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"]; }