当我尝试自动google checkout销售订单报告时(为了跟踪我们的andriod应用程序销售之一),我试图通过一个简单的perl脚本(使用Mechanize)来实现这一点。
以下是我要遵循的步骤:
注意:我的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调用和查询字符串传递来实现这一点,就像我在脚本中所做的那样,因为我的帐户没有可用的商家密钥。
谢谢 - 期待收到您的来信。感谢您的帮助!
答案 0 :(得分:1)
您似乎只拥有Android应用内结算商家帐户,但不是Google Checkout商家帐户。
要使用订单API(或其他Google Checkout API),您需要拥有商家密钥,如果您的帐户也是经典的Checkout商家帐户,则可以获得该商家密钥。
使用以下网址注册Checkout商家帐户。请务必使用与现有商家帐户相同的Google登录凭据:
答案 1 :(得分:0)
您不能将“财务状态”参数留空。
设置有效值
$mech->field('financial-state', 'CHARGEABLE');
或者只是删除它。