[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: модуль оплаты
nicko2b
здравствуйте .есть модуль оплаты ,значение номер заказа и сумма задаются в ручную .вот часть кода $request->setOrderInfo (21034006 /* webpay objednávka */, 1678 /* interní objednávka */, 12347 /* cena v CZK */);
. как сделать так что бы эти значение можно было вводить через форму ?

<?
include_once 'webpay.php';
$request = new WebPayRequest ();
$request->setPrivateKey ('quatroTT.pem', '12');
$request->setWebPayUrl ('https://3dsecure.gpwebpay.com/rb/order.do');
$request->setResponseUrl ('http://shop.example.cpm/order.php');
$request->setMerchantNumber (201041);
$request->setOrderInfo (21034006, 1678 , 12347 );
echo "<a href='{$request->requestUrl ()}'>zaplatit kartou</a>";


<?

if (!extension_loaded('openssl'))
die ("PHP extension OpenSSL is not loaded.");

class WebPayRequest
{
var $privateKey;
var $webPayUrl;
var $responseUrl;
var $merchantNumber;
var $webPayOrder;
var $merchantOrder;
var $amount;

public function setPrivateKey ($file, $passphrase)
{
$fp = fopen ($file, "r");
$key = fread ($fp, filesize($file));
fclose ($fp);
if (!($this->privateKey = openssl_pkey_get_private ($key, $passphrase)))
{
echo "'$file' is not valid PEM private key (or passphrase is incorrect).";
die;
}
}


public function setOrderInfo ($webPayOrder, $merchantOrder, $price)
{
$this->webPayOrder = $webPayOrder;
$this->merchantOrder = $merchantOrder;
$this->amount = $price * 100;
}

public function setWebPayUrl ($url)
{
$this->webPayUrl = $url;
}

public function setResponseUrl ($responseUrl)
{
$this->responseUrl = $responseUrl;
}

public function setMerchantNumber ($merchantNumber)
{
$this->merchantNumber = $merchantNumber;
}

public function getParams ()
{
$params = array ();
$params ['MERCHANTNUMBER'] = $this->merchantNumber;
$params ['OPERATION'] = 'CREATE_ORDER';
$params ['ORDERNUMBER'] = $this->webPayOrder;
$params ['AMOUNT'] = $this->amount;
$params ['CURRENCY'] = 203;
$params ['DEPOSITFLAG'] = 1;
$params ['MERORDERNUM'] = $this->merchantOrder;
//$params ['MD'] = '';
$params ['URL'] = $this->responseUrl;

$digestText = implode ('|', $params);
openssl_sign ($digestText, $signature, $this->privateKey);
$signature = base64_encode ($signature);
$params ['DIGEST'] = $signature;

return $params;
}

public function requestUrl ()
{
$params = $this->getParams ();
$url = $this->webPayUrl . '?' . http_build_query ($params);
return $url;
}
}
// WebPayRequest


class WebPayResponse
{
var $publicKey;
var $responseParams = array ();
var $digest;

public function setPublicKey ($file)
{
$fp = fopen($file, "r");
$key = fread($fp, filesize ($file));
fclose ($fp);
if (!($this->publicKey = openssl_get_publickey($key)))
{
echo "'$file' is not valid PEM public key (or passphrase is incorrect).";
die;
}
}


public function setResponseParams ($params)
{
$this->responseParams ['OPERATION'] = isset ($params ['OPERATION']) ? $params ['OPERATION'] : '';
$this->responseParams ['ORDERNUMBER'] = isset ($params ['ORDERNUMBER']) ? $params ['ORDERNUMBER'] : '';
$this->responseParams ['MERORDERNUM'] = isset ($params ['MERORDERNUM']) ? $params ['MERORDERNUM'] : '';
//$this->responseParams ['MD'] = isset ($params ['MD']) ? $params['MD'] : '';
$this->responseParams ['PRCODE'] = isset ($params ['PRCODE']) ? $params ['PRCODE'] : '';
$this->responseParams ['SRCODE'] = isset ($params ['SRCODE']) ? $params ['SRCODE'] : '';
$this->responseParams ['RESULTTEXT'] = isset ($params ['RESULTTEXT']) ? $params ['RESULTTEXT'] : '';

$this->digest = isset ($params ['DIGEST']) ? $params ['DIGEST'] : '';
}

public function verify ()
{
$data = implode('|', $this->responseParams);
$digest = base64_decode ($this->digest);
$ok = openssl_verify ($data, $digest, $this->publicKey);
return (($ok == 1) && ($this->responseParams ['PRCODE'] == 0) && ($this->responseParams ['SRCODE'] == 0)) ? true : false;
}

public function orderWebpay () {return $this->responseParams ['ORDERNUMBER'];}
public function orderMerchant () {return $this->responseParams ['MERORDERNUM'];}
}
// WebPayResponse

<?

include_once 'webpay.php';

$response = new WebPayResponse ();
$response->setPublicKey ('muzo.signing_test.pem');
$response->setResponseParams ($_GET);
$result = $response->verify ();

if ($result)
{
echo 'Objednбvka čнslo ' . $response->orderMerchant () . ' byla zaplacena.';
}
else
{
echo 'Zaplacenн selhalo...';
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.