MerchantAccount.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace Braintree;
  3. class MerchantAccount extends Base
  4. {
  5. const STATUS_ACTIVE = 'active';
  6. const STATUS_PENDING = 'pending';
  7. const STATUS_SUSPENDED = 'suspended';
  8. const FUNDING_DESTINATION_BANK = 'bank';
  9. const FUNDING_DESTINATION_EMAIL = 'email';
  10. const FUNDING_DESTINATION_MOBILE_PHONE = 'mobile_phone';
  11. public static function factory($attributes)
  12. {
  13. $instance = new self();
  14. $instance->_initialize($attributes);
  15. return $instance;
  16. }
  17. protected function _initialize($merchantAccountAttribs)
  18. {
  19. $this->_attributes = $merchantAccountAttribs;
  20. if (isset($merchantAccountAttribs['individual'])) {
  21. $individual = $merchantAccountAttribs['individual'];
  22. $this->_set('individualDetails', MerchantAccount\IndividualDetails::Factory($individual));
  23. }
  24. if (isset($merchantAccountAttribs['business'])) {
  25. $business = $merchantAccountAttribs['business'];
  26. $this->_set('businessDetails', MerchantAccount\BusinessDetails::Factory($business));
  27. }
  28. if (isset($merchantAccountAttribs['funding'])) {
  29. $funding = $merchantAccountAttribs['funding'];
  30. $this->_set('fundingDetails', new MerchantAccount\FundingDetails($funding));
  31. }
  32. if (isset($merchantAccountAttribs['masterMerchantAccount'])) {
  33. $masterMerchantAccount = $merchantAccountAttribs['masterMerchantAccount'];
  34. $this->_set('masterMerchantAccount', self::Factory($masterMerchantAccount));
  35. }
  36. }
  37. // static methods redirecting to gateway
  38. public static function create($attribs)
  39. {
  40. return Configuration::gateway()->merchantAccount()->create($attribs);
  41. }
  42. public static function find($merchant_account_id)
  43. {
  44. return Configuration::gateway()->merchantAccount()->find($merchant_account_id);
  45. }
  46. public static function update($merchant_account_id, $attributes)
  47. {
  48. return Configuration::gateway()->merchantAccount()->update($merchant_account_id, $attributes);
  49. }
  50. }
  51. class_alias('Braintree\MerchantAccount', 'Braintree_MerchantAccount');