public function send($address, $amount, $ip, $referral = false) { $apiKey = $this->settingRepository->getApiKey(); $query = http_build_query(array('apikey' => $apiKey)); $url = $this->config['api_url'] . '?' . $query; $headers = array('Connection' => 'close'); $data = http_build_query(array('address' => $address, 'amount' => $amount, 'referral' => $referral, 'ip' => $ip)); $browser = new Browser(); $browser->getClient()->setVerifyPeer(false); /** @var Response $response */ try { $response = $browser->post($url, $headers, $data); } catch (Exception $e) { throw new PaytoshiException('Error while posting request', 500, $e); } $content = json_decode($response->getContent(), true); $apiResponse = new ApiResponse($response->isSuccessful(), $response); if (!$response->isSuccessful()) { if (isset($content['code'])) { switch ($content['code']) { case 'NOT_ENOUGH_FUNDS': $apiResponse->setError('Insufficient funds.'); break; case 'INVALID_ADDRESS': $apiResponse->setError('Invalid address.'); break; case 'FAUCET_DISABLED': $apiResponse->setError('This faucet has been disabled by the owner or the Paytoshi staff.'); break; case 'ACCESS_DENIED': $apiResponse->setError('Access denied, please check your apikey.'); break; case 'INTERNAL ERROR': $apiResponse->setError('An internal server error has occurred, try again later.'); break; case 'BAD_REQUEST': $apiResponse->setError('Invalid request.'); break; default: $apiResponse->setError(sprintf("Generic error: %s.", $content['code'])); break; } } else { $apiResponse->setError('Generic error.'); } return $apiResponse; } $apiResponse->setAmount($content['amount']); $apiResponse->setRecipient($content['recipient']); return $apiResponse; }
public function send($address, $amount, $ip, $referral = false) { $apiKey = $this->settingRepository->getApiKey(); $query = http_build_query(array('apikey' => $apiKey)); $url = $this->config['api_url'] . '?' . $query; $data = http_build_query(array('address' => $address, 'amount' => $amount, 'referral' => $referral, 'ip' => $ip)); $browser = new Browser(); $browser->getClient()->setVerifyPeer(false); /* @var $response Response */ try { $response = $browser->post($url, array(), $data); } catch (Exception $e) { throw new PaytoshiException('Failed to send', 500, $e); } $content = json_decode($response->getContent(), true); $apiResponse = new ApiResponse($response->isSuccessful(), $response); if (!$response->isSuccessful()) { if (isset($content['code'])) { switch ($content['code']) { case 'NOT_ENOUGH_FUNDS': $apiResponse->setError('Insufficient funds.'); break; case 'INVALID_ADDRESS': $apiResponse->setError('Invalid address.'); break; case 'FAUCET_DISABLED': $apiResponse->setError('This faucet has been disabled by the owner or the Paytoshi staff.'); break; default: $apiResponse->setError('Failed to send'); break; } } else { $apiResponse->setError('Failed to send'); } return $apiResponse; } $apiResponse->setAmount($content['amount']); $apiResponse->setRecipient($content['recipient']); return $apiResponse; }