first commit
This commit is contained in:
240
class/class.paymuzo.php
Normal file
240
class/class.paymuzo.php
Normal file
@@ -0,0 +1,240 @@
|
||||
<?php
|
||||
|
||||
class PayMuzo
|
||||
{
|
||||
public $privatni;
|
||||
|
||||
public $heslo;
|
||||
|
||||
public $verejny;
|
||||
// parametry: jmeno souboru soukromeho klice, heslo k soukromemu klici, jmeno souboru s verejnym klicem
|
||||
// function CSignature($privatni="test_key.pem", $heslo="changeit", $verejny="test_cert.pem"){
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function CSignature($privatni, $heslo, $verejny)
|
||||
{
|
||||
$fp = fopen($privatni, 'r');
|
||||
$this->privatni = fread($fp, filesize($privatni));
|
||||
fclose($fp);
|
||||
$this->heslo = $heslo;
|
||||
|
||||
$fp = fopen($verejny, 'r');
|
||||
$this->verejny = fread($fp, filesize($verejny));
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function sign($text)
|
||||
{
|
||||
$pkeyid = openssl_get_privatekey($this->privatni, $this->heslo);
|
||||
openssl_sign($text, $signature, $pkeyid);
|
||||
$signature = base64_encode($signature);
|
||||
openssl_free_key($pkeyid);
|
||||
|
||||
return $signature;
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function verify($text, $signature)
|
||||
{
|
||||
$pubkeyid = openssl_get_publickey($this->verejny);
|
||||
$signature = base64_decode($signature);
|
||||
$vysledek = openssl_verify($text, $signature, $pubkeyid);
|
||||
openssl_free_key($pubkeyid);
|
||||
|
||||
return ($vysledek == 1) ? true : false;
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function getOperation($ID)
|
||||
{
|
||||
$str = [
|
||||
'CREATE_ORDER' => 'Vytvoření objednávky',
|
||||
];
|
||||
|
||||
return $str[$ID];
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function getPRCode($number)
|
||||
{
|
||||
$errStr = [
|
||||
0 => 'OK. Transakce proběhla v pořádku',
|
||||
1 => 'Pole príliš dlouhé',
|
||||
2 => 'Pole príliš krátké',
|
||||
3 => 'Chybný obsah pole',
|
||||
4 => 'Pole je prázdné',
|
||||
5 => 'Chybí povinné pole',
|
||||
11 => 'Neznámý obchodník',
|
||||
14 => 'Duplikátní číslo objednávky',
|
||||
15 => 'Objekt nenalezen',
|
||||
17 => 'Částka k úhradě překročila autorizovanou částku',
|
||||
18 => 'Součet kreditovaných částek překročil uhrazenou částku',
|
||||
20 => 'Objekt není ve stavu odpovídajícím této operaci',
|
||||
26 => 'Technický problém při spojení s autorizačním centrem',
|
||||
27 => 'Chybný typ objednávky',
|
||||
28 => 'Zamítnuto v 3D',
|
||||
30 => 'Zamítnuto v autorizačním centru',
|
||||
31 => 'Chybný podpis',
|
||||
1000 => 'Technický problém',
|
||||
];
|
||||
|
||||
return $errStr[$number];
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function getSRCode($number)
|
||||
{
|
||||
$errStr = [
|
||||
0 => 'Bez významu',
|
||||
1 => 'ORDERNUMBER',
|
||||
2 => 'MERCHANTNUMBER',
|
||||
6 => 'AMOUNT',
|
||||
7 => 'CURRENCY',
|
||||
8 => 'DEPOSITFLAG',
|
||||
10 => 'MERORDERNUM',
|
||||
11 => 'CREDITNUMBER',
|
||||
12 => 'OPERATION',
|
||||
18 => 'BATCH',
|
||||
22 => 'ORDER',
|
||||
24 => 'URL',
|
||||
25 => 'MD',
|
||||
26 => 'DESC',
|
||||
34 => 'DIGEST',
|
||||
1001 => 'Zamítnuto v autorizačním centru, karta blokována.',
|
||||
1002 => 'Zamítnuto v autorizačním centru, autorizace zamítnuta',
|
||||
1003 => 'Zamítnuto v autorizačním centru, problem karty',
|
||||
1004 => 'Zamítnuto v autorizačním centru, technický problém',
|
||||
1005 => 'Zamítnuto v autorizačním centru, problém účtu.',
|
||||
3000 => 'Neoveřeno v 3D. Vydavatel karty není zapojen do 3D nebo karta nebyla aktivována. Kontaktujte vydavatele karty.',
|
||||
3001 => 'Držitel karty ověřen',
|
||||
3002 => 'Neoveřeno v 3D. Vydavatel karty nebo karta není zapojena do 3D. Kontaktujte vydavatele karty.',
|
||||
3004 => 'Neoveřeno v 3D. Vydavatel karty není zapojen do 3D nebo karta nebyla aktivována. Kontaktujte vydavatele karty.',
|
||||
3005 => 'Zamítnuto v 3D. Technický problém pri ověření držitele karty. Kontaktujte vydavatele karty.',
|
||||
3006 => 'Zamítnuto v 3D. Technický problém pri ověření držitele karty.',
|
||||
3007 => 'Zamítnuto v 3D. Technický problém v systému zúčtující banky. Kontaktujte obchodníka.',
|
||||
3008 => 'Zamítnuto v 3D. Použit nepodporovaný karetní produkt. Kontaktujte vydavatele karty.',
|
||||
];
|
||||
|
||||
return $errStr[$number];
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function getAction($action)
|
||||
{
|
||||
$ret = '';
|
||||
|
||||
switch ($action) {
|
||||
// autorizovana
|
||||
case 'APPROVED':
|
||||
$ret = 'autorizována';
|
||||
break;
|
||||
// uhrazena
|
||||
case 'DEPOSITED':
|
||||
$ret = 'uhrazena';
|
||||
break;
|
||||
// zpracovana
|
||||
case 'PROCESSED':
|
||||
$ret = 'zpracována';
|
||||
break;
|
||||
// kreditovana
|
||||
case 'CREDITED':
|
||||
$ret = 'kreditována';
|
||||
break;
|
||||
// zamitnuta
|
||||
case 'DECLINED':
|
||||
$ret = 'zamitnuta';
|
||||
break;
|
||||
// rezervovana
|
||||
case 'REVERSED':
|
||||
$ret = 'rezervována';
|
||||
break;
|
||||
// uzavrena
|
||||
case 'CLOSED':
|
||||
$ret = 'uzavřena';
|
||||
break;
|
||||
// nedokoncena
|
||||
case 'REQUESTED':
|
||||
$ret = 'nedokončena';
|
||||
break;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
public function getFollowingAction($status)
|
||||
{
|
||||
$ret = [];
|
||||
|
||||
switch ($status) {
|
||||
// autorizovana
|
||||
case 'APPROVED':
|
||||
$ret = ['REVERSED', 'DEPOSITED'];
|
||||
break;
|
||||
// uhrazena
|
||||
case 'DEPOSITED':
|
||||
$ret = ['APPROVED', 'CLOSED'];
|
||||
break;
|
||||
// zpracovana
|
||||
case 'PROCESSED':
|
||||
$ret = ['CREDITED', 'CLOSED'];
|
||||
break;
|
||||
// kreditovana
|
||||
case 'CREDITED':
|
||||
$ret = ['CREDITED', 'DEPOSITED', 'CLOSED'];
|
||||
break;
|
||||
// zamitnuta
|
||||
case 'DECLINED':
|
||||
$ret = ['DELETED'];
|
||||
break;
|
||||
// rezervovana
|
||||
case 'REVERSED':
|
||||
$ret = ['DELETED'];
|
||||
break;
|
||||
// uzavrena
|
||||
case 'CLOSED':
|
||||
$ret = ['DELETED'];
|
||||
break;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
}
|
||||
Reference in New Issue
Block a user