0

我必须使用 perl 脚本与 iOS 上的 App Purchase 中的 verifReceipt 交互。我也用 phoneGap 1.5.0

1/ 当我尝试使用外部 url 时它不起作用。2/ 我尝试在 phonegap html 页面和 iTunes 之间使用 perl 脚本接口。我不明白如何发送数据。我试试这个:

$val contains JSON object with receiptvalue and password, receiving from phonegap.

my %transformfields = (
            "receipt-data"       => $val,
            );

my $ua = LWP::UserAgent->new;

my $req = POST($urlsend,
    Content_Type => 'application/json ; charset=UTF-8',
    Content => \%transformfields,
    #Content => $val,
    );



my $res = $ua->request($req);

我总是出现这个错误:21002 java.lang.NullPointerException 我不明白这怎么可能用 perl 脚本发送数据。

4

1 回答 1

0

我在 json 编码和理解我如何从 phonegap 插件接收数据方面遇到问题。

寻求帮助:Phongap 插件在 Base64 中返回 transactionReceipt。也不要在 Base64 中编码密码。

my %transformfields = ("receipt-data" => $val , "password" => $sharedsecretpass ) ;
my $jsonval = encode_json (\%transformfields);

print "Content-Type: text/html \n\n";

#my $urlsend="https://buy.itunes.apple.com/verifyReceipt" ;
my $urlsend="https://sandbox.itunes.apple.com/verifyReceipt" ;

my $req = POST($urlsend,
    Content_Type => 'application/x-www-form-urlencoded ; charset=utf-8',
    Content => $jsonval,
    );

my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);

if ($res->is_success)
{
    #print "cgi Content : " . $res->content . "<br />\n";
    my $retour = decode_json( $res->content );
    if ($retour->{'status'} eq "0")
    {
            print "--OK--<br />\n";
            print $retour->{receipt}->{product_id} . "<br />";
            print $retour->{receipt}->{transaction_id} . "<br />";
            print $retour->{receipt}->{purchase_date} . "<br />";
            print $retour->{receipt}->{expires_date} . "<br />";

            #$res->content
    }
于 2012-10-02T14:43:59.100 回答