Example #1
0
 /**
  * Find and return a credit card.
  *
  * @param mixed $id
  * 
  * @return Invoice
  */
 public function find($id)
 {
     try {
         return new Invoice($this->model, $this->model->gatewayCustomer()->invoice($id));
     } catch (\Exception $e) {
     }
     return null;
 }
Example #2
0
 /**
  * Add a new credit card to this customer in the billing gateway.
  *
  * @param string $card_token
  * 
  * @return Creditcard
  */
 public function create($card_token)
 {
     if (!$this->model->readyForBilling()) {
         return;
     }
     $card = new Creditcard($this->model, $this->model->gatewayCustomer()->card()->create($card_token));
     $this->model->billing_cards = array_merge($this->model->billing_cards, array($card->toArray()));
     $this->model->save();
     return $card;
 }
Example #3
0
 /**
  * Create this charge in the billing gateway.
  *
  * @param int   $amount
  * @param array $properties
  * 
  * @return Charge
  */
 public function create($amount, array $properties = array())
 {
     if (!$this->model->readyForBilling()) {
         if ($this->card_token) {
             $this->model->billing()->withCardToken($this->card_token)->create($properties);
             if (!empty($this->model->billing_cards)) {
                 $this->card_token = null;
             }
         } else {
             $this->model->billing()->create($properties);
         }
     }
     if ($this->card_token) {
         $this->card = $this->model->creditcards()->create($this->card_token)->id;
         $this->card_token = null;
     }
     $gateway_charge = \LinkThrow\Billing\Facades\Billing::charge(null, $this->model->gatewayCustomer())->create($amount, array_merge($properties, array('card_token' => $this->card_token, 'card' => $this->card)));
     return new Charge($this->model, $gateway_charge);
 }
Example #4
0
 /**
  * Create a new CustomerBillableTrait Billing instance.
  *
  * @param Model $model
  *
  */
 public function __construct(Model $model)
 {
     $this->model = $model;
     $this->customer = $this->model->gatewayCustomer();
     $this->info = $this->customer ? $this->customer->info() : array();
 }
Example #5
0
 /**
  * Create a new CustomerBillableTrait Billing instance.
  *
  * @param \Illuminate\Database\Eloquent\Model $model
  *
  * @return void
  */
 public function __construct(\Illuminate\Database\Eloquent\Model $model)
 {
     $this->model = $model;
     $this->customer = $this->model->gatewayCustomer();
     $this->info = $this->customer ? $this->customer->info() : array();
 }