示例#1
0
文件: System.php 项目: Rchek/PensDev
 /**
  * Send a HTTP Post request
  *
  * @param string $url
  * @param array $data = array
  * @return false|string
  */
 public function makeHttpPostRequest($url, array $data = array())
 {
     if (!$this->hasValidCurlMethods()) {
         foreach ($data as $key => $value) {
             $data[$key] = urlencode($key) . '=' . urlencode($value);
         }
         $body = implode('&', $data);
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_POST, count($data));
         curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
         curl_setopt($ch, CURLOPT_USERAGENT, self::CURL_USERAGENT);
         curl_setopt($ch, CURLOPT_TIMEOUT, 10);
         curl_setopt($ch, CURLOPT_HEADER, true);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         if (strpos($url, 'https://') !== false) {
             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
         }
         $response = curl_exec($ch);
         if (curl_errno($ch) || curl_error($ch)) {
             throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', curl_errno($ch), curl_error($ch)));
         }
         curl_close($ch);
         return $response;
     }
     $curl = new Varien_Http_Adapter_Curl();
     $curl->setConfig(array('verifypeer' => strpos($url, 'https://') !== false, 'header' => true, 'timeout' => 15, 'referrer' => Mage::helper('wordpress')->getBaseUrl('wp-login.php')));
     $curl->addOption(CURLOPT_FOLLOWLOCATION, false);
     $curl->addOption(CURLOPT_USERAGENT, self::CURL_USERAGENT);
     $curl->addOption(CURLOPT_REFERER, true);
     $curl->write(Zend_Http_Client::POST, $url, '1.1', array('Expect:'), $data);
     $response = $curl->read();
     if ($curl->getErrno() || $curl->getError()) {
         throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', $curl->getErrno(), $curl->getError()));
     }
     $curl->close();
     return $response;
 }
示例#2
0
 public function indexAction()
 {
     /*$http = new Varien_Http_Adapter_Curl();
     		$cookie = 'cookie.txt';
     		$account = '*****@*****.**'; 
     		$password= '******';
     		$appIdPrefix = "88X6EP4WFV";
     		
     		$config = array('timeout' => 3000,'verifypeer' => FALSE,'verifyhost' => FALSE);
     		
     		$naAppCodeName = 'Mozilla';
     		$naAppName = 'Netscape';
     		$naAppVersion = '5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36';
     		
     		
     		$options = array(CURLOPT_USERAGENT => "$naAppCodeName/$naAppVersion",
     						CURLOPT_COOKIEJAR => realpath($cookie),
     						CURLOPT_COOKIEFILE => realpath($cookie)
     					);
         	$http->setConfig($config);
     		$http->setOptions($options);
     		
     		
     		//get link login
     		$url = 'https://appleid.apple.com/cgi-bin/WebObjects/MyAppleId.woa/wa/directToSignIn?localang=en_US';
     		$http->write(Zend_Http_Client::GET, $url, '1.1');
     		$content = $http->read();
     		
     		$regex_pattern =  "/id=\"signIn\" name=\"appleConnectForm\" action=\"(.*?)\">/";
     		preg_match($regex_pattern, $content, $match);
     		
     		$url = 'https://appleid.apple.com'.$match[1];
     		
     		$regex_pattern =  "/id=\"fdcBrowserDataId\" type=\"hidden\" name=\"(.*?)\"/";
     		preg_match($regex_pattern, $content, $match);
     		$fdcBrowserDataId = $match[1];
     		
     		$regex_pattern =  "/id=\"actionChosen\" type=\"hidden\" name=\"(.*?)\"/";
     		preg_match($regex_pattern, $content, $match);
     		$actionChosen = $match[1];
     		
     		$regex_pattern =  "/name=\"wosid\" value=\"(.*?)\"/";
     		preg_match($regex_pattern, $content, $match);
     		$wosid = $match[1];
     		
     		$naProductSub = '20030107';
     		$naBrowserLanguage = 'undefined';
     		$naCookieEnabled = 'true';
     		$navigatorOscpu = $naCpuClass = ''; //undefined
     		$naOnLine = 'true';
     		$naPlatform = 'Win32';
     		$naSystemLanguage = 'undefined';
     		$naLanguage = 'en-US';
     		$documentDefaultCharset = 'ISO-8859-1';
     		$documentDomain = 'appleid.apple.com';
     		$screenDeviceXDPI = 'undefined';
     		$screenDeviceYDPI = 'undefined';
     		$screenFontSmoothingEnabled = 'undefined';
     		$screenUpdateInterval = 'undefined';
     		$timeZoneOffset = date('Z')/3600;
     		$date = '6/7/2005 9:33:44 PM';
     		$screenHeight = '768';
     		$screenWidth = '1366';
     		$pluginsAcrobat = '';
     		$pluginsFlashVersion = '13.0';
     		$pluginsQuickTime = '';
     		$pluginsAcrobat = '';
     		$pluginsJava = '10.51.2';
     		$pluginsDirector = '';
     		$pluginsOffice = '2010';
     		$runTime = rand(20, 50);//thoi gian javascript chay den luc nay
     		$offsetHour = -date('Z')/60;
     		$currentTime = date('n/d/Y H:i:s A');
     		$screenColorDepth = 24;
     		$windowScreenSvailLeft = 0;
     		$windowScreenSvailTop = 0;
     		$flash = 'Shockwave Flash%7CShockwave Flash 12.0 r0';
     		$spanOffset = '18';
     		$milisecondTime = round(microtime(true) * 1000);
     		
     		$offsetGmt = date('P');
     		
     		$encodeAppVersion = $naAppVersion;
     		
     		$encodeAppVersion = str_replace(' ', '%20', $encodeAppVersion);
     		$encodeAppVersion = str_replace('(', '%28', $encodeAppVersion);
     		$encodeAppVersion = str_replace(')', '%29', $encodeAppVersion);
     		$encodeAppVersion = str_replace(';', '%3B', $encodeAppVersion);
     		$encodeAppVersion = str_replace(',', '%2C', $encodeAppVersion);
     		
     		$u = "$naAppCodeName/$naAppVersion";
     		$z = "GMT$offsetGmt";
     		$f = "TF1;016;;;;;;;;;;;;;;;;;;;;;;$naAppCodeName;$naAppName;$encodeAppVersion;$naProductSub;"
     			."$naBrowserLanguage;$naCookieEnabled;$navigatorOscpu;$naOnLine;$naPlatform;$naSystemLanguage;"
     			."$naAppCodeName/$encodeAppVersion;$naLanguage;$documentDefaultCharset;$documentDomain;$screenDeviceXDPI;"
     			."$screenDeviceYDPI;$screenFontSmoothingEnabled;$screenUpdateInterval;false;false;$milisecondTime;$timeZoneOffset;"
     			."$date;$screenWidth;$screenHeight;$pluginsAcrobat;$pluginsFlashVersion;$pluginsQuickTime;$pluginsJava;"
     			."$pluginsDirector;$pluginsOffice;$runTime;$offsetHour;$offsetHour;$currentTime;$screenColorDepth;"
     			."$screenWidth;$screenHeight;$windowScreenSvailLeft;$windowScreenSvailTop;;;;;;"
     			."$flash;;;;;;;;;;;;;$spanOffset;;;;;;;";
     		
     		$f =  str_replace(' ', '%20', $f);
     		$f =  str_replace(':', '%3A', $f);
     		
     		$str = '{"U":"'.$u.'","L":"en-US","Z":"'.$z.'","V":"1.1","F":"'.$f.'"}';
     		
     		$body = array(
     					$actionChosen => '',
     					$fdcBrowserDataId => $str,
     					'theAccountName'  => $account,
     					'theAccountPW' => $password,
     					'signInHyperLink'  => 'Sign in',
     					'theTypeValue' => '',
     					'inframe' => 0,
     					'wosid' => $wosid,
     					'Nojive'  => '');
     					
     
     		$http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
     		$content = $http->read();
     		
     		
     		/*$url = 'https://developer.apple.com/membercenter/index.action';
     		$http->write(Zend_Http_Client::GET, $url, '1.1');
     		$content = $http->read();
     
     		
     		
     		if(!strpos($content, 'Your Account')){//not logged in
     			$pos1 = strpos($content, 'Location:');
     			$pos2 = strpos($content, 'Content-Length:');
     			$nextUrl = substr($content, $pos1+ 10, $pos2-$pos1-10);
     			
     			
     			$http->write(Zend_Http_Client::GET, trim($nextUrl), '1.1');
     			$content = $http->read();
     			
     			$regex_pattern =  "/name=\"form2\" action=\"authenticate;jsessionid=(.*?)\"/";
     			preg_match($regex_pattern, $content, $match);
     			
     			//login
     			$url = 'https://idmsa.apple.com/IDMSWebAuth/authenticate;jsessionid='.$match[1];
     	
     					
     			$naProductSub = '20030107';
     			$naBrowserLanguage = 'undefined';
     			$naCookieEnabled = 'true';
     			$navigatorOscpu = $naCpuClass = ''; //undefined
     			$naOnLine = 'true';
     			$naPlatform = 'Win32';
     			$naSystemLanguage = 'undefined';
     			$naLanguage = 'en-US';
     			$documentDefaultCharset = 'ISO-8859-1';
     			$documentDomain = 'idmsa.apple.com';
     			$screenDeviceXDPI = 'undefined';
     			$screenDeviceYDPI = 'undefined';
     			$screenFontSmoothingEnabled = 'undefined';
     			$screenUpdateInterval = 'undefined';
     			$timeZoneOffset = date('Z')/3600;
     			$date = '6/7/2005 9:33:44 PM';
     			$screenHeight = '768';
     			$screenWidth = '1366';
     			$pluginsAcrobat = '';
     			$pluginsFlashVersion = '13.0';
     			$pluginsQuickTime = '';
     			$pluginsAcrobat = '';
     			$pluginsJava = '10.51.2';
     			$pluginsDirector = '';
     			$pluginsOffice = '2010';
     			$runTime = rand(20, 50);//thoi gian javascript chay den luc nay
     			$offsetHour = -date('Z')/60;
     			$currentTime = date('n/d/Y H:i:s A');
     			$screenColorDepth = 24;
     			$windowScreenSvailLeft = 0;
     			$windowScreenSvailTop = 0;
     			$flash = 'Shockwave Flash%7CShockwave Flash 12.0 r0';
     			$spanOffset = '20';
     			$milisecondTime = round(microtime(true) * 1000);
     			
     			$offsetGmt = date('P');
     			
     			$encodeAppVersion = $naAppVersion;
     			
     			$encodeAppVersion = str_replace(' ', '%20', $encodeAppVersion);
     			$encodeAppVersion = str_replace('(', '%28', $encodeAppVersion);
     			$encodeAppVersion = str_replace(')', '%29', $encodeAppVersion);
     			$encodeAppVersion = str_replace(';', '%3B', $encodeAppVersion);
     			$encodeAppVersion = str_replace(',', '%2C', $encodeAppVersion);
     			
     			$u = "$naAppCodeName/$naAppVersion";
     			$z = "GMT$offsetGmt";
     			$f = "TF1;016;;;;;;;;;;;;;;;;;;;;;;$naAppCodeName;$naAppName;$encodeAppVersion;$naProductSub;"
     				."$naBrowserLanguage;$naCookieEnabled;$navigatorOscpu;$naOnLine;$naPlatform;$naSystemLanguage;"
     				."$naAppCodeName/$encodeAppVersion;$naLanguage;$documentDefaultCharset;$documentDomain;$screenDeviceXDPI;"
     				."$screenDeviceYDPI;$screenFontSmoothingEnabled;$screenUpdateInterval;false;false;$milisecondTime;$timeZoneOffset;"
     				."$date;$screenWidth;$screenHeight;$pluginsAcrobat;$pluginsFlashVersion;$pluginsQuickTime;$pluginsJava;"
     				."$pluginsDirector;$pluginsOffice;$runTime;$offsetHour;$offsetHour;$currentTime;$screenColorDepth;"
     				."$screenWidth;$screenHeight;$windowScreenSvailLeft;$windowScreenSvailTop;;;;;;"
     				."$flash;;;;;;;;;;;;;$spanOffset;;;;;;;";
     			
     			$f =  str_replace(' ', '%20', $f);
     			$f =  str_replace(':', '%3A', $f);
     			
     			$str = '{"U":"'.$u.'","L":"en-US","Z":"'.$z.'","V":"1.1","F":"'.$f.'"}';
     			
     			$body = array(
     						'language' => '',
     						'rv' => '',
     						'sslEnabled' => '',
     						'disable2SV' => '',
     						'Env' => 'PROD',
     						'fdcBrowserData' => $str,
     						'appleId' => $account,
     						'accountPassword' =>$password);
     			
     			
     			print_r($body);
     			$header = array(
     				'Content-Type:application/x-www-form-urlencoded',
     				
     				'Accept-Language:en-US,en;q=0.8,vi;q=0.6',
     			);
     			
     			$http->write(Zend_Http_Client::POST, $url, '1.1', $header, $body);
     			$content = $http->read();
     			
     		}
     		*/
     $appId = 29;
     $app = Mage::getModel('usermanagement/app')->load($appId);
     $website = Mage::getModel('usermanagement/website')->load($app->getWebsiteId());
     $appName = $website->getWebsiteName();
     $bundleId = $website->getIdentifyKey();
     $version = $app->getVersion();
     $websiteUrl = $website->getWebsiteUrl();
     $description = $website->getWebsiteDescription();
     $keywords = $appName;
     $contactInfo = array('Tan', 'Hoang', '*****@*****.**', '+84969679990');
     $pathMedia = Mage::getBaseDir('media') . '/simicart/';
     $images = array($pathMedia . 'icons/' . $website->getData('icon'), $pathMedia . 'splashscreens/' . $website->getData('splash_screen'), $pathMedia . 'splashscreens/' . $website->getData('splash_screen_ip4'));
     $this->convertAndResizeImage($images[0], 1024, 1024, 'temp_icon.png');
     $this->convertAndResizeImage($images[1], 640, 1136, 'temp_splash_screen.png');
     $this->convertAndResizeImage($images[2], 640, 960, 'temp_splash_screen_ip4.png');
     $contactInfo = array('Tan', 'Hoang', '*****@*****.**', '+84969679990');
     $http = new Varien_Http_Adapter_Curl();
     $cookie = 'cookie1.txt';
     $account = '*****@*****.**';
     $password = '******';
     $appIdPrefix = "88X6EP4WFV";
     $config = array('timeout' => 3000, 'verifypeer' => FALSE, 'verifyhost' => FALSE);
     $options = array(CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36", CURLOPT_COOKIEJAR => realpath($cookie), CURLOPT_COOKIEFILE => realpath($cookie));
     $http->setConfig($config);
     $http->setOptions($options);
     $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa';
     $http->write(Zend_Http_Client::GET, $url, '1.1');
     $content = $http->read();
     if (!strpos($content, 'Manage Your Apps')) {
         // chua login
         //die('xxxx');
         $regex_pattern = "/appleConnectForm\" method=\"post\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         //post login
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $body = 'theAccountName=' . $account . '&theAccountPW=' . $password;
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         //$regex_pattern =  "/WebObjects(.*?)x-apple-application-instance/";
         //preg_match($regex_pattern, $content, $match);
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         //after login
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
     }
     $regex_pattern = "/<a href=\"(.*?)\">Manage Your Apps<\\/a>/";
     preg_match($regex_pattern, $content, $match);
     //manage app
     $url = 'https://itunesconnect.apple.com' . $match[1];
     $http->write(Zend_Http_Client::GET, $url, '1.1');
     $content = $http->read();
     $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     //search app
     $url = 'https://itunesconnect.apple.com' . $match[1];
     $regex_pattern = "/class='search-param-compare-sku' id=''><select name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $searchSkuType = $match[1];
     $regex_pattern = "/class='search-param-value-sku' id=''><input type=\"text\" name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $searchSku = $match[1];
     $regex_pattern = "/type=\"submit\" value=\"Search\" name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $submit = $match[1];
     $regex_pattern = "/class='search-param-value-statusSearch' id=''><select name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $status = $match[1];
     $regex_pattern = "/name=\"(.*?)\"/";
     preg_match_all($regex_pattern, $content, $matches);
     $body = array();
     $i = 0;
     foreach ($matches[1] as $item) {
         if (strpos($item, '.')) {
             if ($i == 0) {
                 $body[$item] = 4;
             } else {
                 $body[$item] = '';
             }
             $i++;
         }
     }
     $body[$searchSkuType] = 0;
     $body[$searchSku] = $bundleId;
     $body[$submit] = 'Search';
     $body[$status] = 'WONoSelectionString';
     $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
     $content1 = $http->read();
     if (strpos($content1, 'The following error(s) occurred:')) {
         // search error, create new app
         $content = str_replace(array("\n", "\r", "\t", " "), "", $content);
         $regex_pattern = "/upload-app-button\"><ahref=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         //new app url
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "<input(.*?)type=\"text\"(.*?)name=\"(.*?)\" \\/>";
         preg_match_all($regex_pattern, $content, $matches);
         $nameLabel = $matches[3][0];
         $skuLabel = $matches[3][1];
         //$bundleIdLabel = $matches[3][2];
         $regex_pattern = "/<select id=\"default-language-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $languageLabel = $match[1];
         $regex_pattern = "/<select id=\"primary-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $bundleIdLabel = $match[1];
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/<option value=\"(.*?)\">(.*?) - {$bundleId}<\\/option>/";
         preg_match($regex_pattern, $content, $match);
         $bundleIdId = $match[1];
         $regex_pattern = "/class=\"continueActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $imageLabel = $match[1];
         $body = $nameLabel . '=' . $appName . '&' . $skuLabel . '=simicart_' . $bundleId . '&' . $bundleIdLabel . '=' . $bundleIdId . '&' . $languageLabel . '=6&' . $imageLabel . '.x=1081&' . $imageLabel . '.y=249';
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         //print_r($content);die();
         //$regex_pattern = "/iTunesConnect.woa(.*?)/";
         //preg_match($regex_pattern, $content, $match);
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //page fill date and price
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         //print_r($match);
         $regex_pattern = "/<select(.*?)name=\"(.*?)\">/";
         preg_match_all($regex_pattern, $content, $matches);
         $labels = $matches[2];
         $regex_pattern = "/class=\"continueActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $imageLabel = $match[1];
         $body = $labels[0] . '=' . (date('n') - 1) . '&' . $labels[1] . '=' . (date('j') - 1) . '&' . $labels[2] . '=0' . '&' . $labels[3] . '=0&' . $imageLabel . '.x=1093&' . $imageLabel . '.y=392';
         $regex_pattern = "/<input class=\"country-checkbox\" type=\"checkbox\" name=\"(.*?)\" value=\"(.*?)\" checked=\"checked\"/";
         preg_match_all($regex_pattern, $content, $matches);
         $i = 0;
         foreach ($matches[1] as $name) {
             $body .= '&' . $name . '=' . $matches[2][$i];
             $i++;
         }
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //fill info page
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"versionInitForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/id=\"version-primary-popup\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $primaryCategoryName = $match[1];
         //echo $match[1];die();
         $regex_pattern = "/<input  type=\"text\"(.*?)name=\"(.*?)\"/";
         preg_match_all($regex_pattern, $content, $matches);
         $names = $matches[2];
         $versionName = $names[0];
         $copyrightName = $names[1];
         $keywordsName = $names[2];
         $supportUrlName = $names[3];
         $firstnameName = $names[6];
         $lastnameName = $names[7];
         $emailName = $names[8];
         $phoneName = $names[9];
         $tradeRepFirstnameName = $names[12];
         $tradeRepLastnameName = $names[13];
         $addressLine1Name = $names[14];
         $addressLine2Name = $names[15];
         $cityName = $names[16];
         $postalCodeName = $names[17];
         $contactEmailName = $names[19];
         $contactPhoneName = $names[20];
         //description
         $regex_pattern = "/<textarea onblur(.*?)name=\"(.*?)\"><\\/textarea>/";
         preg_match($regex_pattern, $content, $match);
         $descriptionName = $match[2];
         //country
         $regex_pattern = "/<select id=\"country-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $countryName = $match[1];
         //rate Content Descriptions
         $regex_pattern = "/<input class=\"br-1\" id=\"rank-1\" type=\"radio\" value=\"(.*?)\" name=\"(.*?)\" \\/>/";
         preg_match_all($regex_pattern, $content, $matches);
         $str = '';
         $i = 0;
         foreach ($matches[2] as $ratingName) {
             $str .= $ratingName . '=' . $matches[1][$i++] . '&';
         }
         $str = trim($str, '&');
         $regex_pattern = "/name = \"uploadSessionID\" value=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $sessionId = $match[1];
         $http->addOption(CURLOPT_BINARYTRANSFER, true);
         $http->addOption(CURLOPT_CUSTOMREQUEST, "POST");
         $http->addOption(CURLOPT_UPLOAD, 1);
         //upload images
         $uploadUrl = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/LCUploader/upload?uploadKey=';
         $uploadKeys = array('largeAppIcon', '35InchRetinaDisplayScreenshots', 'iPhone5');
         $i = 0;
         foreach ($images as $imageName) {
             $image = fopen($imageName, "rb");
             $http->addOption(CURLOPT_INFILE, $image);
             $http->addOption(CURLOPT_INFILESIZE, filesize($imageName));
             $header = array('Content-Type: image/png', 'x-original-filename: ' . $imageName, 'x-uploadKey: ' . $uploadKeys[$i], 'x-uploadSessionID: ' . $sessionId);
             //print_r($header);
             $http->write(Zend_Http_Client::POST, $uploadUrl . $uploadKeys[$i], '1.1', $header);
             $content1 = $http->read();
             //print_r($content1);
             $header = array('X-Prototype-Version:1.7', 'X-Requested-With:XMLHttpRequest', 'Content-type:application/x-www-form-urlencoded; charset=UTF-8', 'Referer:' . $url);
             $regex_pattern = "/'{$uploadKeys[$i]}', statusURL: '(.*?)'/";
             preg_match($regex_pattern, $content, $match);
             $afterUploadUrl = 'https://itunesconnect.apple.com' . $match[1];
             //echo $afterUploadUrl;
             $http->write(Zend_Http_Client::POST, $afterUploadUrl, '1.1', $header);
             $content1 = $http->read();
             $i++;
         }
         //submit info
         $body = $versionName . '=' . $version . '&' . $copyrightName . '=Simicart&' . $primaryCategoryName . '=1&' . $keywordsName . '=' . $keywords . '&' . $descriptionName . '=' . $description . '&' . $supportUrlName . '=' . $websiteUrl . '&' . $firstnameName . '=' . $contactInfo[0] . '&' . $lastnameName . '=' . $contactInfo[1] . '&' . $emailName . '=' . $contactInfo[2] . '&' . $phoneName . '=' . $contactInfo[3] . '&' . $addressLine1Name . '=' . 'Lot 15/C16, Dinh Cong Living Urban,' . '&' . $addressLine2Name . '=' . 'Dinh Cong ward, Hoang Mai district' . '&' . $cityName . '=' . 'hanoi' . '&' . $postalCodeName . '=' . '10000' . '&' . $countryName . '=' . '252' . '&' . $str;
         //echo $url;
         $http->addOption(CURLOPT_UPLOAD, false);
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //view app
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/<a class=\"blue-btn\" href=\"(.*?)\">View Details<\\/a>/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         //view detail app
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/class=\"customActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $body = array($match[1] . '.x' => 1044, $match[1] . '.y' => 73);
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //config prepare to upload page
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         //form url
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/class=\"saveChangesActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $buttonName = $match[1];
         $body = 'firstQuestionRadio=false&ipContentsQuestionRadio=false&booleanRadioButton=false&' . $buttonName . '.x=1120&' . $buttonName . '.y=695';
         //save
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
     } else {
         $pos1 = strpos($content1, 'woa/wo/');
         $pos2 = strpos($content1, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content1, $pos1 + 7, $pos2 - $pos1 - 9);
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content1 = $http->read();
         $regex_pattern = "/<a href=\"(.*?)\">{$appName}<\\/a>/";
         preg_match($regex_pattern, $content1, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         //view app
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         if (strpos($content, 'Waiting For Upload')) {
             //upload
         }
     }
 }
 /**
  * Send a HTTP Post request
  *
  * @param string $url
  * @param array $data = array
  * @return false|string
  */
 public function makeHttpPostRequest($url, array $data = array())
 {
     if (!$this->hasValidCurlMethods()) {
         return $this->_makeLegacyHttpPostRequest($url, $data);
     }
     $curl = new Varien_Http_Adapter_Curl();
     $curl->setConfig(array('verifypeer' => strpos($url, 'https://') !== false, 'header' => true, 'timeout' => 15, 'referrer' => Mage::helper('wordpress')->getBaseUrl('wp-login.php')));
     $curl->addOption(CURLOPT_FOLLOWLOCATION, false);
     $curl->addOption(CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
     $curl->write(Zend_Http_Client::POST, $url, '1.1', array(), $data);
     $response = $curl->read();
     if ($curl->getErrno() || $curl->getError()) {
         throw new Exception(Mage::helper('wordpress')->__('CURL (%s): %s', $curl->getErrno(), $curl->getError()));
     }
     $curl->close();
     return $response;
 }
示例#4
0
文件: Test.php 项目: Thinlt/simicart
 public function submitApp($app)
 {
     $website = Mage::getModel('usermanagement/website')->load($app->getWebsiteId());
     $appName = $website->getWebsiteName();
     $bundleId = $website->getIdentifyKey();
     $version = $app->getVersion();
     $websiteUrl = $website->getWebsiteUrl();
     $description = $website->getWebsiteDescription();
     $keywords = $appName;
     $contactInfo = array('Tan', 'Hoang', '*****@*****.**', '+84969679990');
     $pathMedia = Mage::getBaseDir('media') . '/simicart/';
     $images = array($pathMedia . 'icons/' . $website->getData('icon'), $pathMedia . 'splashscreens/' . $website->getData('splash_screen'), $pathMedia . 'splashscreens/' . $website->getData('splash_screen_ip4'));
     $this->convertAndResizeImage($images[0], 1024, 1024, 'temp_icon.png');
     $this->convertAndResizeImage($images[1], 640, 1136, 'temp_splash_screen.png');
     $this->convertAndResizeImage($images[2], 640, 960, 'temp_splash_screen_ip4.png');
     $contactInfo = array('Tan', 'Hoang', '*****@*****.**', '+84969679990');
     $http = new Varien_Http_Adapter_Curl();
     $cookie = 'cookie1.txt';
     $account = '*****@*****.**';
     $password = '******';
     $appIdPrefix = "88X6EP4WFV";
     $config = array('timeout' => 3000, 'verifypeer' => FALSE, 'verifyhost' => FALSE);
     $options = array(CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36", CURLOPT_COOKIEJAR => realpath($cookie), CURLOPT_COOKIEFILE => realpath($cookie));
     $http->setConfig($config);
     $http->setOptions($options);
     $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa';
     $http->write(Zend_Http_Client::GET, $url, '1.1');
     $content = $http->read();
     if (!strpos($content, 'Manage Your Apps')) {
         // chua login
         //die('xxxx');
         $regex_pattern = "/appleConnectForm\" method=\"post\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         //post login
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $body = 'theAccountName=' . $account . '&theAccountPW=' . $password;
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         //$regex_pattern =  "/WebObjects(.*?)x-apple-application-instance/";
         //preg_match($regex_pattern, $content, $match);
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         //after login
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
     }
     $regex_pattern = "/<a href=\"(.*?)\">Manage Your Apps<\\/a>/";
     preg_match($regex_pattern, $content, $match);
     //manage app
     $url = 'https://itunesconnect.apple.com' . $match[1];
     $http->write(Zend_Http_Client::GET, $url, '1.1');
     $content = $http->read();
     $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     //search app
     $url = 'https://itunesconnect.apple.com' . $match[1];
     $regex_pattern = "/class='search-param-compare-sku' id=''><select name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $searchSkuType = $match[1];
     $regex_pattern = "/class='search-param-value-sku' id=''><input type=\"text\" name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $searchSku = $match[1];
     $regex_pattern = "/type=\"submit\" value=\"Search\" name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $submit = $match[1];
     $regex_pattern = "/class='search-param-value-statusSearch' id=''><select name=\"(.*?)\"/";
     preg_match($regex_pattern, $content, $match);
     $status = $match[1];
     $regex_pattern = "/name=\"(.*?)\"/";
     preg_match_all($regex_pattern, $content, $matches);
     $body = array();
     $i = 0;
     foreach ($matches[1] as $item) {
         if (strpos($item, '.')) {
             if ($i == 0) {
                 $body[$item] = 4;
             } else {
                 $body[$item] = '';
             }
             $i++;
         }
     }
     $body[$searchSkuType] = 0;
     $body[$searchSku] = $bundleId;
     $body[$submit] = 'Search';
     $body[$status] = 'WONoSelectionString';
     $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
     $content1 = $http->read();
     if (strpos($content1, 'The following error(s) occurred:')) {
         // search error, create new app
         $content = str_replace(array("\n", "\r", "\t", " "), "", $content);
         $regex_pattern = "/upload-app-button\"><ahref=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         //new app url
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "<input(.*?)type=\"text\"(.*?)name=\"(.*?)\" \\/>";
         preg_match_all($regex_pattern, $content, $matches);
         $nameLabel = $matches[3][0];
         $skuLabel = $matches[3][1];
         //$bundleIdLabel = $matches[3][2];
         $regex_pattern = "/<select id=\"default-language-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $languageLabel = $match[1];
         $regex_pattern = "/<select id=\"primary-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $bundleIdLabel = $match[1];
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/<option value=\"(.*?)\">(.*?) - {$bundleId}<\\/option>/";
         preg_match($regex_pattern, $content, $match);
         $bundleIdId = $match[1];
         $regex_pattern = "/class=\"continueActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $imageLabel = $match[1];
         $body = $nameLabel . '=' . $appName . '&' . $skuLabel . '=simicart_' . $bundleId . '&' . $bundleIdLabel . '=' . $bundleIdId . '&' . $languageLabel . '=6&' . $imageLabel . '.x=1081&' . $imageLabel . '.y=249';
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         //print_r($content);die();
         //$regex_pattern = "/iTunesConnect.woa(.*?)/";
         //preg_match($regex_pattern, $content, $match);
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //page fill date and price
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         //print_r($match);
         $regex_pattern = "/<select(.*?)name=\"(.*?)\">/";
         preg_match_all($regex_pattern, $content, $matches);
         $labels = $matches[2];
         $regex_pattern = "/class=\"continueActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $imageLabel = $match[1];
         $body = $labels[0] . '=' . (date('n') - 1) . '&' . $labels[1] . '=' . (date('j') - 1) . '&' . $labels[2] . '=0' . '&' . $labels[3] . '=0&' . $imageLabel . '.x=1093&' . $imageLabel . '.y=392';
         $regex_pattern = "/<input class=\"country-checkbox\" type=\"checkbox\" name=\"(.*?)\" value=\"(.*?)\" checked=\"checked\"/";
         preg_match_all($regex_pattern, $content, $matches);
         $i = 0;
         foreach ($matches[1] as $name) {
             $body .= '&' . $name . '=' . $matches[2][$i];
             $i++;
         }
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //fill info page
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"versionInitForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/id=\"version-primary-popup\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $primaryCategoryName = $match[1];
         //echo $match[1];die();
         $regex_pattern = "/<input  type=\"text\"(.*?)name=\"(.*?)\"/";
         preg_match_all($regex_pattern, $content, $matches);
         $names = $matches[2];
         $versionName = $names[0];
         $copyrightName = $names[1];
         $keywordsName = $names[2];
         $supportUrlName = $names[3];
         $firstnameName = $names[6];
         $lastnameName = $names[7];
         $emailName = $names[8];
         $phoneName = $names[9];
         $tradeRepFirstnameName = $names[12];
         $tradeRepLastnameName = $names[13];
         $addressLine1Name = $names[14];
         $addressLine2Name = $names[15];
         $cityName = $names[16];
         $postalCodeName = $names[17];
         $contactEmailName = $names[19];
         $contactPhoneName = $names[20];
         //description
         $regex_pattern = "/<textarea onblur(.*?)name=\"(.*?)\"><\\/textarea>/";
         preg_match($regex_pattern, $content, $match);
         $descriptionName = $match[2];
         //country
         $regex_pattern = "/<select id=\"country-popup\" name=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $countryName = $match[1];
         //rate Content Descriptions
         $regex_pattern = "/<input class=\"br-1\" id=\"rank-1\" type=\"radio\" value=\"(.*?)\" name=\"(.*?)\" \\/>/";
         preg_match_all($regex_pattern, $content, $matches);
         $str = '';
         $i = 0;
         foreach ($matches[2] as $ratingName) {
             $str .= $ratingName . '=' . $matches[1][$i++] . '&';
         }
         $str = trim($str, '&');
         $regex_pattern = "/name = \"uploadSessionID\" value=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $sessionId = $match[1];
         $http->addOption(CURLOPT_BINARYTRANSFER, true);
         $http->addOption(CURLOPT_CUSTOMREQUEST, "POST");
         $http->addOption(CURLOPT_UPLOAD, 1);
         //upload images
         $uploadUrl = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wa/LCUploader/upload?uploadKey=';
         $uploadKeys = array('largeAppIcon', '35InchRetinaDisplayScreenshots', 'iPhone5');
         $i = 0;
         foreach ($images as $imageName) {
             $image = fopen($imageName, "rb");
             $http->addOption(CURLOPT_INFILE, $image);
             $http->addOption(CURLOPT_INFILESIZE, filesize($imageName));
             $header = array('Content-Type: image/png', 'x-original-filename: ' . $imageName, 'x-uploadKey: ' . $uploadKeys[$i], 'x-uploadSessionID: ' . $sessionId);
             //print_r($header);
             $http->write(Zend_Http_Client::POST, $uploadUrl . $uploadKeys[$i], '1.1', $header);
             $content1 = $http->read();
             //print_r($content1);
             $header = array('X-Prototype-Version:1.7', 'X-Requested-With:XMLHttpRequest', 'Content-type:application/x-www-form-urlencoded; charset=UTF-8', 'Referer:' . $url);
             $regex_pattern = "/'{$uploadKeys[$i]}', statusURL: '(.*?)'/";
             preg_match($regex_pattern, $content, $match);
             $afterUploadUrl = 'https://itunesconnect.apple.com' . $match[1];
             //echo $afterUploadUrl;
             $http->write(Zend_Http_Client::POST, $afterUploadUrl, '1.1', $header);
             $content1 = $http->read();
             $i++;
         }
         //submit info
         $body = $versionName . '=' . $version . '&' . $copyrightName . '=Simicart&' . $primaryCategoryName . '=1&' . $keywordsName . '=' . $keywords . '&' . $descriptionName . '=' . $description . '&' . $supportUrlName . '=' . $websiteUrl . '&' . $firstnameName . '=' . $contactInfo[0] . '&' . $lastnameName . '=' . $contactInfo[1] . '&' . $emailName . '=' . $contactInfo[2] . '&' . $phoneName . '=' . $contactInfo[3] . '&' . $addressLine1Name . '=' . 'Lot 15/C16, Dinh Cong Living Urban,' . '&' . $addressLine2Name . '=' . 'Dinh Cong ward, Hoang Mai district' . '&' . $cityName . '=' . 'hanoi' . '&' . $postalCodeName . '=' . '10000' . '&' . $countryName . '=' . '252' . '&' . $str;
         //echo $url;
         $http->addOption(CURLOPT_UPLOAD, false);
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $viewAppUrl = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //view app
         $http->write(Zend_Http_Client::GET, $viewAppUrl, '1.1');
         $content = $http->read();
         $regex_pattern = "/<a class=\"blue-btn\" href=\"(.*?)\">View Details<\\/a>/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         //view detail app
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/class=\"customActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $body = array($match[1] . '.x' => 1044, $match[1] . '.y' => 73);
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $pos1 = strpos($content, 'woa/wo/');
         $pos2 = strpos($content, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
         //config prepare to upload page
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content = $http->read();
         //form url
         $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
         preg_match($regex_pattern, $content, $match);
         $url = 'https://itunesconnect.apple.com' . $match[1];
         $regex_pattern = "/class=\"saveChangesActionButton\" type=\"image\" name=\"(.*?)\"/";
         preg_match($regex_pattern, $content, $match);
         $buttonName = $match[1];
         $body = 'firstQuestionRadio=false&ipContentsQuestionRadio=false&booleanRadioButton=false&' . $buttonName . '.x=1120&' . $buttonName . '.y=695';
         //save
         $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
         $content = $http->read();
         $this->runRubyUploading($account, $password, $appName, $version);
     } else {
         $pos1 = strpos($content1, 'woa/wo/');
         $pos2 = strpos($content1, 'x-apple-application-instance');
         $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content1, $pos1 + 7, $pos2 - $pos1 - 9);
         $http->write(Zend_Http_Client::GET, $url, '1.1');
         $content1 = $http->read();
         $regex_pattern = "/<a href=\"(.*?)\">{$appName}<\\/a>/";
         preg_match($regex_pattern, $content1, $match);
         $viewAppUrl = 'https://itunesconnect.apple.com' . $match[1];
         //view app
         $http->write(Zend_Http_Client::GET, $viewAppUrl, '1.1');
         $content = $http->read();
         if (strpos($content, 'Waiting For Upload')) {
             //upload
             $this->runRubyUploading($account, $password, $appName, $version);
         } elseif (strpos($content, 'Add Version')) {
             $regex_pattern = "/<a class=\"blue-btn\" href=\"(.*?)\">Add Version<\\/a>/";
             preg_match($regex_pattern, $content, $match);
             $url = 'https://itunesconnect.apple.com' . $match[1];
             //add new version
             $http->write(Zend_Http_Client::GET, $url, '1.1');
             $content = $http->read();
             $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
             preg_match($regex_pattern, $content, $match);
             $url = 'https://itunesconnect.apple.com' . $match[1];
             $regex_pattern = "/type=\"text\" value=\"\" name=\"(.*?)\"/";
             preg_match($regex_pattern, $content, $match);
             $versionName = $match[1];
             $regex_pattern = "/<textarea(.*?)name=\"(.*?)\">/";
             preg_match($regex_pattern, $content, $match);
             $updateName = $match[1];
             $regex_pattern = "/class=\"saveChangesActionButton\" type=\"image\" name=\"(.*?)\"/";
             preg_match($regex_pattern, $content, $match);
             $button = $match[1];
             $body = array($versionName => $version, $updateName => 'Fixed some bugs', $button . '.x' => 1105, $button . '.y' => 394);
             //submit
             $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
             $content = $http->read();
             $pos1 = strpos($content, 'woa/wo/');
             $pos2 = strpos($content, 'x-apple-application-instance');
             $url = 'https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/' . substr($content, $pos1 + 7, $pos2 - $pos1 - 9);
             //config prepare to upload page
             $http->write(Zend_Http_Client::GET, $url, '1.1');
             $content = $http->read();
             //form url
             $regex_pattern = "/id=\"mainForm\" action=\"(.*?)\">/";
             preg_match($regex_pattern, $content, $match);
             $url = 'https://itunesconnect.apple.com' . $match[1];
             $regex_pattern = "/class=\"saveChangesActionButton\" type=\"image\" name=\"(.*?)\"/";
             preg_match($regex_pattern, $content, $match);
             $buttonName = $match[1];
             $body = 'firstQuestionRadio=false&ipContentsQuestionRadio=false&booleanRadioButton=false&' . $buttonName . '.x=1120&' . $buttonName . '.y=695';
             //save
             $http->write(Zend_Http_Client::POST, $url, '1.1', NULL, $body);
             $content = $http->read();
             $this->runRubyUploading($account, $password, $appName, $version);
         }
     }
     //view app
     $http->write(Zend_Http_Client::GET, $viewAppUrl, '1.1');
     $content = $http->read();
     if (strpos($content, 'Upload Received')) {
         return 1;
     } else {
         return 0;
     }
 }