100 lines
3.6 KiB
Plaintext
100 lines
3.6 KiB
Plaintext
|
<?page
|
||
|
title=>Pay using PayPal
|
||
|
body<=
|
||
|
|
||
|
<?_code
|
||
|
|
||
|
my $ret;
|
||
|
|
||
|
my $user = LJ::canonical_username($FORM{'user'});
|
||
|
|
||
|
my $u = LJ::load_user($user);
|
||
|
|
||
|
unless ($u) {
|
||
|
return "<?h1 Error h1?><?p Unknown user p?>";
|
||
|
}
|
||
|
|
||
|
if ($FORM{'loggedin'}) {
|
||
|
my $remote = LJ::get_remote();
|
||
|
unless ($remote && $remote->{'user'} eq $user) {
|
||
|
return "<?h1 Error h1?><?p Invalid login? No longer logged in? p?>";
|
||
|
}
|
||
|
} else {
|
||
|
unless (LJ::auth_okay($u, $FORM{'password'}, $FORM{'hpassword'})) {
|
||
|
return "<?h1 Invalid password h1?><?p The password you entered is not correct. p?>";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
my $giftfor = LJ::canonical_username($FORM{'giftfor'});
|
||
|
|
||
|
if ($FORM{'giftfor'} && ! $giftfor) {
|
||
|
return "<?h1 Error h1?><?p The username you entered for the gift recipient doesn't look like a username. p?>";
|
||
|
}
|
||
|
|
||
|
# can't buy a gift for yourself.
|
||
|
undef $giftfor if ($giftfor eq $user);
|
||
|
|
||
|
if ($giftfor) {
|
||
|
my $gu = LJ::load_user($giftfor);
|
||
|
unless ($gu) {
|
||
|
return "<?h1 Error h1?><?p The gift recipient's username doesn't seem to exist. p?>";
|
||
|
}
|
||
|
if ($gu->{'caps'} & 16) {
|
||
|
return "<?h1 Error h1?><?p User <?ljuser $gu->{'user'} ljuser?> has a permanent account. You can't buy them a gift payment. p?>";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
my $months = $FORM{'months'};
|
||
|
my $amount;
|
||
|
if (defined $LJ::Pay::account{$months}) {
|
||
|
$amount = $LJ::Pay::account{$months}->{'amount'};
|
||
|
}
|
||
|
|
||
|
unless ($amount) {
|
||
|
return "<?h1 Error h1?><?p You did not select the number of months you want to pay for. p?>";
|
||
|
}
|
||
|
|
||
|
my $forkey = $giftfor ? "&for=$giftfor" : "";
|
||
|
my $forwho = $giftfor ? ", for $giftfor" : "";
|
||
|
my $anonkey = $FORM{'anon'} ? "&anon=1" : "";
|
||
|
my $datekey;
|
||
|
if ($FORM{'giveafter'}) {
|
||
|
return "<?h1 $ML{'Error'} h1?><?p $ML{'.delivery.badformat'} p?>"
|
||
|
unless ($FORM{'giveafter'} =~ /^(\d\d\d\d)\-(\d\d)\-(\d\d)(?: (\d\d):(\d\d))?/);
|
||
|
|
||
|
my $dtime = 0;
|
||
|
eval { $dtime = Time::Local::timegm(0, $5, $4, $3, $2-1, $1); };
|
||
|
return "<?h1 $ML{'Error'} h1?><?p $ML{'.delivery.badformat'} p?>" if @$;
|
||
|
|
||
|
my $delay = $dtime - time();
|
||
|
return "<?h1 $ML{'Error'} h1?><?p $ML{'.delivery.past'} p?>" if $delay < 0;
|
||
|
return "<?h1 $ML{'Error'} h1?><?p $ML{'.delivery.toofuture'} p?>"
|
||
|
if $delay > 60*60*24*31;
|
||
|
|
||
|
$datekey = "&giveafter=$dtime";
|
||
|
}
|
||
|
|
||
|
$ret .= "All your LiveJournal data has been validated. To continue the purchase, click the PayPal icon below to go to PayPal's secure server and pay. PayPal then sends us a notification of the payment and your account will be automatically setup.";
|
||
|
$ret .= "<center>";
|
||
|
$ret .= "<form method=\"post\" action=\"https://www.paypal.com/cgi-bin/webscr\">\n";
|
||
|
$ret .= "<input type=hidden name=cmd value=_xclick>\n";
|
||
|
$ret .= "<input type=hidden name=business value=\"paypal\@livejournal.com\">\n";
|
||
|
$ret .= "<input type=hidden name=item_name value=\"$months months paid account ($user$forwho)\">\n";
|
||
|
$ret .= "<input type=hidden name=custom value=\"months=$months&user=$user$forkey$anonkey$datekey\">\n";
|
||
|
$ret .= "<input type=hidden name=amount value=\"$amount\">\n";
|
||
|
$ret .= "<input type=hidden name='no_shipping' value='1'>\n";
|
||
|
$ret .= "<input type=hidden name='no_note' value='1'>\n";
|
||
|
$ret .= "<input type=hidden name=return value=\"http://www.livejournal.com/paidaccounts/thankyou.bml\">\n";
|
||
|
$ret .= "<input type=hidden name=notify_url value=\"http://www.livejournal.com/paidaccounts/pp_notify.bml\">\n";
|
||
|
$ret .= "<input type=hidden name=cmd value=_xclick>\n";
|
||
|
$ret .= "<input type=image src=\"http://images.paypal.com/images/x-click-but3.gif\" value=\"Buy...\">\n";
|
||
|
$ret .= "</form>\n";
|
||
|
$ret .= "</center>";
|
||
|
|
||
|
return $ret;
|
||
|
_code?>
|
||
|
<=body
|
||
|
page?>
|
||
|
|