2012-06-07 51 views
0

因爲我試圖自動化谷歌結帳銷售訂單報告(爲了跟蹤我們的andriod應用程序銷售之一),我試圖通過一個簡單的perl腳本(使用機械化)實現這一點。谷歌結帳報告通過HTTP認證下載

下面是步驟我下面:我的谷歌Checkout訂單收件箱

  • 訪問目標URL連接

    1. https://checkout.google.com/cws/v2/AndroidMarket-1011/305286585299619/reportsForm?_type=order-list-request&column-style=&date-time-zone=America%2FLos_Angeles&end-date=2012-05-30&query-type=&start-date=2012-05-29,登錄後我想利用這些參數和值,而我正在自動執行這個腳本。我將動態傳遞這些值。就時間而言,我已經對它進行了硬編碼。
    2. 將auth和SID令牌與標頭一起傳遞
    3. 讀取響應並將其存儲在CSV文件中。

    注意:我的Google結帳帳戶沒有商家密鑰功能,因爲它是傳統帳戶。所以,我無法使用API​​下載報告。

    下面是我使用Perl腳本..


    #!/usr/bin/perl -w 
    use CGI; 
    use CGI::Carp; 
    use CGI qw'standard'; 
    use strict; 
    use LWP::UserAgent; 
    use WWW::Mechanize; 
    use HTTP::Cookies; 
    print "Content-type: text/html \n\n"; 
    my $url = 'https://www.google.com/accounts/ServiceLogin'; 
    my $username = '[email protected]'; 
    my $password = "123456"; 
    my $cookie_jar = HTTP::Cookies->new(file => 'cookies', autosave => 1, ignore_discard => 1); 
    my $mech = WWW::Mechanize->new(cookie_jar => $cookie_jar, autocheck => 0); 
    $mech->get($url); 
    $mech->form_id('gaia_loginform'); 
    $mech->field(Email => $username); 
    $mech->field(Passwd => $password); 
    $mech->submit(); 
    $cookie_jar->save; 
    # Go to the Google checkout orer inbox 
    $url = 'https://checkout.google.com/sell/orders'; 
    $mech->get($url); 
    print $mech->content(); 
    #Retain the cookie through out the page 
    $cookie_jar->load; 
    print "This request is valid."; 
    $mech->form_name('dateInput'); 
    $mech->field('start-date','2012-05-30'); 
    $mech->field('end-date','2012-06-01'); 
    $mech->field('date-time-zone','America/Los_Angeles'); 
    $mech->field('_type','order-list-request'); 
    $cookie_jar->load; 
    my $results = $mech->submit(); 
    my $response = $mech->res(); 
    my $filename = $response->filename; 
    if (! open (FOUT, ">$filename")) { 
        die("Could not create file: $!"); 
    } 
    print(FOUT $m->response->content()); 
    close(FOUT); 
    print $results->content(); 
    

    下面是結果..

    腳本說: 「HTTP錯誤400:錯誤的請求」。據我瞭解,我發送的URL格式不會產生我想要的輸出以及提示錯誤。

    只是想知道,是否有任何工作已經到位,通過HTTP調用和查詢字符串傳遞,像我在腳本中做的那樣,因爲沒有商家密鑰可用於我的帳戶。

    謝謝 - 期待收到您的來信。感謝你的幫助 !

  • 回答

    1

    看起來您只有Android應用內結算商家帳戶,但不是Google Checkout商家帳戶。

    爲了使用訂單API(或其他Google Checkout API),您需要有一個商家密鑰,如果您的帳戶也是經典的Checkout Merchant帳戶,您可以獲得該密鑰。

    使用以下網址註冊Checkout Merchant帳戶。確保使用同谷歌的登錄憑據您現有的商家帳戶:

    http://checkout.google.com/sell/signup

    0

    你不能離開「金融國家」參數爲空。

    設置有效的值

    $mech->field('financial-state', 'CHARGEABLE'); 
    

    或刪除它。