/** * Initializes resources (i.e. registers them with Resource::_registry). Note * that if you add a Resource then you must initialize it here. * * @internal */ private static function initializeResources() { if (self::$initialized) { return; } \infiniteLabs\BalancedPayments\Resource::init(); \infiniteLabs\BalancedPayments\APIKey::init(); \infiniteLabs\BalancedPayments\Marketplace::init(); \infiniteLabs\BalancedPayments\Credit::init(); \infiniteLabs\BalancedPayments\Debit::init(); \infiniteLabs\BalancedPayments\Refund::init(); \infiniteLabs\BalancedPayments\Reversal::init(); \infiniteLabs\BalancedPayments\Card::init(); \infiniteLabs\BalancedPayments\BankAccount::init(); \infiniteLabs\BalancedPayments\BankAccountVerification::init(); \infiniteLabs\BalancedPayments\CardHold::init(); \infiniteLabs\BalancedPayments\Callback::init(); \infiniteLabs\BalancedPayments\Event::init(); \infiniteLabs\BalancedPayments\Customer::init(); \infiniteLabs\BalancedPayments\Order::init(); \infiniteLabs\BalancedPayments\Dispute::init(); self::$initialized = true; }
/** * Find or create a role-less account by email address. You can later turn * this into a buyer by adding a funding source (e.g a card) or a merchant * using \infiniteLabs\BalancedPayments\Account->promoteToMerchant. * * @param string email_address Email address. There can only be one account with this email address. * * @return \infiniteLabs\BalancedPayments\Account */ function findOrCreateCustomerByEmailAddress($email_address) { $marketplace = Marketplace::mine(); $customer = $marketplace->customers->query()->filter(Customer::$f->email->eq($email_address))->first(); if ($customer) { return $customer; } return $this->createCustomer($email_address); }