Witajcie,
właśnie ustawiam PayPal pod ZNOTE.
Ustawiłem cenę próbną 1zł za 30 pkt.:
A mój plik buypoints.php wygląda tak:
Edytowałem kod, aby pkt dochodziły do accounts > premium_points
Kupilem pkt za 1zl, ale pkt nie odtrzymałem.
Co źle?
właśnie ustawiam PayPal pod ZNOTE.
Ustawiłem cenę próbną 1zł za 30 pkt.:
PHP:
// Write your paypal address here, and what currency you want to recieve money in.
$config['paypal'] = array(
'enabled' => true,
'email' => '[email protected]', // Example: [email protected]
'currency' => 'PLN',
'points_per_currency' => 2.50, // 1 currency = ? points? [ONLY used to calculate bonuses]
'success' => "http://".$_SERVER['HTTP_HOST']."/success.php",
'failed' => "http://".$_SERVER['HTTP_HOST']."/failed.php",
'ipn' => "http://".$_SERVER['HTTP_HOST']."/ipn.php",
'showBonus' => true,
);
// Configure the "buy now" buttons prices, first write price, then how many points you get.
// Giving some bonus points for higher donations will tempt users to donate more.
$config['paypal_prices'] = array(
// price => points,
1 => 30, // 0% bonus
20 => 60, // -10% bonus
30 => 90, // -10% bonus
40 => 120, // -10% bonus
50 => 150, // -10% bonus
);
A mój plik buypoints.php wygląda tak:
PHP:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';
// Import from config:
$pagseguro = $config['pagseguro'];
$paypal = $config['paypal'];
$prices = $config['paypal_prices'];
#################### CONFIG ####################
$config['server']['serverName'] = 'SERVER NAME';
#aktywacja homepay, wartosci: true / false
# activate homepay, values: true / false
$config['homepay'] = array();
$config['homepay_active'] = true;
$config['homepay_active_sms'] = true; #active homepay sms system?
$config['homepay_active_transfer'] = true; #active homepay transfer system?
# przykladowy konfig dla SMS
# Example configuration for SMS
$config['homepay'][9]['acc_id'] = 12312;
$config['homepay'][9]['addpoints'] = 200;
$config['homepay'][9]['sms_number'] = "NUMER";
$config['homepay'][9]['type'] = "sms";
$config['homepay'][9]['sms_text'] = "TEXT";
$config['homepay'][9]['sms_cost'] = "COST";
$config['homepay'][10]['acc_id'] = 12312;
$config['homepay'][10]['addpoints'] = 500;
$config['homepay'][10]['sms_number'] = "NUMER";
$config['homepay'][10]['type'] = "sms";
$config['homepay'][10]['sms_text'] = "TEXT";
$config['homepay'][10]['sms_cost'] = "w chuj";
# przykladowy konfig dla przelewu
# Sample configuration for transfer
$config['homepay'][1]['acc_id']=12298;
$config['homepay'][1]['addpoints']=250;
$config['homepay'][1]['link']="https://homepay.pl/wplata/12298-250";
$config['homepay'][1]['type']="przelew";
$config['homepay'][1]['przelew_text']="250";
$config['homepay'][1]['przelew_cost']="2,50 zl brutto";
$config['homepay'][2]['acc_id']=12299;
$config['homepay'][2]['addpoints']=600;
$config['homepay'][2]['link']="https://homepay.pl/wplata/12299-500";
$config['homepay'][2]['type']="przelew";
$config['homepay'][2]['przelew_text']="500";
$config['homepay'][2]['przelew_cost']="5,00 zl brutto";
$config['homepay'][3]['acc_id']=12300;
$config['homepay'][3]['addpoints']=1500;
$config['homepay'][3]['link']="https://homepay.pl/wplata/12300-1500";
$config['homepay'][3]['type']="przelew";
$config['homepay'][3]['przelew_text']="1500";
$config['homepay'][3]['przelew_cost']="11,00 zl brutto";
$config['homepay'][4]['acc_id']=12301;
$config['homepay'][4]['addpoints']=3000;
$config['homepay'][4]['link']="https://homepay.pl/wplata/12301-3000";
$config['homepay'][4]['type']="przelew";
$config['homepay'][4]['przelew_text']="3000";
$config['homepay'][4]['przelew_cost']="19,00 zl brutto";
$config['homepay'][5]['acc_id']=12302;
$config['homepay'][5]['addpoints']=4500;
$config['homepay'][5]['link']="https://homepay.pl/wplata/12302-4500";
$config['homepay'][5]['type']="przelew";
$config['homepay'][5]['przelew_text']="4500";
$config['homepay'][5]['przelew_cost']="29,00 zl brutto";
#################################################################################
# aktywacja uslugi daopay
# Enable daopay service
$config['daopay'] = array();
$config['daopay_active'] = false; #true/false
# przyklad configu dla daopay
# Example config for daopay
$config['daopay'][21]['appcode'] = 12345; #
$config['daopay'][21]['prodcode'] = 'NAZWAUSLUGI'; #
$config['daopay'][21]['addpoints'] = '100'; #
$config['daopay'][21]['cost'] = "1 euro inc. VAT"; #
#################################################################################
// This function add shop points to the znote_accounts table
function add_points($account_name, $points) {
$account_name = sanitize($account_name);
$points = (int)$points;
$accid = user_character_account_id($account_name);
$account = mysql_select_single("SELECT `premium_points` FROM `accounts` WHERE `account_id`='$accid'");
if ($account !== false) {
$tmp = $account['premium_points'];
$tmp += $points;
mysql_update("UPDATE `accounts` SET `premium_points`='$tmp' WHERE `account_id`='$accid'");
return true;
} else return false;
}
// This file dumps transactions to the homepay.log flatfile
function save_trans($account_name, $code) {
$file = fopen('homepay.log', "a");
fwrite($file, $code.'='.$account_name.' ['.date("m.d.y g:i").']');
fclose($file);
}
// sms validation
// Does some local code string validation, returns 0 if validation fails, proceeds if validation succeed.
// Sends a request to homepay to validate the code string
// Returns the result
function check_code_homepay($code,$type) {
global $config;
if (!preg_match("/^[A-Za-z0-9]{8}$/",$code)) return 0;
$code=urlencode($code);
$handle=fopen("http://homepay.pl/sms/check_code.php?acc_id=".(int)($config['homepay'][$type]['acc_id'])."&code=".$code,'r');
$status=fgets($handle,8);
fclose($handle);
return $status;
}
// Some other API validation?
// Same as above function, but through another API
function check_tcode_homepay($code,$type) {
global $config;
if (!preg_match("/^[A-Za-z0-9]{8}$/",$code)) return 0;
$code=urlencode($code);
$handle=fopen("http://homepay.pl/API/check_tcode.php?acc_id=".(int)($config['homepay'][$type]['acc_id'])."&code=".$code,'r');
$status=fgets($handle,8);
fclose($handle);
return $status;
}
?>
<!-- Default homepay styling -->
<style>
.alert{
border: 2px solid;
font-size: 12px;
margin: 10px 0;
padding: 7px;
}
.alert-error{
border-color: red;
color: red;
}
.alert-notice{
border-color: orange;
color: orange;
}
.alert-success{
border-color: green;
color: green;
}
</style>
<div class="alert alert-notice">
<strong>UWAGA!</strong> Prosimy zapoznac sie z regulaminem swiadczonych uslug zamieszczonym na dole tej strony.
</div>
<?php
// Request submit
if (isset($_POST['submit'])) {
$sms_type = (int) $_POST['sms_type'];
$posted_code = trim($_POST['code']);
$to_user = trim($_POST['to_user']);
$errors = array();
if (!empty($to_user) && !empty($posted_code)) {
$account_name = $to_user;
if (count($errors) == 0) {
if ($config['homepay'][$sms_type]['type']=="sms") {
//////// zeby nie zuzywalo kodu gdy wpiszemy zly kod/////////////
if (user_character_exist($account_name)) {
$code_info = check_code_homepay($posted_code,$sms_type);
} else {
$code_info = 99;
}
//////// zeby nie zuzywalo kodu gdy wpiszemy zly kod/////////////
} else /*przelewy*/ {
if (user_character_exist($account_name)) {
$code_info = check_tcode_homepay($posted_code,$sms_type);
} else {
$code_info = 99;
}
}
// Status responses?
switch ($code_info) {
// Success?
case '1':
if (add_points($account_name, $config['homepay'][$sms_type]['addpoints'])) {
echo '<div class="alert alert-success"><strong>SUKCES!</strong> Dodano '.$config['homepay'][$sms_type]['addpoints'].' punktow premium do konta z postacią: '.$to_user.'!</div>';
save_trans($account_name,$posted_code);
} else {
echo '<div class="alert alert-error"><strong>ERROR!</strong> Wystapil blad podczas dodawania punktow do konta.</div>';
}
break;
// Error from homepay?
case '0':
echo '<div class="alert alert-error"><strong>ERROR!</strong> Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu!</div>';
break;
// Error by own validation?
case '99':
echo '<div class="alert alert-error"><strong>ERROR!</strong> Konto z podaną postacią nie istnieje!</div>';
break;
// Some other error from homepay?
default:
echo '<div class="alert alert-error"><strong>ERROR!</strong> Unsupported code_info: '. $code_info .'</div>';
break;
}
} else {
data_dump(false, $errors, "Error:");
}
} else {
echo '<div class="alert alert-error"><strong>ERROR!</strong> Wypełnij wszystkie pola!</div>';
}
}
// If homepay SMS service is activated
if ($config['homepay_active_sms']):
foreach ($config['homepay'] as $sms):
if ($sms['type'] == 'sms'):
?>Wyslij SMS na numer <b><?php echo $sms['sms_number']; ?></b> o tresci <b><?php echo $sms['sms_text']; ?></b> za <font color="green"><b><?php echo $sms['sms_cost']; ?></b></font>, a za kod dostaniesz <font color="green"><b><?php echo $sms['addpoints']; ?></b></font> punktow premium.<br/><?php
endif;
endforeach;
?><br /><?php
endif;
// If homepay transfer service is activated?
if ($config['homepay_active_transfer']):
?>
<table class="table table-bordered">
<tr>
<td>
<h2 align="center">Przelew</h2>
Prosimy zapoznac sie z regulaminem swiadczonych uslug zamieszczonym na dole tej strony.
<br/>
<br/>
<?php
foreach ($config['homepay'] as $przelew):
if ($przelew['type'] == 'przelew'):
?>
<b>* Adres - <a href="<?php echo $przelew['link']; ?>"><font color="green"><?php echo $przelew['link']; ?></font></a> - koszt <font color="green"><b><?php echo $przelew['przelew_cost']; ?></b></font>, a za kod dostaniesz <font color="green"><b><?php echo $przelew['addpoints']; ?></b></font> punktow premium.</b><br/>
<?php
endif;
endforeach;
?>
</td>
</tr>
</table>
<br />
<?php
endif;
?>
<!-- Homepay submit form -->
<form method="post" action="" id="enter_code">
<table>
<tr>
<td><b>Nick postaci: </b></td>
<td>
<input type="text" size="20" value="" name="to_user" />
</td>
</tr>
<tr>
<td><b>Kod z SMSa/Przelewu: </b></td>
<td>
<input type="text" id="code" size="20" value="" name="code" />
</td>
</tr>
<tr>
<td><b>Typ wyslanego SMSa/Przelewu: </b></td>
<td>
<select name="sms_type">
<?php
foreach ($config['homepay'] as $id => $sms) {
// SMS input form
if ($sms['type'] == 'sms'):
?>
<option value="<?php echo $id; ?>">numer <?php echo $sms['sms_number'].' - kod '.$sms['sms_text'].' - SMS za '.$sms['sms_cost']; ?></option>
<?php
endif;
}
foreach ($config['homepay'] as $id2 => $przelew) {
// transfer input form?
if ($przelew['type'] == 'przelew'):
?>
<option value="<?php echo $id2; ?>">przelew - kod <?php echo $przelew['przelew_text'].' - za '.$przelew['przelew_cost']; ?></option>
<?php
endif;
}
?>
</select>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" name="submit" value="Sprawdz" />
</td>
</tr>
</table>
</form>
<br />
<table>
<tr>
<td>
<center><img border="0" src="http://homepay.pl/public/images/logo.png"></center>
<br />
<hr>
Serwis SMS obslugiwany przez <a href="http://www.homepay.pl" target="_blank">Homepay.pl</a>
<br />Regulamin: <a href="http://homepay.pl/regulamin/regulamin_sms_premium/" target="_blank">http://homepay.pl/regulamin/regulamin_sms_premium/</a>
<br />Usluga dostepna w sieciach: Era, Orange, Play, Plus GSM.
<br/>
<hr>
<b>Regulamin uslug dostepnych na stronie:</b>
<br/><b>1.a)</b> Kiedy Twój poprawnie wyslany SMS zostanie dostarczony otrzymasz SMS zwrotny z kodem.
<br/><b>1.b)</b> Kiedy Twój przelew zostanie zaksiegowany (z kart kredytowych i bankow internetowych z listy, jest to kwestia paru sekund) na e-mail który podales w formularzu otrzymasz kod.
<br/><b>2.</b> Po otrzymaniu kodu SMS/przelewu i wpisaniu go wraz z nazwa konta w powyzszym formularzu, na serwerze Dexteria RPG podane konto zostanie automatycznie doladowane o okreslona ilosc <b>punktów premium</b> które nastepnie moga byc zamienione na wirtualne przedmioty w grze Open Tibia Serwer zwana <b>Naruto History</b>.
<br/><b>3.</b> Do pelnego skozystania z uslugi wymagana jest przegladarka internetowa oraz polaczenie z siecia Internet.
<br/><b>4.</b> <b>Naruto History</b> nie odpowiada za zle wpisane tresci SMS.
<br/><b>5.</b> W razie problemów z dzialaniem uslugi nalezy kontaktowac sie z <a href="mailto:EMAIL">EMAIL</a>
</td>
</tr>
</table>
<h1>Buy Points</h1>
<h2>Buy points using Paypal:</h2>
<table id="buypointsTable" class="table table-striped table-hover">
<tr class="yellow">
<th>Price:</th>
<th>Points:</th>
<?php if ($paypal['showBonus']) { ?>
<th>Bonus:</th>
<?php } ?>
<th>Action:</th>
</tr>
<?php
foreach ($prices as $price => $points) {
echo '<tr class="special">';
echo '<td>'. $price .'('. $paypal['currency'] .')</td>';
echo '<td>'. $points .'</td>';
if ($paypal['showBonus']) echo '<td>'. calculate_discount(($paypal['points_per_currency'] * $price), $points) .' bonus</td>';
?>
<td>
<form action="https://www.paypal.com/cgi-bin/webscr" method="POST">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="<?php echo $paypal['[email protected]']; ?>">
<input type="hidden" name="item_name" value="<?php echo $points .' shop points on '. $config['site_title']; ?>">
<input type="hidden" name="item_number" value="1">
<input type="hidden" name="amount" value="<?php echo $price; ?>">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="<?php echo $paypal['currency']; ?>">
<input type="hidden" name="lc" value="GB">
<input type="hidden" name="bn" value="PP-BuyNowBF">
<input type="hidden" name="return" value="<?php echo $paypal['success']; ?>">
<input type="hidden" name="cancel_return" value="<?php echo $paypal['failed']; ?>">
<input type="hidden" name="rm" value="2">
<input type="hidden" name="notify_url" value="<?php echo $paypal['ipn']; ?>" />
<input type="hidden" name="custom" value="<?php echo (int)$session_user_id; ?>">
<input type="submit" value=" PURCHASE ">
</form>
</td>
<?php
echo '</tr>';
}
?>
</table>
<?php
if ($config['pagseguro']['enabled'] == true) {
?>
<h2>Buy points using Pagseguro:</h2>
<form target="pagseguro" action="https://<?=$pagseguro['urls']['www']?>/checkout/checkout.jhtml" method="post">
<input type="hidden" name="email_cobranca" value="<?=$pagseguro['email']?>">
<input type="hidden" name="tipo" value="CP">
<input type="hidden" name="moeda" value="<?=$pagseguro['currency']?>">
<input type="hidden" name="ref_transacao" value="<?php echo (int)$session_user_id; ?>">
<input type="hidden" name="item_id_1" value="1">
<input type="hidden" name="item_descr_1" value="<?=$pagseguro['product_name']?>">
<input type="number" name="item_quant_1" min="1" step="4" value="1">
<input type="hidden" name="item_peso_1" value="0">
<input type="hidden" name="item_valor_1" value="<?=$pagseguro['price']?>">
<input type="submit" value=" PURCHASE ">
</form>
<br>
<?php } ?>
<?php
if ($config['paygol']['enabled'] == true) {
?>
<!-- PayGol Form using Post method -->
<h2>Buy points using Paygol:</h2>
<?php $paygol = $config['paygol']; ?>
<p><?php echo $paygol['price'] ." ". $paygol['currency'] ."~ for ". $paygol['points'] ." points:"; ?></p>
<form name="pg_frm" method="post" action="http://www.paygol.com/micropayment/paynow" >
<input type="hidden" name="pg_serviceid" value="<?php echo $paygol['serviceID']; ?>">
<input type="hidden" name="pg_currency" value="<?php echo $paygol['currency']; ?>">
<input type="hidden" name="pg_name" value="<?php echo $paygol['name']; ?>">
<input type="hidden" name="pg_custom" value="<?php echo $session_user_id; ?>">
<input type="hidden" name="pg_price" value="<?php echo $paygol['price']; ?>">
<input type="hidden" name="pg_return_url" value="<?php echo $paygol['returnURL']; ?>">
<input type="hidden" name="pg_cancel_url" value="<?php echo $paygol['cancelURL']; ?>">
<input type="image" name="pg_button" src="http://www.paygol.com/micropayment/img/buttons/150/black_en_pbm.png" border="0" alt="Make payments with PayGol: the easiest way!" title="Make payments with PayGol: the easiest way!">
</form>
<?php }
if (!$config['paypal']['enabled'] && !$config['paygol']['enabled'] && !$config['pagseguro']['enabled']) echo '<h1>Buy Points system disabled.</h1><p>Sorry, this functionality is disabled.</p>';
include 'layout/overall/footer.php'; ?>
Edytowałem kod, aby pkt dochodziły do accounts > premium_points
Kupilem pkt za 1zl, ale pkt nie odtrzymałem.
Co źle?