public function testAllMethods() { $this->markTestSkipped('Ignoring for Travis. Will fix after release.'); //TODO // Set the subscription fields. $subscription = new AuthorizeNet_Subscription(); $subscription->name = "Short subscription"; $subscription->intervalLength = "1"; $subscription->intervalUnit = "months"; $subscription->startDate = "2020-03-12"; $subscription->totalOccurrences = "14"; $subscription->amount = rand(1, 100); $subscription->creditCardCardNumber = "6011000000000012"; $subscription->creditCardExpirationDate = "2018-10"; $subscription->creditCardCardCode = "123"; $subscription->billToFirstName = "john"; $subscription->billToLastName = "doe"; // Create the subscription. $request = new AuthorizeNetARB(); $response = $request->createSubscription($subscription); $this->assertTrue($response->isOk()); $subscription_id = $response->getSubscriptionId(); // Get the subscription status $status_request = new AuthorizeNetARB(); $status_response = $status_request->getSubscriptionStatus($subscription_id); $this->assertEquals("active", $status_response->getSubscriptionStatus()); // Update the subscription $update_request = new AuthorizeNetARB(); $updated_subscription_info = new AuthorizeNet_Subscription(); $updated_subscription_info->billToFirstName = "jane"; $updated_subscription_info->billToLastName = "smith"; $updated_subscription_info->creditCardCardNumber = "6011000000000012"; $updated_subscription_info->creditCardExpirationDate = "2019-10"; $updated_subscription_info->creditCardCardCode = "423"; $update_response = $update_request->updateSubscription($subscription_id, $updated_subscription_info); $this->assertTrue($update_response->isOk()); // Cancel the subscription $cancellation = new AuthorizeNetARB(); $cancel_response = $cancellation->cancelSubscription($subscription_id); $this->assertTrue($cancel_response->isOk()); // Get the subscription status $status_request = new AuthorizeNetARB(); $status_response = $status_request->getSubscriptionStatus($subscription_id); $this->assertEquals("canceled", $status_response->getSubscriptionStatus()); }
/** * web service used to update the credit card information of the logged in user * @author Priti Kabra */ public function api_updateCreditCard() { $errMsg = $this->checkApiHeaderInfo(); $error = !empty($errMsg) ? 1 : 0; if ($error == 0) { $conditions = array('Subscription.user_id' => $this->loggedInUserId, 'Subscription.is_active' => 1); $this->Subscription->bindModel(array('hasOne' => array('BusinessOwner' => array('className' => 'BusinessOwner', 'foreignKey' => false, 'conditions' => array('BusinessOwner.user_id = Subscription.user_id'))))); $subscripData = $this->Subscription->find('first', array('conditions' => $conditions)); if ($this->Subscription->hasAny($conditions)) { $subscription = new AuthorizeNet_Subscription(); $subscription->creditCardCardNumber = $this->jsonDecodedRequestedData->CC_Number; $subscription->creditCardExpirationDate = $this->jsonDecodedRequestedData->CC_year . '-' . $this->jsonDecodedRequestedData->CC_month; $subscription->creditCardCardCode = $this->jsonDecodedRequestedData->CC_cvv; $subscription->billToFirstName = $this->jsonDecodedRequestedData->CC_Name; $subscription->billToLastName = $this->jsonDecodedRequestedData->CC_Name; $request = new AuthorizeNetARB(); $response = $request->updateSubscription($subscripData['Subscription']['subscription_id'], $subscription); if ($response->xml->messages->resultCode == 'Ok') { $info['credit_card_number'] = substr($this->jsonDecodedRequestedData->CC_Number, -4, 4); $this->BusinessOwner->id = $this->Encryption->decode($subscripData['BusinessOwner']['id']); $this->BusinessOwner->saveField('credit_card_number', $this->Encryption->encode(substr($this->jsonDecodedRequestedData->CC_Number, -4, 4))); $this->set(array('code' => Configure::read('RESPONSE_SUCCESS'), 'result' => $info, 'message' => 'The credit card Information has been updated successfully', '_serialize' => array('code', 'result', 'message'))); } else { $this->errorMessageApi('Credit card cannot be updated for cancelled membership'); } } else { $this->set(array('code' => Configure::read('RESPONSE_SUCCESS'), 'message' => 'Credit card cannot be updated for cancelled membership', '_serialize' => array('code', 'message'))); } } else { $this->errorMessageApi($errMsg); } }