"http://www.example.com")) ); return Braintree_TestHelper::submitTrRequest( TransparentRedirect::url(), $regularParams, $trData ); } public static function submitTrRequest($url, $regularParams, $trData) { $curl = curl_init(); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_HEADER, true); // curl_setopt($curl, CURLOPT_VERBOSE, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array_merge($regularParams, array('tr_data' => $trData)))); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded' )); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); curl_close($curl); preg_match('/Location: .*\?(.*)/i', $response, $match); return trim($match[1]); } public static function suppressDeprecationWarnings() { set_error_handler("Braintree_TestHelper::_errorHandler", E_USER_NOTICE); } static function _errorHandler($errno, $errstr, $errfile, $errline) { if (preg_match('/^DEPRECATED/', $errstr) == 0) { trigger_error('Unknown error received: ' . $errstr, E_USER_ERROR); } } public static function includes($collection, $targetItem) { foreach ($collection AS $item) { if ($item->id == $targetItem->id) { return true; } } return false; } public static function assertPrintable($object) { " " . $object; } public static function settle($transactionId) { $http = new Braintree_Http(Braintree_Configuration::$global); $path = Braintree_Configuration::$global->merchantPath() . '/transactions/' . $transactionId . '/settle'; $http->put($path); } public static function settlementDecline($transactionId) { $http = new Braintree_Http(Braintree_Configuration::$global); $path = Braintree_Configuration::$global->merchantPath() . '/transactions/' . $transactionId . '/settlement_decline'; $http->put($path); } public static function settlementPending($transactionId) { $http = new Braintree_Http(Braintree_Configuration::$global); $path = Braintree_Configuration::$global->merchantPath() . '/transactions/' . $transactionId . '/settlement_pending'; $http->put($path); } public static function escrow($transactionId) { $http = new Braintree_Http(Braintree_Configuration::$global); $path = Braintree_Configuration::$global->merchantPath() . '/transactions/' . $transactionId . '/escrow'; $http->put($path); } public static function create3DSVerification($merchantAccountId, $params) { $http = new Braintree_Http(Braintree_Configuration::$global); $path = Braintree_Configuration::$global->merchantPath() . '/three_d_secure/create_verification/' . $merchantAccountId; $response = $http->post($path, array('threeDSecureVerification' => $params)); return $response['threeDSecureVerification']['threeDSecureToken']; } public static function nowInEastern() { $eastern = new DateTimeZone('America/New_York'); $now = new DateTime('now', $eastern); return $now->format('Y-m-d'); } public static function decodedClientToken($params=array()) { $encodedClientToken = Braintree_ClientToken::generate($params); return base64_decode($encodedClientToken); } }