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()); }
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); } }