diff --git a/source/Paysafe/MerchantAccountService.php b/source/Paysafe/MerchantAccountService.php index 6ed85f9..abdd46e 100644 --- a/source/Paysafe/MerchantAccountService.php +++ b/source/Paysafe/MerchantAccountService.php @@ -169,6 +169,7 @@ public function createMerchantAccountAddress(MerchantAccountAddress $address) $address->setOptionalFields(array( 'street2' )); + $this->fixState($address); $request = new Request(array( 'method' => Request::POST, 'uri' => $this->prepareURI('/accounts/' . $this->client->getAccount() . '/addresses'), @@ -232,6 +233,7 @@ function createMerchantAccountBusinessOwnerAddress(MerchantAccountBusinessOwnerA $businessOwnerAddress->setOptionalFields(array( 'street2' )); + $this->fixState($businessOwnerAddress); $request = new Request(array( 'method' => Request::POST, 'uri' => $this->prepareURI('/businessowners/' . $businessOwnerAddress->businnessOwnerId . '/currentaddresses'), @@ -263,6 +265,7 @@ function createMerchantAccountBusinessOwnerAddressPrevious(MerchantAccountBusine $businessOwnerAddress->setOptionalFields(array( 'street2' )); + $this->fixState($businessOwnerAddress); $request = new Request(array( 'method' => Request::POST, 'uri' => $this->prepareURI('/businessowners/' . $businessOwnerAddress->businnessOwnerId . '/previousaddresses'), @@ -328,8 +331,8 @@ function addSubMerchantEftBankAccount(MerchantEftBankAccount $bankAccount) /** * Add Merchant Ach Bank Account * - * @param MerchantEftBankAccount $bankAccount - * @return MerchantEftBankAccount + * @param MerchantAchBankAccount $bankAccount + * @return MerchantAchBankAccount * @throws PaysafeException */ function addSubMerchantAchBankAccount(MerchantAchBankAccount $bankAccount) @@ -348,6 +351,29 @@ function addSubMerchantAchBankAccount(MerchantAchBankAccount $bankAccount) return new MerchantAchBankAccount($response); } + /** + * Update Ach Bank Account + * + * @param MerchantAchBankAccount $bankAccount + * @return MerchantAchBankAccount + * @throws PaysafeException + */ + function updateMerchantAchBankAccount(MerchantAchBankAccount $bankAccount) + { + $bankAccount->setRequiredFields(array( + 'accountNumber', + 'routingNumber' + )); + $request = new Request(array( + 'method' => Request::PUT, + 'uri' => $this->prepareURI('/achbankaccounts/' . $bankAccount->id), + 'body' => $bankAccount + )); + $response = $this->client->processRequest($request); + + return new MerchantAchBankAccount($response); + } + /** * Add Sub Merchant Eft Bank Account * @@ -372,6 +398,30 @@ function addMerchantEftBankAccount(MerchantEftBankAccount $bankAccount) return new MerchantEftBankAccount($response); } + /** + * Update Eft Bank Account + * + * @param MerchantEftBankAccount $bankAccount + * @return MerchantEftBankAccount + * @throws PaysafeException + */ + function updateMerchantEftBankAccount(MerchantEftBankAccount $bankAccount) + { + $bankAccount->setRequiredFields(array( + 'accountNumber', + 'transitNumber', + 'institutionId' + )); + $request = new Request(array( + 'method' => Request::PUT, + 'uri' => $this->prepareURI('/eftbankaccounts/' . $bankAccount->id ), + 'body' => $bankAccount + )); + $response = $this->client->processRequest($request); + + return new MerchantEftBankAccount($response); + } + /** * Get Our Terms and Conditions * @@ -478,4 +528,14 @@ function createMerchant(Merchant $merchant) return new Merchant($response); } + + /** + * @param JSONObject $address + */ + function fixState(JSONObject $address) + { + if (isset($address->state)) { + $address->state = str_ireplace('OR_', 'OR', $address->state); + } + } }