function add_subscriber($id, $screen_name, $email)
 {
     if (!$this->athenticated) {
         return null;
     }
     return SpreedlySubscriber::create($id, $email, $screen_name);
 }
Exemplo n.º 2
0
 public function testGetTransactions()
 {
     global $test_site_name, $test_token;
     Spreedly::configure($test_site_name, $test_token);
     SpreedlySubscriber::wipe();
     // create invoice for existing customer
     $trial_plan = SpreedlySubscriptionPlan::find_by_name("Free Trial");
     $sub1 = SpreedlySubscriber::create(75, null, "able");
     $sub1->lifetime_comp("full");
     $sub2 = SpreedlySubscriber::create(76, null, "baker");
     $sub2->activate_free_trial($trial_plan->id);
     // !!!!
     $sub3 = SpreedlySubscriber::create(77, null, "charlie");
     $sub3->activate_free_trial($trial_plan->id);
     $transactions = Spreedly::get_transactions();
     $this->assertEquals(3, count($transactions));
     $this->assertEquals("free_trial", $transactions[0]->detail->payment_method);
     // test getting subset of transactions
     $transactions = Spreedly::get_transactions($transactions[1]->id);
     $this->assertEquals(1, count($transactions));
     $this->assertEquals(77, $transactions[0]->subscriber_customer_id);
 }
 /**
  * Create a Spreedly subscription.
  * 
  * @param int $accountId The primary key from the Cart66 accounts table associated with this subscription
  * @param int $subscriptionId The id of the spreedly subscription plan
  * @param mixed $paymentMethod Either 'on-file' or a SpreedlyCreditCard object
  */
 public function createSpreedlySubscription($accountId, $subscriptionId, $productId, $paymentMethod = 'on-file')
 {
     $subscriptionCreated = false;
     if (is_numeric($accountId) && $accountId > 0) {
         if (!$this->loadByAccountId($accountId)) {
             $this->accountId = $accountId;
         }
         $subscriber = new SpreedlySubscriber();
         $subscriber->hydrate($this->_getSpreedlySubscriberDataArray());
         $subscription = new SpreedlySubscription($subscriptionId);
         if ('free_trial' == strtolower((string) $subscription->planType)) {
             $subscriberData = $subscriber->toArray(true);
             // prune the empty data
             Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Creating a new subscriber before assigning free trial. " . print_r($subscriberData, true));
             $subscriber->create($subscriberData);
             Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Preparing to assign free trial plan ({$subscriptionId}) to new subscriber: " . print_r($subscriber->toArray(), true));
             $subscriber->assignFreeTrialPlan($subscriptionId);
         } else {
             $invoice = new SpreedlyInvoice();
             Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Creating a Spreedly invoice for subscription id: {$subscriptionId}");
             $invoice->create($subscriber, $subscriptionId);
             $invoice->pay($paymentMethod);
             Cart66Common::log('[' . basename(__FILE__) . ' - line ' . __LINE__ . "] Spreedly invoice has been created and paid.");
         }
         $this->productId = $productId;
         $this->save();
     }
 }