コード例 #1
0
 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());
 }
コード例 #2
0
 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);
     }
 }