0

Google チェックアウトの販売注文レポートを自動化しようとしているので (Android アプリの販売の 1 つを追跡するために)、単純な perl スクリプト (Mechanize を使用) を使用してこれを達成しようとしています。

以下は、私が従っている手順です。

  1. Google チェックアウトの注文受信トレイに接続する
  2. ターゲット URL へのアクセス: 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、ログイン後。このスクリプトを自動化している間に、これらのパラメーターと値を利用したいと思います。値を動的に渡します。当分の間、私はそれをハードコーディングしました。
  3. ヘッダーとともに認証トークンと SID トークンを渡す
  4. 応答を読み取り、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 = 'xxx@yyy.com';
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 呼び出しとクエリ文字列の受け渡しを介してこれを達成するための回避策が既に用意されているかどうか疑問に思っています。

ありがとうございます - ご連絡をお待ちしております。あなたの助けに感謝 !

4

2 に答える 2

1

Android アプリ内課金のマーチャント アカウントしかお持ちではなく、Google Checkout マーチャント アカウントをお持ちではないようです。

Order API (または他の Google Checkout API) を使用するには、アカウントが従来の Checkout Merchant アカウントでもある場合に取得できる Merchant Key が必要です。

以下の URL を使用して、Checkout Merchant アカウントにサインアップします。既存のマーチャント アカウントと同じ Google ログイン資格情報を使用してください。

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

于 2012-06-07T18:26:01.530 に答える
0

'financial-state' パラメーターを空のままにすることはできません。

有効な値を設定してください

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

または単に削除します。

于 2012-12-28T04:32:58.793 に答える