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

Monday, 27 July 2020

Hong Kong-based EMQ raises $20 million for its cross-border financial settlement tech

Cross-border financial transactions are a major headache for individuals and large companies alike, who often have to deal with long wait times and high fees in order to send money to recipients in other countries. EMQ, a Hong Kong-based startup that develops network infrastructure to make international payments faster, announced today that it has raised a $20 million Series B led by WI Harper Group.

EMQ’s technology is integrated by clients, including online banks digital wallets, e-commerce and merchant settlement providers and licensed financial institutions, into their existing networks, making it easier for them to perform cross-border remittances.

The funding, which also included participation from AppWorks, Abu Dhabi Capital, DG Ventures, Intudo Ventures, VS Partners, January Capital, Hard Yaka, Vectr Fintech Partners, Quest Ventures and Sparklabs, will be used for expanding EMQ’s international business, product development and licensing in key markets. Along with a Series A announced back in December 2017, its newest round brings EMQ’s total raised to $26.5 million.

EMQ is already licensed in Hong Kong, Singapore, Indonesia and registered as a Money Service Business in Canada. It has also been accepted into the regulatory sandbox launched by Taiwan’s Financial Supervisory Commission to encourage innovation by financial tech companies.

The company’s co-founder and chief executive officer Max Liu told TechCrunch that EMQ will focus on scaling its operations, especially for business remittances, in China, followed by India and Japan. EMQ’s tech is already used to process business payments in 80 countries.

Until recently, the majority of transactions facilitated by EMQ were between consumers. Then in May, the company launched its enterprise payment solution for companies. Liu said EMQ now expects business-to-business transactions to account for half of its gross transaction volume in 2021.

According to Juniper Research, cross-border B2B transactions are expected to exceed $218 trillion by 2022, up from $150 trillion in 2018, thanks in large part to the adoption of new technology. Other fintech companies that also provide tech, including APIs, for cross-border transactions include Currencycloud, Payoneer and Transferwise.

Liu said EMQ’s main selling point is that it is focused on building a flexible infrastructure that can handle a large range of use cases in different countries, including e-commerce, merchant settlement, procurement, remittance and payroll.

He added that EMQ can be integrated into a client’s existing tech infrastructure with as little as two API calls. EMQ gives clients a fully-functional sandbox environment, which mimics real transactions, and allows them to experiment with its tech and work with EMQ’s customer support team before it is formally deployed. Liu said it usually takes clients between two weeks to two months, depending on a company’s size and requirements, to fully integrate EMQ into their business operations.

In a press statement about the investment, Edward Liu, a partner at WI Harper Group, said, “As digital transformation intensifies globally, enterprises today are increasingly international in scale and they will require a network infrastructure like EMQ with greater speed, more certainty, increased flexibility and transparency, to expand their business in Asia and beyond. We are excited to partner with the EMQ team to expand its market-leading position in cross-border business payments globally.”



from TechCrunch https://ift.tt/39AKgg8
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support