Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Wednesday, 25 March 2020

Plastiq raises $75M to help small businesses use credit cards more

When Eliot Buchanan tried to use his credit card to pay his Harvard tuition bill, the payment was rejected because the university said it doesn’t accept credit. Realizing the same problem exists for thousands of different transactions like board, rent and vendor payments, he launched Plastiq. Plastiq helps people use credit cards to pay, or get paid, for anything

Plastiq today announced that it has raised $75 million in venture capital in a Series D round led by B Capital Group. Kleiner Perkins, Khosla Ventures, Accomplice and Top Tier Capital Partners also participated in the round. The round brings the company’s total known venture capital raised to more than $140 million.

To use Plastiq, users enter their credit card information on Plastiq’s platform. In return, Plastiq will charge you a 2.5% fee and get your bills paid. While Plastiq was started with consumers in mind, SMBs have now accounted for 90% of the revenue, according to Buchanan. The new financing round will invest in building out features to give SMBs faster services around payments and processing. 

Plastiq provides a way for SMBs and consumers to pay their bills and make sure they have reliable cash flow. For example, restaurants sometimes have a drop in revenue due to seasonality or, as we’re experiencing now with COVID-19, pandemic lockdowns. Or tourism companies for cities that are struggling to attract visitors. Those companies still need cash flow, and using Plastiq’s service, they can use credit cards to pay suppliers even in an off season. 

There is no shortage of competition from other companies also trying to solve pain points in small-business cash flow. According to Buchanan, Plastiq’s biggest competitors are traditional lenders, as well as companies like Kabbage and Fundbox. Similar claims could be made about Brex, which offers a credit card for startups to access capital faster. 

Kabbage provides funding to SMBs through automated business loans. The SoftBank-backed company landed $200 million in a revolving credit line back in July, fresh off of landing strong partnerships with banks and giants like Alibaba to access more customers. Kabbage loans out roughly $2-3 billion to SMBs every year. 

Plastiq, according to its release, is also on track to make more than $2 billion in transactions. But unlike Kabagge, Plastiq doesn’t issue loans or credit, it just unlocks a payment opportunity.

“SMBs don’t need to be burdened with additional debt or additional loans,” Buchanan said. “So rather than trying to reinvent the wheel, let’s use a behavior they have already earned.” 

Buchanan would not disclose Plastiq’s current valuation or revenue, but he did say that it’s not too far away from $100 million in revenue run rate. The company’s revenue has grown 150% from 2018 to 2019. 

The company also noted that it has surpassed “well over 1 million users,” up 150% in unique new users from 2018 to 2019.

In terms of profitability, Buchanan said that “we could be profitable if we wanted to be,” noting that Plastiq’s revenue and margins could lead them toward profitability if they wanted to focus less on growth. But he added they don’t plan to “slow down” the growth engine any time soon — especially in the wake of the COVID-19 pandemic.

Because the Series D round closed at the end of 2019, Buchanan said the pandemic did not impact the deal. However, the company had planned to time the announcement with tax season. Now, as small businesses struggle to secure capital and stay afloat due to lockdowns across the country, Plastiq’s new raise feels more fitting. 

“Our customers are more thankful for solutions like ours as traditional sources of lending are drying up and not as easy to access” Buchanan said. “Hopefully, we can measure how many businesses make it through this because of us.” 

The 140-person company is currently hiring across product and engineering roles.



from TechCrunch https://ift.tt/2WEOm2C
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support