0

iOS の App Purchase で verifReceipt に接続するには、perl スクリプトを使用する必要があります。私も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 に答える