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();

Thursday, 26 March 2020

Stripe leads $20M Series A into Fast, which is building a universal checkout service for e-commerce

Early this morning, Fast, a startup building platform-agnostic login and checkout services, announced that Stripe has led a $20 million investment into its business. Prior investors Index Ventures and Susa Ventures took part in the round. Susa previously participated in the company’s late-2019 round that Index led.

Coming in late March, the new capital is a quick-follow to Fast’s November seed round. Such a rapid-fire deal would have felt right at home in mid-2019; to see two consecutive rounds in less than a half-year in 2020, in contrast, feels aggressive, though that’s more a testament to how the market has changed than Fast’s ability to attract capital.

Fast was founded by Domm Holland, a serial entrepreneur, and Allison Barr Allen, best known for her time at Uber. Holland is the company’s CEO while Barr Allen has taken on Fast’s COO role.

As the venture capital market cools in the face of a global economic slowdown, let’s take a minute to unpack what Fast does to better understand why Stripe led its Series A so quickly after its preceding venture round.

What does Fast do?

Let’s explain Fast’s product by way of analogy. You and I read the news, and we buy things online. Logging into news services is a colossal pain in the backside, and if you’re buying something other than on Amazon, you probably have to relog. Which is irksome and slow and generally annoying.

Fast, per its name, wants to make logging in far quicker, and also wants to help you check out at online stores more simply, and, as before, rapidly. In an interview with TechCrunch, CEO Domm Holland said that Fast wants “to be the intermediary for all consumer interactions,” which he broke down as a “fancy way of saying we want to give you one-click login, one-click payments, one-click data everywhere.”

In short, Fast wants to be your profile for signing into services and buying goods online, everywhere that it can be. You can now begin to see why Stripe led the company’s Series A. If Stripe has built a way for lots of digital stores and businesses to accept payments, Fast wants to build the equivalent consumer solution for the other side of those transactions.

Notably, Fast wants to be a platform, allowing other companies to bring its service to other niches; my example of media before wasn’t idle, it was an example that I chewed over with Holland and Fast’s CEO Barr Allen during a call discussing how the company’s service might be used in the future.

At this point you’re probably wondering how Fast works in practice. Holland explained the process to TechCrunch using online shopping as the example. According to the CEO, the first time a user sees a Fast checkout button while buying a good or service, they are able to click it, at which point they’ll be prompted with a “short, optimized checkout form” that asks for five pieces of information (email, name, phone number, address and credit card information). After the user finishes inputting those details, Fast wraps the transaction and saves the consumer’s information. Per Holland, those credentials are stored so that the next time that same user sees a Fast button, they can power through the sale rapidly, because the company already knows who they are and how they pay. (Note: You’ll have to relog if you change devices, natch.)

You can see how the more places Fast is available the more useful it becomes; picking up money from Stripe then has advantages for Fast, as its new benefactor is integrated around the Web, a footprint that its new investment might be able to leverage to gain distribution of its own. And the deal bakes Stripe’s service even more deeply into a payment gateway of sorts that has ambitions to be work across the internet. (Fast makes money on a spread between the payment cost it charges its customers and what it pays Stripe.)

Today versus the future

Today, however, Fast’s login product is in-market, while its payments service has yet to see a wide rollout. With 20 million new dollars, however, we expect to see the firm’s checkout service in-market quickly. Indeed, the startup noted in a release that it intends to use its new capital to “accelerate the global rollout of Fast Checkout” and grow it staff.

Jumping from a $2.5 million raise to a $20 million investment in a few months is quick; Fast should have all the capital it could possibly need to build its vision for the next year. This brings us to our final point. Namely that if Fast succeeds, and its payments-and-login service does take off, it could provide a reasonable bulwark against whole-scale consumption of digital identity by major tech companies, and the siloing of identity amongst media companies that we see today.

Long have I dreamed of having a central login for my media accounts. Fast could, in theory, power such a service. That is, if no one snaps up the company first. On that point, Index’s Jan Hammer, the investor who led the company’s seed round, cited the company’s independence as a net-plus for Fast, saying that “many merchants would tell you they don’t trust Amazon, and many shoppers would admit that they don’t trust Google to store their credit cards because they both have different agendas.” There we agree. 

More when we see Fast around the Web.



from TechCrunch https://ift.tt/3agcIDL
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support