Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
- class Epay_gpwebpay
- {
- var $private_key, $password, $public_key, $digest;
- public $params = array();
- var $options = array(
- 'MERCHANTNUMBER' => GP_WEBPAY_MID,
- 'OPERATION' => 'CREATE_ORDER',
- 'CURRENCY' => '978',
- 'DEPOSITFLAG' => 1,
- 'DESCRIPTION' => 'nejaky text',
- 'MD' => 'nejaky text'
- );
- function __construct()
- {
- $this->CI =& get_instance();
- }
- function sign($key, $password)
- {
- $fp = fopen($key, "r");
- $this->private_key = fread($fp, filesize($key));
- fclose($fp);
- $this->password=$password;
- $digestValue = implode('|', $this->params);
- $keyid = openssl_get_privatekey($this->private_key, $this->password);
- openssl_sign($digestValue, $this->digest, $keyid);
- $this->digest = base64_encode($this->digest);
- openssl_free_key($keyid);
- }
- function verify($key)
- {
- $fp = fopen($key, "r");
- $this->public_key = fread($fp, filesize($key));
- fclose($fp);
- $pubcertid = openssl_get_publickey($this->public_key);
- $digest = base64_decode($this->digest);
- $data = implode('|', $this->params);
- $result = openssl_verify($data, $digest, $pubcertid);
- openssl_free_key($pubcertid);
- return (($result == 1) ? true : false);
- }
- function send_request($data)
- {
- $this->params['MERCHANTNUMBER'] = $this->options['MERCHANTNUMBER'];
- $this->params['OPERATION'] = $this->options['OPERATION'];
- $this->params['ORDERNUMBER'] = $data['variable_symbol'];
- $this->params['AMOUNT'] = $data['price'] * 100;
- $this->params['CURRENCY'] = $this->options['CURRENCY'];
- $this->params['DEPOSITFLAG'] = $this->options['DEPOSITFLAG'];
- $this->params['MERORDERNUM'] = $data['variable_symbol'];
- $this->params['URL'] = $data['redirect_url'];
- $this->params['DESCRIPTION'] = $this->options['DESCRIPTION'];
- $this->params['MD'] = base64_encode($this->options['MD']);
- $this->sign(GP_WEBPAY_PRIVATE_KEY, GP_WEBPAY_PASSWORD);
- if (isset($this->digest))
- {
- $this->params['DIGEST'] = $this->digest;
- $this->params = array_map('urlencode', $this->params);
- array_walk($this->params, create_function('&$val, $key', '$val = "$key=$val";'));
- return GP_WEBPAY_URL . "?" . implode('&', $this->params);
- }
- else
- {
- return false;
- }
- }
- function receive_response() {
- $this->params = array();
- $this->params['OPERATION'] = isset($_GET['OPERATION']) ? $_GET['OPERATION'] : '';
- $this->params['ORDERNUMBER'] = isset($_GET['ORDERNUMBER']) ? $_GET['ORDERNUMBER'] : '';
- $this->params['MERORDERNUM'] = isset($_GET['MERORDERNUM']) ? $_GET['MERORDERNUM'] : '';
- $this->params['MD'] = isset($_GET['MD']) ? $_GET['MD'] : '';
- $this->params['PRCODE'] = isset($_GET['PRCODE']) ? $_GET['PRCODE'] : '';
- $this->params['SRCODE'] = isset($_GET['SRCODE']) ? $_GET['SRCODE'] : '';
- $this->params['RESULTTEXT'] = isset($_GET['RESULTTEXT']) ? $_GET['RESULTTEXT'] : '';
- $this->digest = isset($_GET['DIGEST']) ? $_GET['DIGEST'] : '';
- return ($this->verify(GP_WEBPAY_PUBLIC_KEY) && ($this->params['PRCODE'] == 0) && ($this->params['SRCODE'] == 0)) ? true : false;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement