I would like to present new online payment system for polish users.
Below this text you can see two scripts named buypoints.php, first includes homepay online payment system and the other one includes both homepay and daopay systems.
Script first - homepay version
Create a file
buypoints.php
<?PHP
$config['homepay'] = array();
$config['homepay_active'] = true;
$config['homepay_active_sms'] = true;
$config['homepay_active_transfer'] = true;
$config['homepay'][2]['acc_id']=2;
$config['homepay'][2]['addpoints']=10;
$config['homepay'][2]['sms_number']="79550";
$config['homepay'][2]['type']="sms";
$config['homepay'][2]['sms_text']="HPAY.NASZAUSLUGA";
$config['homepay'][2]['sms_cost']="10.98 zl brutto";
$config['homepay'][1]['acc_id']=1;
$config['homepay'][1]['addpoints']=10;
$config['homepay'][1]['link']="https://ssl.homepay.pl/wplata/1-NASZAUSLUGA";
$config['homepay'][1]['type']="przelew";
$config['homepay'][1]['przelew_text']="NASZAUSLUGA";
$config['homepay'][1]['przelew_cost']="10.00 zl brutto";
$config['daopay'] = array();
$config['daopay_active'] = true;
$config['daopay'][21]['appcode'] = 12345;
$config['daopay'][21]['prodcode'] = 'NAZWAUSLUGI';
$config['daopay'][21]['addpoints'] = '100';
$config['daopay'][21]['cost'] = "1 euro inc. VAT";
function save_trans($file, $acc, $code)
{
$hak = fopen($file, "a");
fwrite($hak, $code.'='.$acc.'
');
fclose($hak);
}
function check_code_homepay($code,$usluga)
{
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'][$usluga]['acc_id'])."&code=".$code,'r');
$status=fgets($handle,8);
fclose($handle);
return $status;
}
function check_tcode_homepay($code,$usluga)
{
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'][$usluga]['acc_id'])."&code=".$code,'r');
$status=fgets($handle,8);
fclose($handle);
return $status;
}
function add_points(OTS_Account $account, $number_of_points)
{
if($account->isLoaded())
{
$account->setCustomField('premium_points', ($account->getCustomField('premium_points')+$number_of_points));
return true;
}
else
return false;
}
if ($_REQUEST['system'] == 'homepay' && $config['homepay_active'])
{
$sms_type = (int) $_POST['sms_type'];
$posted_code = trim($_POST['code']);
$to_user = trim($_POST['to_user']);
$verify_code = trim($_POST['verify_code']);
if(!empty($to_user))
{
if(is_numeric($to_user))
{
$account = new OTS_Account();
$account->find($to_user);
}
else
{
$player = new OTS_Player();
$player->find($to_user);
if($player->isLoaded())
$account = $player->getAccount();
else
$account = new OTS_Account();
}
if(empty($posted_code))
$errors[] = 'Prosze wpisac kod z SMSa/przelewu.';
if(!$account->isLoaded())
$errors[] = 'Konto/konto postaci o podanym nicku nie istnieje.';
if(count($errors) == 0)
{
if(count($errors) == 0)
{
if($config['homepay'][$sms_type]['type']=="sms")
$code_info = check_code_homepay($posted_code,$sms_type);
else
$code_info = check_tcode_homepay($posted_code,$sms_type);
if($code_info != "1")
$errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
else
{
if(add_points($account, $config['homepay'][$sms_type]['addpoints']))
{
save_trans('trans/homepay.log', $account->getId(), $posted_code);
$main_content .= '<h1><font color="red">Dodano '.$config['homepay'][$sms_type]['addpoints'].' punktow premium do konta: '.$to_user.' !</font></h1>';
}
else
$errors[] = 'Wystapil blad podczas dodawania punktow do konta, sproboj ponownie.';
}
}
}
}
if(count($errors) > 0)
{
$main_content .= 'Wystapily bledy:';
foreach($errors as $error)
$main_content .= '<br />* '.$error;
$main_content .= '<hr /><hr />';
}
if($config['homepay_active_sms'])
{
$main_content .= '<table><tr><td><h2 align="center">SMS</h2>Prosimy zapoznać się z regulaminem świadczonych usług zamieszczonym na dole tej strony.<br/><br/>';
foreach($config['homepay'] as $typ)
if($typ['type'] == 'sms')
$main_content .= '<b>* Na numer <font color="green">'.$typ['sms_number'].'</font> o tresci <font color="green"><b>'.$typ['sms_text'].'</b></font> za <font color="green"><b>'.$typ['sms_cost'].'</b></font>, a za kod dostaniesz <font color="green"><b>'.$typ['addpoints'].'</b></font> punktow premium.</b><br/>';
$main_content .= '</td></tr></table><br />';
}
if($config['homepay_active_transfer'])
{
$main_content .= '<table><tr><td><h2 align="center">Przelew</h2>Prosimy zapoznać się z regulaminem świadczonych usług zamieszczonym na dole tej strony.<br/><br/>';
foreach($config['homepay'] as $typ)
if($typ['type'] == 'przelew')
$main_content .= '<b>* Adres - <a href="'.$typ['link'].'"><font color="green">'.$typ['link'].'</font></a> - koszt <font color="green"><b>'.$typ['przelew_cost'].'</b></font>, a za kod dostaniesz <font color="green"><b>'.$typ['addpoints'].'</b></font> punktow premium.</b><br/>';
$main_content .= '</td></tr></table><br />
';
}
$main_content .= '<table><tr><td><form action="?subtopic=buypoints&system=homepay" method="POST"><table>';
$main_content .= '<tr><td><b>Nick postaci lub numer konta: </b></td><td><input type="text" size="20" value="'.$to_user.'" name="to_user" /></td></tr>
<tr><td><b>Kod z SMSa: </b></td><td><input type="text" size="20" value="'.$posted_code.'" name="code" /></td></tr><tr><td><b>Typ wyslanego SMSa: </b></td><td><select name="sms_type">';
foreach($config['homepay'] as $id => $typ)
if($typ['type'] == 'sms')
$main_content .= '<option value="'.$id.'">numer '.$typ['sms_number'].' - kod '.$typ['sms_text'].' - SMS za '.$typ['sms_cost'].'</option>';
elseif($typ['type'] == 'przelew')
$main_content .= '<option value="'.$id.'">przelew - kod '.$typ['przelew_text'].' - za '.$typ['przelew_cost'].'</option>';
$main_content .= '</select></td></tr>';
$main_content .= '<tr><td></td><td><input type="submit" value="Sprawdz" /></td></tr></table></form>
<h2 align="center"><font color="green">Po zakupie itemków proszę przelogować postać, aby zapobiec utracie rzeczy.</font></h2></td></tr></table><br />
<table><tr><td>
<center><img border="0" src="http://homepay.pl/theme/default/image/logo/homepay_logo26.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 usług dostępnych na stronie:</b>
<br/>
<b>1.a)</b> Kiedy Twój poprawnie wysłany SMS zostanie dostarczony otrzymasz SMS zwrotny z kodem.
<br/>
<b>1.b)</b> Kiedy Twój przelew zostanie zaksięgowany (z kart kredytowych i bankow internetowych z listy, jest to kwestia paru sekund) na e-mail który podałeś w formularzu otrzymasz kod.
<br/>
<b>2.</b> Po otrzymaniu kodu SMS/przelewu i wpisaniu go wraz z nazwą konta w powyższym formularzu, na serwerze '.$config['server']['serverName'].' podane konto zostanie automatycznie doładowane o okresloną ilość <b>punktów premium</b> które nastepnie moga byc zamienione na wirtualne przedmioty w grze Open Tibia Serwer zwaną <b>'.$config['server']['serverName'].'</b>.
<br/>
<b>3.</b> Do pełnego skozystania z usługi wymagana jest przeglądarka internetowa oraz połączenie z siecią Internet.
<br/>
<b>4.</b> <b>'.$config['server']['serverName'].'</b> nie odpowiada za źle wpisane tresci SMS.
<br/>
<b>5.</b> W razie problemów z działaniem usługi należy kontaktować się z <a href="mailto:[email protected]">[email protected]</a>
</td></tr></table>
';
}
else
{
if($config['homepay_active'])
$main_content .= '<br /><br /><a href="?subtopic=buypoints&system=homepay"><h2>Homepay - LINK</h2><img border="0" src="http://homepay.pl/theme/default/image/logo/homepay_logo26.png"></a><h3>Zaplac SMS lub przelewem bankowym.</h3>';
}
?>
Next, add to index.php the following
case "buypoints";
$subtopic = "buypoints";
$topic = "Buy Points";
include("buypoints.php");
break;
To use homepay system you have to register on the website and choose if you are a private person or a company. Link to registration . After filling required fields you will receive an e-mail with link needed to activate your account. Now you are allowed to use Homepay. Login and choose interesting services:
ENG: 1. TRANSFERS, enter Accounts, click add new account fill up required fields. service type we will use this time is service CODE send to e-mail. Name your service, choose cost and URL of your internet service which will use the service. Click add account and right after Homepay worker accepts our service we are able to use it.
PL: 1. TRANSFERY, wchodzimy w Konta, klikamy dodaj nowe konto i wypełniamy wymagane dane. Typ usługi którego będziemy używać, to w tym przypadku usługa KOD wysyłany na e-mail. Podajemy nazwę usługi, jej kwotę oraz URL naszej strony internetowej która obsługiwać będzie powyższą usługę. Klikamy dodaj konto i zaraz po aktywacji konta przez pracownika Homepay możemy korzystać z danej usługi.
Instalacja usługi TRANSFERY:
Aby móc skorzystać z tej usługi oprócz utworzenia konta będzie potrzeba zaimplementowania go w skrypcie buypoints.php. Wypełniamy następujące pola:
acc_id - czyli ID usługi, które znajdziemy w panelu partnera na stronie internetowej Homepay - Twoje mikropłatności i płatności internetowe przy nazwie usługi którą właśnie stworzyliśmy np. 1
addpoints - liczba punktów które otrzyma gracz po użyciu kodu.
link - jest to link do usługi w postaci https://ssl.homepay.pl/wplata/acc_id-nazwa_uslugi np. https://ssl.homepay.pl/wplata/1-NASZAUSLUGA
type - typ usługi, w tym wypadku to "przelew"
przelew_text - jest to nazwa usługi z panelu partnera zaraz przy ID np. NASZAUSLUGA
przelew_cost - informacja dla klienta chcącego wykupić punkty o cenie usługi np. 10.00 zl brutto
So our config for transfers should look like this/A więc nasza konfiguracja dla przelewu w pliku powinna wyglądać
$config['homepay'][1]['acc_id']=1;
$config['homepay'][1]['addpoints']=10;
$config['homepay'][1]['link']="https://ssl.homepay.pl/wplata/1-NASZAUSLUGA";
$config['homepay'][1]['type']="przelew";
$config['homepay'][1]['przelew_text']="NASZAUSLUGA";
$config['homepay'][1]['przelew_cost']="10.00 zl brutto";
ENG: 2. SMS, enter Accounts, click add new account fill up required fields. service type we will use this time is service CODE send to e-mail. Name your service, choose cost and URL of your internet service which will use the service. Click add account and right after Homepay worker accepts our service we are able to use it.
PL: 2. SMS, wchodzimy w Konta, klikamy dodaj nowe konto i wypełniamy wymagane dane. Typ usługi którego będziemy używać, to w tym przypadku sms z kodem zwrotnym. Podajemy nazwę usługi, identyfikator usługi czyli prefix który gracz będzie wpisywał w SMSie, określamy wartość danego kodu, przewidywalną miesięczną ilość kodów dla tej usługi, nie jest to istotne, ale najlepiej zostawić 1000. Dodajemy adres URL do serwisu i wybieramy czy to kod jednorazowy czy czasowy. Klikamy dodaj konto i zaraz po aktywacji konta przez pracownika Homepay możemy korzystać z danej usługi.
PL: Instalacja usługi SMS:
Aby móc skorzystać z tej usługi oprócz utworzenia konta będzie potrzeba zaimplementowania go w skrypcie buypoints.php. Wypełniamy następujące pola:
acc_id - czyli ID usługi, które znajdziemy w panelu partnera na stronie internetowej Homepay - Twoje mikropłatności i płatności internetowe przy nazwie usługi którą właśnie stworzyliśmy np. 2
addpoints - liczba punktów które otrzyma gracz po użyciu kodu.
sms_number - numer na który wysyłamy daną treść.
type - typ usługi, w tym wypadku to "sms"
sms_text - jest to nazwa usługi z panelu partnera zaraz przy ID np. NASZAUSLUGA
sms_cost - informacja dla klienta chcącego wykupić punkty o cenie usługi np. 10.98 zl brutto
So our config for SMS should look like this/A więc nasza konfiguracja dla SMS w pliku powinna wyglądać tak:
$config['homepay'][2]['acc_id']=2;
$config['homepay'][2]['addpoints']=10;
$config['homepay'][2]['sms_number']="79550";
$config['homepay'][2]['type']="sms";
$config['homepay'][2]['sms_text']="HPAY.NASZAUSLUGA";
$config['homepay'][2]['sms_cost']="10.98 zl brutto";
ENG: To add next services just copy all that config but remember about changing the number of config x $config['homepay'][x] as specified above in the script.
PL: Aby dodać kolejne usługi sms lub przelewu po prostu kopiujemy cały config danej usługi i zmieniamy dane. Pamiętajmy, aby usługi działały poprawnie, należy wpisać dla każdej inna cyfrę x $config['homepay'][x] tak jak w powyższym przykładzie.