Exemple #1
0
 public static function isPaymentValid($oplataSettings, $response)
 {
     if ($oplataSettings['merchant'] != $response['merchant_id']) {
         return 'An error has occurred during payment. Merchant data is incorrect.';
     }
     $responseSignature = $response['signature'];
     if (isset($response['response_signature_string'])) {
         unset($response['response_signature_string']);
     }
     if (isset($response['signature'])) {
         unset($response['signature']);
     }
     if (fondycsl::getSignature($response, $oplataSettings['secretkey']) != $responseSignature) {
         return 'An error has occurred during payment. Signature is not valid.';
     }
     return true;
 }
    public function before_process()
    {
        global $content, $config;
        if ($_SESSION['fondy_error'] == '') {
            if ($_SERVER['REQUEST_URI'] != '/page/Fondy' . $config['URL_EXTENSION']) {
                $order = $this->OrderBase->get_order();
                App::import('Model', 'PaymentMethod');
                $this->PaymentMethod = new PaymentMethod();
                $fondy_merchant_id = $this->PaymentMethod->PaymentMethodValue->find('first', array('conditions' => array('key' => 'fondy_merchant_id')));
                $merchant_id = $fondy_merchant_id['PaymentMethodValue']['value'];
                $fondy_secret_key = $this->PaymentMethod->PaymentMethodValue->find('first', array('conditions' => array('key' => 'fondy_secret_key')));
                $secret_key = $fondy_secret_key['PaymentMethodValue']['value'];
                $fondy_lang_key = $this->PaymentMethod->PaymentMethodValue->find('first', array('conditions' => array('key' => 'fondy_lang_key')));
                $lang_key = $fondy_lang_key['PaymentMethodValue']['value'];
                $fondy_cur_key = $this->PaymentMethod->PaymentMethodValue->find('first', array('conditions' => array('key' => 'fondy_cur_key')));
                $currency = $fondy_cur_key['PaymentMethodValue']['value'];
                if ($currency == '') {
                    $currency = $_SESSION['Customer']['currency_code'];
                }
                $desc = 'Order : ' . $order['Order']['id'];
                $result_url = 'http://' . $_SERVER['HTTP_HOST'] . BASE . '/orders/place_order/';
                $oplata_args = array('order_id' => $order['Order']['id'] . fondycsl::ORDER_SEPARATOR . time(), 'merchant_id' => $merchant_id, 'order_desc' => $desc, 'amount' => $order['Order']['total'], 'currency' => $currency, 'server_callback_url' => $result_url, 'response_url' => $result_url, 'lang' => $lang_key, 'sender_email' => $order['Order']['email']);
                $oplata_args['signature'] = fondycsl::getSignature($oplata_args, $secret_key);
                $content = '
        <script src="https://api.fondy.eu/static_common/v1/checkout/ipsp.js"></script>
<style>
#checkout_wrapper {
    top: -69px;
    text-align: left;
    position: relative;
    background: #FFF;
    width: auto;
    max-width: 2000px;
    margin: 9px auto;

}
</style>
<div style="display: none;">
<div id="checkout">
<div class="colorbox" id="checkout_wrapper">
</div>
</div>
</div>
<button class="btn btn-default" type="button" onclick="callpay();" value="{lang}Confirm Order{/lang}"><i class="fa fa-check"></i> {lang}Confirm Order{/lang}</button>
<script>
function checkoutInit(url) {
	$ipsp("checkout").scope(function() {
		this.setCheckoutWrapper("#checkout_wrapper");
		this.addCallback(__DEFAULTCALLBACK__);
		this.action("show", function(data) {
           $("#checkout_loader").remove();
            $("#checkout").show();
        });
		this.action("hide", function(data) {
            $("#checkout").hide();
        });

        this.width("100%");
        this.action("resize", function(data) {
        $("#checkout_wrapper").width(430).height(data.height);
            });


		this.loadUrl(url);
	});
    };
    var button = $ipsp.get("button");
    button.setMerchantId(' . $oplata_args[merchant_id] . ');
    button.setAmount(' . $oplata_args[amount] . ', "' . $oplata_args[currency] . '", true);
    button.setHost("api.fondy.eu");
    button.addParam("order_desc","' . $oplata_args[order_desc] . '");
	button.addParam("signature","' . $oplata_args[signature] . '");
    button.addParam("order_id","' . $oplata_args[order_id] . '");
    button.addParam("lang","' . $oplata_args[lang] . '");//button.addParam("delayed","N");
    button.addParam("server_callback_url","' . $oplata_args[server_callback_url] . '");
    button.addParam("sender_email","' . $oplata_args[sender_email] . '");
    button.setResponseUrl("' . $oplata_args[response_url] . '");
    checkoutInit(button.getUrl());

$(document).ready(function(){
 $.colorbox({
 inline:true,scrolling:false, innerWidth:480,innerHeight:700,
 href: "#checkout_wrapper",
 });
});
function callpay(){
$.colorbox({
 inline:true,scrolling:false, innerWidth:480,innerHeight:700,
 href: "#checkout_wrapper",
 });
}
    </script>


    ';
                return $content;
            }
        } else {
            $content = '
            <p class="error">
            <strong> ' . __d("fondy", "Oplata error") . '  </strong></br>
       ' . __d("fondy", "Order #") . '  ' . $_SESSION["fondy_id"] . '</br>
       ' . __d("fondy", "Error description") . '  ' . $_SESSION["fondy_desc"] . '</br>
       ' . __d("fondy", "Error code") . '  ' . $_SESSION["fondy_error"] . '</br>
            </p>
            ';
            unset($_SESSION['fondy_id']);
            unset($_SESSION['fondy_desc']);
            unset($_SESSION['fondy_error']);
            return $content;
        }
    }
Exemple #3
0
    public function checkout_form($order_id, $button_text = null)
    {
        if (empty($button_text)) {
            $button_text = 'Перейти к оплате';
        }
        $order = $this->orders->get_order((int) $order_id);
        $payment_method = $this->payment->get_payment_method($order->payment_method_id);
        $payment_currency = $this->money->get_currency(intval($payment_method->currency_id));
        $settings = $this->payment->get_payment_settings($payment_method->id);
        $price = round($this->money->convert($order->total_price, $payment_method->currency_id, false), 2);
        // описание заказа
        // order description
        $desc = 'Order:' . $order->id;
        // Способ оплаты
        $paymode = $settings['fondy_paymode'];
        $success_url = $this->config->root_url . '/order/';
        $result_url = $this->config->root_url . '/payment/fondy/callback.php';
        // print_r($settings);
        $currency = $payment_currency->code;
        if ($currency == 'RUR') {
            $currency = 'RUB';
        }
        if ($settings[lang] == '') {
            $settings[lang] = 'ru';
        }
        $oplata_args = array('order_id' => $order_id . fondycsl::ORDER_SEPARATOR . time(), 'merchant_id' => $settings['fondy_merchantid'], 'order_desc' => $desc, 'amount' => $price, 'currency' => $currency, 'server_callback_url' => $result_url, 'response_url' => $result_url, 'lang' => $settings['lang'], 'sender_email' => $order->email);
        $oplata_args['signature'] = fondycsl::getSignature($oplata_args, $settings[fondy_secret]);
        return '    <script src="https://api.fondy.eu/static_common/v1/checkout/ipsp.js"></script>
                    <script src="https://rawgit.com/dimsemenov/Magnific-Popup/master/dist/jquery.magnific-popup.js"></script>
                    <link href="https://rawgit.com/dimsemenov/Magnific-Popup/master/dist/magnific-popup.css" type="text/css" rel="stylesheet" media="screen">
                    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

<style>
#checkout_wrapper a{
    font-size: 20px;
    top: 30px;
    padding: 20px;
    position: relative;
}
#checkout_wrapper {
    text-align: left;
    position: relative;
    background: #FFF;
    /* padding: 30px; */
    padding-left: 15px;
    padding-right: 15px;
    padding-bottom: 30px;
    width: auto;
    max-width: 2000px;
    margin: 9px auto;
}
</style>
<div id="checkout">
<div id="checkout_wrapper">
</div>
</div>
<script>
function callmag(){
$.magnificPopup.open({
showCloseBtn:false,
        items: {
            src: $("#checkout_wrapper"),
            type: "inline"
        }
    });
}
$(document).ready(function() {
 $.magnificPopup.open({
 showCloseBtn:false,
        items: {
            src: $("#checkout_wrapper"),
            type: "inline"
        }
    });
    })
</script>
<script>
function checkoutInit(url, val) {
	$ipsp("checkout").scope(function() {
		this.setCheckoutWrapper("#checkout_wrapper");
		this.addCallback(__DEFAULTCALLBACK__);
		this.action("show", function(data) {
           $("#checkout_loader").remove();
            $("#checkout").show();
        });
		this.action("hide", function(data) {
            $("#checkout").hide();
        });
        if(val){
        this.width(val);
        this.action("resize", function(data) {
        $("#checkout_wrapper").width(val).height(data.height);
            });
        }else{
         this.action("resize", function(data) {
        $("#checkout_wrapper").width(480).height(data.height);
            });
        }
		this.loadUrl(url);
	});
    };
    var button = $ipsp.get("button");
    button.setMerchantId(' . $oplata_args[merchant_id] . ');
    button.setAmount(' . $oplata_args[amount] . ', "' . $oplata_args[currency] . '", true);
    button.setHost("api.fondy.eu");
    button.addParam("order_desc","' . $oplata_args[order_desc] . '");
    button.addParam("order_id","' . $oplata_args[order_id] . '");
	button.addParam("signature","' . $oplata_args[signature] . '");
    button.addParam("lang","' . $oplata_args[lang] . '");//button.addParam("delayed","N");
    button.addParam("server_callback_url","' . $oplata_args[server_callback_url] . '");
    button.addParam("sender_email","' . $oplata_args[sender_email] . '");
    button.setResponseUrl("' . $oplata_args[response_url] . '");
    checkoutInit(button.getUrl());
    </script>
    <input type="button" onclick="callmag();" class="checkout_button" value="' . $button_text . '">
    ';
    }