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, 24 June 2020

London fintech Curve to power Samsung Pay Card in the UK

Curve, the London fintech that is re-bundling various financial products by letting you consolidate all your bank cards into a single card and app, is partnering with Samsung in the U.K. to power its forthcoming debit card, which is scheduled to launch later this year.

Dubbed “Samsung Pay Card” — and obviously a bid by Samsung to better compete with Apple Wallet and Apple’s own credit card launch — the product is being described as a digital payment solution that will give Samsung customers “greater flexibility and control when managing their finances by offering a single view of spend, whilst also enabling a simple and secure way to pay”. Just like Curve’s direct offering, it also promises the ability to “sync multiple loyalty and bank cards in one place” for a true digital wallet experience.

Notably, at one point in the press release the product is referred to as Samsung Pay Card “powered by Curve,” pointing to a degree of co-branding, too. If you look carefully at the product renders, it looks like once you’ve signed up for Samsung Pay Card and added it to the Samsung Pay wallet, there is a link to take you through to Curve’s “over-the-top banking platform” app to access the full set of features. That’s speculation on my part, but an educated guess certainly points in that direction and makes a ton of sense (see below).

“We are delighted to announce this new partnership with Curve, coming together to provide a new payment solution for Samsung customers which will be available via Samsung Pay later this year” says Conor Pierce, Corporate Vice-President of Samsung UK & Ireland, in a statement.

“At Samsung, our customers are at the heart of everything we do, which is why we strive to create the best technology, services and solutions. The Samsung Pay Card powered by Curve will allow us to expand our Samsung Pay offering, giving our loyal customers even greater benefits and rewards than ever before.”

Adds Shachar Bialick, founder and CEO of Curve: “We are delighted to be able to offer Curve’s unique benefits to customers of one of the world’s biggest brands and enable customers to access a significantly greater range of banking services leading to a healthier financial life with Samsung Pay.”

Why Samsung Pay Card powered by Curve could be a win-win

Tl;dr: The two companies have previous form after Curve added support for Samsung Pay in the U.K. in November, making it easy for Samsung smartphone owners to pay using their mobile phone, regardless of who they bank with. Samsung Pay has struggled to get the banking relationships needed to make it anything like a ubiquitous payment option. However, Curve cleverly circumvents this with its own Mastercard Curve debit card, which does support Samsung Pay and therefore any bank card added to Curve does too.

As I wrote when Curve’s Samsung Pay support was unveiled, that’s quite significant for Samsung customers because of the lack of Samsung Pay support from many of the major banks who prefer to build NFC-enabled payments into their own banking apps instead. Unlike Apple, which tightly controls the iPhone’s NFC technology and therefore arguably forces banks to work with them, the NFC tech in Samsung and other Android phones can be accessed by third-party developers. This means there is less incentive for banks to support competing NFC apps, including digital wallets such as Samsung Pay (or Google Pay, for that matter).

Curve’s over-the-top banking platform — including via a Samsung Pay Card powered by Curve — closes this loop, essentially supercharging Samsung Pay without the need for Samsung to have direct bank partnerships.

Of course, in addition, Samsung Pay Card in the U.K. immediately looks more innovative than a credit card with a nice app (à la Apple Card or Samsung’s forthcoming U.S. debit card), benefiting from the unique and increasingly useful feature set that Curve has been painstakingly building over the last few years. These include a single view of your card spending that is entirely agnostic to where your money is stored, and things like instant spend notifications, cheaper FX fees than your bank typically charges, peer-to-peer payments from any linked bank account, and the ability to switch payment sources retroactively.

Finally, for Curve itself, the upside is more obvious. Samsung, as one of the largest mobile handset makers in the world, can help give Curve’s proposition a major shot in the arm and ensure it gets in front of a swathe of new mainstream users. That feels especially important for a fintech that is doing something truly novel, yet whose product can feel quite abstract until you’ve actually started using it on a daily basis.



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

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support