Drodzy gracze,
Udost?pniamy kod php umo?liwiaj?cy wsp??prac? z nasz? firm?
Kilka s??w o nas:
Poni?ej udost?pniamy gotowy modu?, kt?ry umo?liwi prost? i bezproblemow? implementacje naszego systemu p?atno?ci.
Niezb?dnym warunkiem do rozpocz?cia wsp??pracy jest za?o?enie konta, oraz zdefiniowanie nowej us?ugi. Nast?pnie nale?y uzupe?ni? skrypt o przydzielony przez Simpay API_KEY, oraz API_SECRET.
W service_id wprowadzamy ID us?ugi, sms_number numer pod kt?ry ma by? wys?any SMS oraz sms_text - tre?? wiadomo?ci.
Poni?ej prezentujemy kod php ( ):
simpay.php
SimPay.class.php
Dzi?kujemy i zapraszamy do skorzystania z naszych us?ug.
W razie jakichkolwiek pyta? - prosimy o bezpo?redni kontakt, lub za pomoc? forum.
Pozdrawiamy!
Udost?pniamy kod php umo?liwiaj?cy wsp??prac? z nasz? firm?
Kilka s??w o nas:
- Codzienne wyp?aty uzyskanej prowizji (Nie musisz ju? czeka? do ko?ca okresu rozliczeniowego)
- 50% na start
- Pe?ne rozliczenie z Urz?dem Skarbowym
Poni?ej udost?pniamy gotowy modu?, kt?ry umo?liwi prost? i bezproblemow? implementacje naszego systemu p?atno?ci.
Niezb?dnym warunkiem do rozpocz?cia wsp??pracy jest za?o?enie konta, oraz zdefiniowanie nowej us?ugi. Nast?pnie nale?y uzupe?ni? skrypt o przydzielony przez Simpay API_KEY, oraz API_SECRET.
W service_id wprowadzamy ID us?ugi, sms_number numer pod kt?ry ma by? wys?any SMS oraz sms_text - tre?? wiadomo?ci.
Poni?ej prezentujemy kod php ( ):
simpay.php
PHP:
<?PHP
/*
* Wymagania skryptu:
* Aktywny modu? cURL w modu?ach PHP
* Poprawnie dostosowana podstrona wczytuj?ca plik simpay.php
* (Powinna zawiera? zmienn? $_GET['subtopic'] = 'simpay')
* Plik SimPay.class.php powinien by? w tym samym folderze co plik simpay.php
* (w razie problem?w nale?y samemu debugowa? lub poda? ?cie?k? bezwzgl?dn? do pliku na serwerze)
*
* */
error_reporting(E_ALL);
define('API_KEY', 'W Panelu Parntera > API');
define('API_SECRET', 'W Panelu Parntera > API');
define('API_VERSION', 1);
$SimPayLibs = 'SimPay.class.php'; //?cie?ka do klasy Simpay API
require_once($SimPayLibs);
#################### CONFIG ###################################################
#SimPay
$config['simpay'] = array();
$config['simpay_active'] = 1; //czy system p?atno?ci Simpay ma by? aktywny?
//Przyk?ad konfiguracji jednego SMS (w razie dodania nast?pnych nale?y zwi?kszy? klucz o 1
///////////////// V - ww. KLUCZ tablicy z konfiguracj? SMS
$config['simpay'][0]['service_id'] = 339; //ID us?ugi z SimPay`a
$config['simpay'][0]['addpoints'] = 10; //ilo?? pkt. jakie ma do?adowa? SMS
$config['simpay'][0]['sms_number'] = "7636"; //numer telefonu do wys?ania SMS
$config['simpay'][0]['sms_text'] = "SIM."; //tre?? wysy?anego SMS
$config['simpay'][0]['usluga'] = "TIBIA";
$config['simpay'][0]['sms_cost'] = "6,15 z? brutto"; //Koszt wysy?anego SMS (funkcja jedynie informacyjna dla klienta)
//KONIEC PRZYK?ADU KONFIGURACJI SMS
$config['simpay'][1]['service_id'] = 339;
$config['simpay'][1]['addpoints'] = 30;
$config['simpay'][1]['sms_number'] = "7936";
$config['simpay'][1]['sms_text'] = "SIM.";
$config['simpay'][1]['usluga'] = "TIBIA";
$config['simpay'][1]['sms_cost'] = "10,23 z? brutto";
$config['simpay'][2]['service_id'] = 339;
$config['simpay'][2]['addpoints'] = 80;
$config['simpay'][2]['sms_number'] = "92555";
$config['simpay'][2]['sms_text'] = "SIM.";
$config['simpay'][2]['usluga'] = "TIBIA";
$config['simpay'][2]['sms_cost'] = "24,60 z? brutto";
#################################################################################
function check_code_simpay($code, $usluga, $nick)
{
global $config;
$rodzaj_uslugi = $config['simpay'][$usluga]['usluga'];
if(!preg_match("/^[A-Za-z0-9]{6}$/",$code)) return 0;
$code=urlencode($code);
$api = new SimPay(API_KEY, API_SECRET, API_VERSION);
$api->getStatus(array(
'service_id' => (int)($config['simpay'][$usluga]['service_id']),
'number' => (int)($config['simpay'][$usluga]['sms_number']),
'code' => $code,
));
if ($api->check())
{
//kod poprawny
return 1;
}
else
if ($api->error())
{
// niepoprawny kod
// podczas rozwoju aplikacji system mo?e wy?wietli? b??d
return 0;
//print_r($api->showError());
}
}
function add_points(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['subtopic'] == 'simpay' && $config['simpay_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 Account();
$account->find($to_user);
}
else
{
$player = new Player();
$player->find($to_user);
if($player->isLoaded())
$account = $player->getAccount();
else
$account = new Account();
}
if(!$account->isLoaded()){
$errors[] = 'Konto lub nick postaci nie istnieje.';
}
if(empty($posted_code)){
$errors[] = 'Prosze wpisac kod z SMSa/przelewu.';
}
if(count($errors) == 0)
{
$code_info = check_code_simpay($posted_code,$sms_type,$to_user);
if($code_info != 1)
$errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
else
{
if(add_points($account, $config['simpay'][$sms_type]['addpoints']))
{
$main_content .= '<h1><font color="red">Dodano '.$config['simpay'][$sms_type]['addpoints'].' punktow premium do konta: '.$to_user.' !</font></h1>';
}
else
$errors[] = 'Wystapil blad podczas dodawania punktow do konta, sproboj ponownie.';
}
}
} elseif ($_POST) {
$errors[] = 'Prosz? uzupe?ni? wszystkie pola.';
}
if(count($errors) > 0)
{
$main_content .= '<div class="SmallBox" ><div class="MessageContainer" ><div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="ErrorMessage" > <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div> <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>Wyst?pi?y problemy:</b><br/>';
foreach($errors as $error) {
$main_content .= '<li>* '.$error.'</li>';
}
$main_content .= '</div> <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div> <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div> </div></div><br/>';
$main_content .= '<hr />';
}
$main_content .= '<table width="100%"><tr><td><h2 align="center">SMS</h2>Prosimy zapozna? si? z regulaminem ?wiadczonych us?ug zamieszczonym na dole tej strony.<br/><br/></td></tr></table><b> Aby zakupi? punkty premium skorzystaj z jednej wybranej przez Ciebie opcji znajduj?cych si? poni?ej wysy?aj?c smsa:</b><br/><br/>';
foreach($config['simpay'] as $typ)
$main_content .= '<b>* Na numer <font color="green">'.$typ['sms_number'].'</font> o tre?ci <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/><br />';
$main_content .= '<table><tr><td><form action="?subtopic=simpay" method="POST"><table>';
$main_content .= '<tr><td><b>Nick postaci: </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 wys?anego SMSa: </b></td><td><select name="sms_type">';
foreach($config['simpay'] as $id => $typ)
$main_content .= '<option value="'.$id.'">numer '.$typ['sms_number'].' - kod '.$typ['sms_text'].' - SMS za '.$typ['sms_cost'].'</option>';
$main_content .= '</select></td></tr><tr><td></td><td><input type="submit" value="Sprawd?" /></td></tr></table></form></td></tr></table><br />
<table><tr><td>
<hr>
Serwis SMS obslugiwany przez serwis SimPay.pl.<br/>
Regulamin serwisu dost?pny jest pod linkiem:<br/>
<font color=red>W przypadku wi?kszych kwot prosz? zachowa? 1 min. odst?p pomi?dzy SMSami!</font>
<hr>
<b>Regulamin us?ug dostepnych na tej stronie:</b><br/>
<b>1.</b> Kiedy Tw?j poprawnie wys?any SMS zostanie dostarczony otrzymasz SMS zwrotny z kodem.<br/>
<b>2.</b> Po otrzymaniu kodu SMS i wpisaniu go wraz z nazw? konta w powy?szym formularzu, na serwerze '.$config['server']['serverName'].' podane konto zostanie automatycznie do?adowane o okre?lona ilo?? <b>punkt?w premium</b> kt?re nast?pnie mog? by? zamienione na wirtualne przedmioty w grze Tibia na prywatnym serwerze zwanym <b>'.$config['server']['serverName'].'</b>.<br/>
<b>3.</b> Do pelnego skozystania z uslugi wymagana jest przegladarka internetowa oraz polaczenie z siecia Internet.<br/>
<b>4.</b> Administracja serwera <b>'.$config['server']['serverName'].'</b> nie odpowiada za ?le wpisane tre?ci SMS.<br/>
<b>5.</b> W razie problem?w z dzia?aniem us?ugi nale?y kontaktowa? si? z <a href="mailto:xxx@gmail.com">xxx@gmail.com</a>
</td></tr></table>';
}
if($config['simpay_active'] && $_REQUEST['subtopic'] != 'simpay') {
$main_content .= '<table>';
$main_content .= '<tr><td>';
$main_content .= '<br /><br /><a href="?subtopic=buypoints&system=simpay"><h2>Do?aduj! - LINK<img src="images/img.png /></h2></a><h3>Zap?ac SMSem.</h3>';
$main_content .= '</td>';
$main_content .= '<td rowspan="2">';
$main_content .= '<img src="images/img.png" />';
$main_content .= '</td></tr>';
$main_content .= '</table>';
}
?>
SimPay.class.php
PHP:
<?php
class SimPay
{
protected $auth = array();
protected $api = '1';
protected $response = array();
protected $call = array();
public function __construct($key = '', $secret = '', $api = false)
{
if(isset($api) and !empty($api)) {
$this->api = $api;
}
$this->auth = array(
"auth" => array(
"key" => $key,
"secret" => $secret,
)
);
}
public function url($value, $params = array())
{
$data = json_encode(array('params'=>array_merge($this->auth, $params)));
$this->call = $this->request($data, "https://simpay.pl/api/".$this->api."/".$value);
return $this->call;
}
public function getStatus($params)
{
$this->response = $this->url('status', $params);
return $this->response;
}
public function check()
{
if(isset($this->response) and is_array($this->response)) {
if(isset($this->response['respond']['status']) and $this->response['respond']['status']=='OK') {
return true;
} else if(isset($this->response['error']) and is_array($this->response['error'])) {
return false;
}
} else {
throw new Exception('Brak informacji na temat ostatniego zapytania');
}
}
public function error()
{
if(isset($this->response['error']) and is_array($this->response['error'])) {
return true;
} else {
return false;
}
}
public function showError()
{
if(isset($this->response['error']) and is_array($this->response['error'])) {
return $this->response['error'];
} else {
throw new Exception('Brak bledu do pokazania');
}
}
private function request($data, $url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // developer only
$call = curl_exec($curl);
$response = json_decode($call, true);
$error = curl_errno($curl);
curl_close($curl);
if ($error > 0) {
throw new RuntimeException('CURL ERROR Code:'.$error);
}
return $response;
}
public function response() {
return $this->response;
}
}
Dzi?kujemy i zapraszamy do skorzystania z naszych us?ug.
W razie jakichkolwiek pyta? - prosimy o bezpo?redni kontakt, lub za pomoc? forum.
Pozdrawiamy!