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