first commit

This commit is contained in:
2024-12-17 13:43:22 +01:00
commit 8e6cd8b410
21292 changed files with 3514826 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
<?php
/**
* PayU
*
* @author PayU
* @copyright Copyright (c) 2014 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
* http://openpayu.com
* http://twitter.com/openpayu
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../');
exit;

View File

@@ -0,0 +1,15 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2017 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<div class="panel">
<div class="panel-heading">{l s='Information' mod='payu'}</div>
<p>{l s='Important: This plugin works only with "REST API" (Checkout) points of sales (POS).' mod='payu'}<br />
{l s='If you do not already have PayU merchant account, ' mod='payu'} <a href="https://secure.payu.com/boarding/?pk_campaign=Github&pk_kwd=Prestashop#/form" target="_blank">{l s='please register in Production' mod='payu'}</a> {l s='or ' mod='payu'} <a href="https://secure.snd.payu.com/boarding/?pk_campaign=Plugin&pk_kwd=Prestashop#/form" target="_blank">{l s='please register in Sandbox' mod='payu'}.</a>
</div>

View File

@@ -0,0 +1,145 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2017 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{if $PAYU_PAYMENT_ACCEPT}
{if $IS_17}
<div class="row"><div class="col-lg-12">
{/if}
<br />
<div id="payu-status-wrapper" class="panel">
<form id="_form" class="form-horizontal hidden-print" action="{$smarty.server.REQUEST_URI|escape:'htmlall':'UTF-8'}" method="post" enctype="multipart/form-data">
<fieldset>
<legend><img src="{$module_dir|escape:'htmlall':'UTF-8'}logo.gif" alt="" /> {l s='PayU payment acceptance' mod='payu'}</legend>
<label>{l s='Choose status' mod='payu'}</label>
<div class="form-group">
<div class="col-lg-9">
<select name="PAYU_PAYMENT_STATUS" id="PAYU_PAYMENT_STATUS">
{foreach from=$PAYU_PAYMENT_STATUS_OPTIONS item=option}
<option value="{$option.id|escape:'htmlall':'UTF-8'}" {if $option.id == $PAYU_PAYMENT_STATUS}selected="selected"{/if}>{$option.name|escape:'htmlall':'UTF-8'}</option>
{/foreach}
</select>
</div>
<div class="col-lg-3">
<button class="btn btn-primary" name="submitpayustatus" type="submit">{l s='Change' mod='payu'}</button>
</div>
</div>
<p class="preference_description">
{l s='Works only when the PayU order status is WAITING_FOR_CONFIRMATION or REJECTED' mod='payu'}
</p>
</fieldset>
</form>
</div>
{if $IS_17}
</div></div>
{/if}
{/if}
{if $IS_17}
<div class="row"><div class="col-lg-12">
{/if}
<div id="payuOrders" class="panel card">
<div class="panel-heading card-header">
<i class="icon-money"></i>
{l s='PayU Orders' mod='payu'}
</div>
{$PAYU_CANCEL_ORDER_MESSAGE}
<div class="card-body">
<table class="table">
<thead>
<tr>
<th><span class="title_box ">{l s='Create date' mod='payu'}</span></th>
<th><span class="title_box ">{l s='Update date' mod='payu'}</span></th>
<th><span class="title_box ">PayU - OrderId</span></th>
<th><span class="title_box ">PayU - ExtOrderId</span></th>
<th><span class="title_box ">Payu - {l s='Status' mod='payu'}</span></th>
<th><span class="title_box ">{l s='Action' mod='payu'}</span></th>
</tr>
</thead>
{if $PAYU_ORDERS}
<tbody>
{foreach from=$PAYU_ORDERS item=payuOrder}
<tr>
<td>{dateFormat date=$payuOrder.create_at full=true}</td>
<td>{dateFormat date=$payuOrder.update_at full=true}</td>
<td>{$payuOrder.id_session}</td>
<td>{$payuOrder.ext_order_id}</td>
<td>{$payuOrder.status}</td>
<td>{if $payuOrder.status == 'NEW' || $payuOrder.status == 'PENDING'}<a class="btn btn-primary" href="{$link->getAdminLink('AdminOrders')|escape:'html':'UTF-8'}&amp;vieworder&amp;id_order={$PAYU_ORDER_ID|intval}&amp;cancelPayuOrder={$payuOrder.id_session}">{l s='Cancel' mod='payu'}</a>{/if}</td>
</tr>
{/foreach}
</tbody>
{/if}
</table>
{if $SHOW_REFUND}
<div class="row">
<div class="col-sm-6">
<form action="" method="post" onsubmit="return confirm('{l s='Do you really want to submit the refund request?' mod='payu'}');">
<input type="hidden" name="submitPayuRefund" value="1">
<table class="table-sm table-condensed">
<tr>
<td>
<select id="payu_refund_type" name="payu_refund_type" class="custom-select">
<option value="full"{if $REFUND_TYPE eq "full"} selected="selected"{/if}>{l s='Full refund' mod='payu'}</option>
<option value="partial"{if $REFUND_TYPE eq "partial"} selected="selected"{/if}>{l s='Partial refund' mod='payu'}</option>
</select>
</td>
<td>
{l s='amount' mod='payu'}
</td>
<td>
<input type="text" class="form-control" id="payu_refund_amount" name="payu_refund_amount" value="{$REFUND_AMOUNT|escape:'htmlall':'UTF-8'}"/>
</td>
<td>
<button class="btn btn-primary btn-sm">
{l s='Perform refund' mod='payu'}
</button>
</td>
</tr>
</table>
</form>
</div>
</div>
{if $REFUND_ERRORS|count}
<div role="alert" class="alert alert-danger">
<p class="alert-text">
{foreach from = $REFUND_ERRORS item = error}
<div>{$error}</div>
{/foreach}
</p>
</div>
{/if}
<script>
{literal}
$(document).ready(function() {
var refund_type_select = $('#payu_refund_type');
var set_type = function(type) {
if ('full' === type) {
$('#payu_refund_amount').attr('readonly', true).val('{/literal}{$REFUND_FULL_AMOUNT|escape:'htmlall':'UTF-8'}{literal}');
} else {
$('#payu_refund_amount').attr('readonly', false);
}
};
set_type(refund_type_select.val());
refund_type_select.on('change', function(){
set_type(refund_type_select.val());
});
});
{/literal}
</script>
{/if}
</div>
</div>
{if $IS_17}
</div></div>
{/if}

View File

@@ -0,0 +1,16 @@
<div class="payuConditions">
<div class="checkbox">
<input type="checkbox" value="1" {if $payuConditions}checked="checked"{/if} name="payuConditions" id="payuCondition">
<label for="payuCondition">
{l s='I accept' mod='payu'} <a target="_blank" href="{$conditionUrl}">{l s='Terms of single PayU payment transaction' mod='payu'}</a>
</label>
</div>
{l s="Payment is processed by PayU SA; The recipient's data, the payment title and the amount are provided to PayU SA by the recipient;" mod='payu'} <span class="payu-read-more" data-more="more1">{l s="read more" mod='payu'}</span><span class="payu-more-hidden" id="more1"> {l s="The order is sent for processing when PayU SA receives your payment. The payment is transferred to the recipient within 1 hour, not later than until the end of the next business day; PayU SA does not charge any service fees." mod='payu'}</span><br />
{l s='The controller of your personal data is PayU S.A. with its registered office in Poznan (60-166), at Grunwaldzka Street 182 ("PayU").' mod='payu'} <span class="payu-read-more" data-more="more2">{l s="read more" mod='payu'}</span>
<span class="payu-more-hidden" id="more2"> {l s='Your personal data will be processed for purposes of processing payment transaction, notifying You about the status of this payment, dealing with complaints and also in order to fulfill the legal obligations imposed on PayU.' mod='payu'}
<br />
{l s='The recipients of your personal data may be entities cooperating with PayU during processing the payment. Depending on the payment method you choose, these may include: banks, payment institutions, loan institutions, payment card organizations, payment schemes), as well as suppliers supporting PayUs activity providing: IT infrastructure, payment risk analysis tools and also entities that are authorised to receive it under the applicable provisions of law, including relevant judicial authorities. Your personal data may be shared with merchants to inform them about the status of the payment.' mod='payu'}
<br />
{l s='You have the right to access, rectify, restrict or oppose the processing of data, not to be subject to automated decision making, including profiling, or to transfer and erase Your personal data. Providing personal data is voluntary however necessary for the processing the payment and failure to provide the data may result in the rejection of the payment. For more information on how PayU processes your personal data, please click' mod='payu'} <a href="{l s='https://static.payu.com/sites/terms/files/payu_privacy_policy_en_en.pdf' mod='payu'}" target="_blank">{l s='Payu Privacy Policy' mod='payu'}</a>.
</span>
</div>

View File

@@ -0,0 +1,28 @@
{*
* @author PayU
* @copyright Copyright (c) 2016 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{capture name=path}{l s='Pay with PayU' mod='payu'}{/capture}
<div class="clearfix">
<h2 id="payuAmountInfo">
{$payuOrderInfo}:
<strong>{if $currency}{convertPriceWithCurrency price=$total currency=$orderCurrency}{else}{convertPrice price=$total}{/if}</strong> {l s='(tax incl.)' mod='payu'}
</h2>
<img src="{$image}" id="payuLogo">
</div>
{if $payuError}
<div class="alert alert-warning">
{$payuError}
</div>
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
<a class="button btn btn-default button-medium" href="{$buttonAction}">
<span>{l s='Retry pay with PayU' mod='payu'}<i class="icon-chevron-right right"></i></span>
</a>
</p>

View File

@@ -0,0 +1,29 @@
{*
* @author PayU
* @copyright Copyright (c) 2016 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{extends file=$layout}
{block name='content'}
<div class="clearfix">
<h2 id="payuAmountInfo">{$payuOrderInfo}: <strong>{$total}</strong> {l s='(tax incl.)' mod='payu'}</h2>
<img src="{$image}" id="payuLogo">
</div>
{if $payuError}
<div class="alert alert-warning">
{$payuError}
</div>
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
<a class="btn btn-primary float-xs-right continue" href="{$buttonAction}">
<span>{l s='Retry pay with PayU' mod='payu'}</span>
</a>
</p>
{/block}

View File

@@ -0,0 +1,22 @@
<?php
/**
* PayU
*
* @author PayU
* @copyright Copyright (c) 2014 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
* http://openpayu.com
* http://twitter.com/openpayu
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../');
exit;

View File

@@ -0,0 +1,82 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{capture name=path}{l s='Pay with PayU' mod='payu'}{/capture}
<div class="clearfix">
<h2 id="payuAmountInfo">{$payuOrderInfo}: <strong>
{if $currency}{convertPriceWithCurrency price=$total currency=$orderCurrency}{else}{convertPrice price=$total}{/if}
</strong>
{l s='(tax incl.)' mod='payu'}
</h2>
<img src="{$image}" id="payuLogo">
</div>
{if $payuErrors|@count}
<div class="alert alert-warning">
{foreach $payuErrors as $error}
{$error}<br>
{/foreach}
</div>
{/if}
<form action="{$payuPayAction|escape:'html'}" method="post" id="payuForm">
<input type="hidden" name="payuPay" value="1" />
{if isset($payMethods.error)}
<h4 class="error">{l s='Error has occurred' mod='payu'}: {$payMethods.error}</h4>
{else}
<div id="payMethods">
{foreach $payMethods.payByLinks as $payByLink}
<div id="payMethodContainer-{$payByLink->value}" class="payMethod {if $payByLink->status != 'ENABLED'}payMethodDisable{else}payMethodEnable{/if} {if $payMethod == $payByLink->value}payMethodActive{/if}" {if $payByLink->value == 'jp'}style="display: none" {/if}>
{if $payByLink->status == 'ENABLED'}
<input id="payMethod-{$payByLink->value}" type="radio" value="{$payByLink->value}" name="payMethod" {if $payMethod == $payByLink->value}checked="checked"{/if}>
{/if}
<label for="payMethod-{$payByLink->value}" class="payMethodLabel" data-autosubmit="{$payByClick}">
<div class="payMethodImage"><img src="{$payByLink->brandImageUrl}" alt="{$payByLink->name}"></div>
{$payByLink->name}
</label>
</div>
{/foreach}
</div>
{include file="$conditionTemplate"}
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
{if !$retryPayment}
<a class="button-exclusive btn btn-default button_large" href="{$link->getPageLink('order', true, NULL, "step=3")|escape:'html':'UTF-8'}">
<i class="icon-chevron-left"></i>{l s='Other payment methods' mod='payu'}
</a>
{/if}
{if !isset($payMethods.error)}
<button class="button btn btn-default button-medium" type="submit">
<span>{if !$retryPayment}{l s='I confirm my order' mod='payu'}{else}{l s='Pay' mod='payu'}{/if}<i class="icon-chevron-right right"></i></span>
</button>
{/if}
</p>
</form>
<script>
(function () {
var applePayAvailable;
try {
applePayAvailable = window.ApplePaySession && window.ApplePaySession.canMakePayments();
} catch (e) {
applePayAvailable = false;
}
var applePayContainer = document.getElementById('payMethodContainer-jp');
if (applePayAvailable) {
applePayContainer.style.display = 'block';
} else {
applePayContainer.parentNode.removeChild(applePayContainer);
}
})();
</script>

View File

@@ -0,0 +1,76 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{extends file=$layout}
{block name='content'}
<div class="clearfix container">
<img src="{$image}" id="payuLogo">
</div>
{if $payuErrors|@count}
<div class="alert alert-warning">
{foreach $payuErrors as $error}
{$error|unescape:'html'}<br>
{/foreach}
</div>
{/if}
<form action="{$payuPayAction|escape:'html'}" method="post" id="payuForm" class="container payu-form-margin">
<input type="hidden" name="payuPay" value="1" />
{if isset($payMethods.error)}
<h4 class="error">{l s='Error has occurred' mod='payu'}: {$payMethods.error}</h4>
{else}
<div id="payMethods">
{foreach $payMethods.payByLinks as $payByLink}
<div id="payMethodContainer-{$payByLink->value}" class="payMethod {if $payByLink->status != 'ENABLED'}payMethodDisable{else}payMethodEnable{/if} {if $payMethod == $payByLink->value}payMethodActive{/if}" {if $payByLink->value == 'jp'}style="display: none" {/if}>
{if $payByLink->status == 'ENABLED'}
<input id="payMethod-{$payByLink->value}" type="radio" value="{$payByLink->value}" name="payMethod" {if $payMethod == $payByLink->value}checked="checked"{/if}>
{/if}
<label for="payMethod-{$payByLink->value}" class="payMethodLabel" data-autosubmit="{$payByClick}">
<div class="payMethodImage" title="{$payByLink->name}"><img src="{$payByLink->brandImageUrl}" alt="{$payByLink->name}"></div>
{$payByLink->name}
</label>
</div>
{/foreach}
</div>
{include file='module:payu/views/templates/front/conditions17.tpl'}
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
<h2 id="payuAmountInfo">{$payuOrderInfo}: <strong>{$total}</strong> {l s='(tax incl.)' mod='payu'}</h2>
{if !isset($payMethods.error)}
<button class="btn btn-primary float-lg-right floar-md-left float-xs-left continue" type="submit">
<span>{if !$retryPayment}{l s='I confirm my order' mod='payu'}{else}{l s='Pay' mod='payu'}{/if}</span>
</button>
{/if}
</p>
</form>
<script>
(function () {
var applePayAvailable;
try {
applePayAvailable = window.ApplePaySession && window.ApplePaySession.canMakePayments();
} catch (e) {
applePayAvailable = false;
}
var applePayContainer = document.getElementById('payMethodContainer-jp');
if (applePayAvailable) {
applePayContainer.style.display = 'block';
} else {
applePayContainer.parentNode.removeChild(applePayContainer);
}
})();
</script>
{/block}

View File

@@ -0,0 +1,25 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<div class="payu-card-form-container">
<div class="payu-card-container">
<div class="aside">{l s='Card number' mod='payu'}</div>
<div class="payu-card-form" id="payu-card-number"></div>
<div class="card-details payu-card-clearfix">
<div class="expiration">
<div class="aside">{l s='Valid thru' mod='payu'}</div>
<div class="payu-card-form" id="payu-card-date"></div>
</div>
<div class="cvv">
<div class="aside">{l s='CVV' mod='payu'}</div>
<div class="payu-card-form" id="payu-card-cvv"></div>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,63 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{capture name=path}{l s='Pay with PayU' mod='payu'}{/capture}
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="{$jsSdk}"></script>
<div class="clearfix">
<h2 id="payuAmountInfo">{$payuOrderInfo}: <strong>
{if $currency}{convertPriceWithCurrency price=$total currency=$orderCurrency}{else}{convertPrice price=$total}{/if}
</strong>
{l s='(tax incl.)' mod='payu'}
</h2>
<img src="{$image}" id="payuLogo">
</div>
{if $payuErrors|@count}
<div class="alert alert-warning">
{foreach $payuErrors as $error}
{$error}<br>
{/foreach}
</div>
{/if}
<form action="{$payuPayAction|escape:'html'}" method="post" id="payu-card-form">
<input type="hidden" name="payuPay" value="1" />
<input type="hidden" name="payMethod" value="card" />
<input type="hidden" name="cardToken" value="" id="card-token" />
<div id="card-form-container">
{if isset($payMethods.error)}
<h4 class="error">{l s='Error has occurred' mod='payu'}: {$payMethods.error}</h4>
{else}
<div id="payMethods" style="padding-bottom: 5px">
<div id="response-box" class="alert alert-warning" style="display: none; margin-bottom: 10px"></div>
{include file="$payCardTemplate"}
</div>
{include file="$conditionTemplate"}
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
{if !$retryPayment}
<a class="button-exclusive btn btn-default button_large" href="{$link->getPageLink('order', true, NULL, "step=3")|escape:'html':'UTF-8'}">
<i class="icon-chevron-left"></i>{l s='Other payment methods' mod='payu'}
</a>
{/if}
{if !isset($payMethods.error)}
<button class="button btn btn-default button-medium" type="submit" id="secure-form-pay">
<span>{if !$retryPayment}{l s='I confirm my order' mod='payu'}{else}{l s='Pay' mod='payu'}{/if}<i class="icon-chevron-right right"></i></span>
</button>
{/if}
</p>
</div>
<h2 id="waiting-box" style="display: none">{l s='Please wait' mod='payu'}...</h2>
</form>
{include file="$secureFormJsTemplate"}

View File

@@ -0,0 +1,62 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{extends file=$layout}
{block name='content'}
<section id="main">
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script type="text/javascript" src="{$jsSdk}"></script>
<div class="clearfix">
<h2 id="payuAmountInfo">{$payuOrderInfo}: <strong>{$total}</strong> {l s='(tax incl.)' mod='payu'}</h2>
<img src="{$image}" id="payuLogo">
</div>
{if $payuErrors|@count}
<div class="alert alert-warning">
{foreach $payuErrors as $error}
{$error}<br>
{/foreach}
</div>
{/if}
<section id="content" class="page-content page-cms">
<form action="{$payuPayAction|escape:'html'}" method="post" id="payu-card-form">
<input type="hidden" name="payuPay" value="1" />
<input type="hidden" name="payMethod" value="card" />
<input type="hidden" name="cardToken" value="" id="card-token" />
<div id="card-form-container">
{if isset($payMethods.error)}
<h4 class="error">{l s='Error has occurred' mod='payu'}: {$payMethods.error}</h4>
{else}
<div id="payMethods" style="padding-bottom: 5px">
<div id="response-box" class="alert alert-warning" style="display: none; margin-bottom: 10px"></div>
{include file='module:payu/views/templates/front/payuCardForm.tpl'}
</div>
{include file='module:payu/views/templates/front/conditions17.tpl'}
{/if}
<p class="cart_navigation clearfix" id="cart_navigation">
{if !$retryPayment}
<a class="label" href="{$link->getPageLink('order', true, NULL, "step=3")|escape:'html':'UTF-8'}">
{l s='Other payment methods' mod='payu'}
</a>
{/if}
{if !isset($payMethods.error)}
<button class="btn btn-primary float-xs-right continue" type="submit" id="secure-form-pay">
<span>{if !$retryPayment}{l s='I confirm my order' mod='payu'}{else}{l s='Pay' mod='payu'}{/if}</span>
</button>
{/if}
</p>
</div>
<div id="waiting-box" style="display: none">{l s='Please wait' mod='payu'}...</div>
</form>
</section>
{include file='module:payu/views/templates/front/secureFormJs.tpl'}
</section>
{/block}

View File

@@ -0,0 +1,178 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<script>
(function () {
//Polifill from https://developer.mozilla.org/pl/docs/Web/JavaScript/Referencje/Obiekty/Object/assign
if (typeof Object.assign != 'function') {
Object.assign = function(target, varArgs) { // .length of function is 2
'use strict';
if (target == null) { // TypeError if undefined or null
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var index = 1; index < arguments.length; index++) {
var nextSource = arguments[index];
if (nextSource != null) { // Skip over if undefined or null
for (var nextKey in nextSource) {
// Avoid bugs when hasOwnProperty is shadowed
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey] = nextSource[nextKey];
}
}
}
}
return to;
};
}
var secureFormOptions = {
elementFormNumber: '#payu-card-number',
elementFormDate: '#payu-card-date',
elementFormCvv: '#payu-card-cvv',
element: '#secure-form',
profile: 'widthGt300',
profiles: {
widthLt290: {
cardIcon: false,
style: {
basic: {
fontSize: '14px',
}
},
},
widthLt340: {
cardIcon: true,
style: {
basic: {
fontSize: '14px',
}
},
},
widthGt340: {
cardIcon: true,
style: {
basic: {
fontSize: '18px',
}
},
}
},
config: {
cardIcon: true,
placeholder: {
number: '',
cvv: ''
},
style: {
basic: {
fontSize: '18px',
}
},
lang: '{$lang}'
}
};
secureFormOptions.profile = calculateProfile();
secureFormOptions.config = Object.assign({}, secureFormOptions.config, secureFormOptions.profiles[secureFormOptions.profile]);
var payu = PayU({$posId});
var secureForms = payu.secureForms();
var secureFormNumber = secureForms.add('number', secureFormOptions.config);
secureFormNumber.render(secureFormOptions.elementFormNumber);
var secureFormDate = secureForms.add('date', secureFormOptions.config);
secureFormDate.render(secureFormOptions.elementFormDate);
var secureFormCvv = secureForms.add('cvv', secureFormOptions.config);
secureFormCvv.render(secureFormOptions.elementFormCvv);
window.addEventListener('resize', secureFormResize);
var payButton = document.getElementById('secure-form-pay');
var responseBox = document.getElementById('response-box');
var cardTokenInput = document.getElementById('card-token');
payButton.addEventListener('click', function(event) {
event.preventDefault();
var isAcceptPayuConditions = document.getElementById('payuCondition').checked;
if (!isAcceptPayuConditions) {
showMessageBox('<strong>{l s='Please accept "Terms of single PayU payment transaction"' mod='payu'}</strong>');
return;
}
hideMessageBox();
cardTokenInput.value = '';
secureFormNumber.update({ disabled: true });
secureFormDate.update({ disabled: true });
secureFormCvv.update({ disabled: true });
try {
payu.tokenize().then(function(result) {
if (result.status === 'SUCCESS') {
secureFormNumber.remove();
secureFormDate.remove();
secureFormCvv.remove();
cardTokenInput.value = result.body.token;
document.getElementById('waiting-box').style.display = '';
document.getElementById('card-form-container').style.display = 'none';
document.getElementById('payu-card-form').submit();
} else {
var errorMessage = "{l s='An error occurred while trying to use the card' mod='payu'}:<br>";
result.error.messages.forEach(function(error) {
errorMessage += '<strong>' + error.message + '<strong><br>';
});
showMessageBox(errorMessage);
secureFormNumber.update({ disabled: false });
secureFormDate.update({ disabled: false });
secureFormCvv.update({ disabled: false });
}
});
} catch(e) {
showMessageBox(e.message);
}
});
function calculateProfile() {
if (window.innerWidth <= 290) {
return 'widthLt290';
} else if (window.innerWidth <= 340) {
return 'widthLt340';
}
return 'widthGt340';
}
function secureFormResize() {
var newProfile = calculateProfile();
if (newProfile !== secureFormOptions.profile) {
secureFormOptions.profile = newProfile;
secureFormNumber.update(secureFormOptions.profiles[secureFormOptions.profile]);
secureFormDate.update(secureFormOptions.profiles[secureFormOptions.profile]);
secureFormCvv.update(secureFormOptions.profiles[secureFormOptions.profile]);
}
}
function showMessageBox(message) {
responseBox.innerHTML = message;
responseBox.style.display = '';
}
function hideMessageBox() {
responseBox.innerHTML = '';
responseBox.style.display = 'none';
}
})();
</script>

View File

@@ -0,0 +1,26 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2017 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{capture name=path}{l s='Pay with PayU' mod='payu'}{/capture}
<div class="box clearfix">
<img src="{$payuLogo}"> {l s='Thanks for choosing PayU payment' mod='payu'}
<h2 style="margin: 30px 0">
{l s='Order status' mod='payu'} {$orderPublicId} - {$orderStatus} <br/>
</h2>
{$HOOK_ORDER_CONFIRMATION nofilter}
{$HOOK_PAYMENT_RETURN nofilter}
<a class="button btn btn-default button-medium pull-right" href="{$redirectUrl}">
<span>
{l s='Order details' mod='payu'}
<i class="icon-chevron-right"></i>
</span>
</a>
</div>

View File

@@ -0,0 +1,30 @@
{*
* @author PayU
* @copyright Copyright (c) 2014-2017 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
{extends file=$layout}
{block name='content'}
<section id="main">
<div class="text-xs-center">
<img src="{$payuLogo}"> {l s='Thanks for choosing PayU payment' mod='payu'}
<h2 style="margin: 30px 0">
{l s='Order status' mod='payu'} {$orderPublicId} - {$orderStatus} <br/>
</h2>
{$HOOK_ORDER_CONFIRMATION nofilter}
{$HOOK_PAYMENT_RETURN nofilter}
<p class="cart_navigation">
<a class="btn btn-primary" href="{$redirectUrl}">
{l s='Order details' mod='payu'}
</a>
</p>
</div>
</section>
{/block}

View File

@@ -0,0 +1,28 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<span style="display: block; margin-top: 10px;">
<span id="payu-installment-cart-summary"></span>
</span>
<script type="text/javascript" class="payu-script-tag">
document.addEventListener("DOMContentLoaded", function (event) {
openpayu.options.creditAmount ={$cart_total_amount|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installment-cart-summary');
});
if (document.getElementById("payu-installment-cart-summary").childNodes.length == 0 &&
typeof openpayu !== 'undefined' &&
openpayu != null) {
openpayu.options.creditAmount ={$cart_total_amount|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installment-cart-summary');
}
</script>

View File

@@ -0,0 +1,23 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<div class="payu-installment-panel">
<span id="payu-installment-cart-total"></span>
<script type="text/javascript" class="payu-script-tag">
document.addEventListener("DOMContentLoaded", function (event) {
openpayu.options.creditAmount ={$cart_total_amount|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installment-cart-total');
});
</script>
</div>
<hr class="separator payu-separator-reset">
<p></p>

View File

@@ -0,0 +1,22 @@
<div class="payu-marker-class payu-method-description payu-checkout-installment">
<img style="width: 121px; margin-top:-20px;" src="{$payu_installment_img}" />
<p>
<span id='payu-installments-mini-cart'></span>
<script type='text/javascript' class="payu-script-tag" >
document.addEventListener("DOMContentLoaded", function(event) {
openpayu.options.creditAmount ={$total_price};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installments-mini-cart');
});
</script>
</p>
<p>
{l s='Order will be done after positive decision' mod='payu'}
</p>
</div>
<script type="text/javascript">
(function () {
window.payuPaymentLoaded = true;
})();
</script>

View File

@@ -0,0 +1,22 @@
<?php
/**
* PayU
*
* @author PayU
* @copyright Copyright (c) 2014 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
* http://openpayu.com
* http://twitter.com/openpayu
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../');
exit;

View File

@@ -0,0 +1,80 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2016 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<fieldset class="payu-payment-fieldset-1-6">
<legend class="payu-payment-legend-1-6">
<span class='logo' />
</legend>
{if $showCardPayment == true}
<div class="row">
<div class="col-xs-12">
<p class="payment_module">
<a class="payu payu_card" href="{$cardActionUrl|escape:'htmlall':'UTF-8'}"
title="{l s='Pay by card' mod='payu'}">
{l s='Pay by card' mod='payu'}
</a>
</p>
</div>
</div>
{/if}
{if $payu_later_twisto_available == true}
<div class="row">
<div class="col-xs-12">
<div class="payu-payment-credit-later-twisto-tile" onclick="location.href='{$creditPayLaterTwistoActionUrl|escape:'htmlall':'UTF-8'}'"
title="{l s='Pay later with Twisto' mod='payu'}">
{l s='Pay later with Twisto' mod='payu'}
</div>
</div>
</div>
{/if}
<div class="row">
<div class="col-xs-12">
<p class="payment_module payment_payu">
{if $showCardPayment == true}
<a class="payu" href="{$actionUrl|escape:'htmlall':'UTF-8'}"
title="{l s='Pay by online transfer' mod='payu'}">
{l s='Pay by online transfer' mod='payu'}
</a>
{else}
<a class="payu" href="{$actionUrl|escape:'htmlall':'UTF-8'}"
title="{l s='Pay by online transfer or card' mod='payu'}">
{l s='Pay by online transfer or card' mod='payu'}
</a>
{/if}
</p>
</div>
</div>
{if $credit_available == true}
<div class="row">
<div class="col-xs-12">
<div class="payu-payment-credit-installment-tile" onclick="location.href='{$creditActionUrl|escape:'htmlall':'UTF-8'}'"
title="{l s='Pay online in installments' mod='payu'}">
{l s='Pay online in installments' mod='payu'}
<span id="payu-installment-cart-summary" class="payu-installment-cart-summary"></span>
<script type="text/javascript" class="payu-script-tag" >
document.addEventListener("DOMContentLoaded", function (event) {
openpayu.options.creditAmount ={$cart_total_amount|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installment-cart-summary');
});
if (document.getElementById("payu-installment-cart-summary").childNodes.length == 0 &&
typeof openpayu !== 'undefined' &&
openpayu != null) {
openpayu.options.creditAmount ={$cart_total_amount|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('#payu-installment-cart-summary');
}
</script>
</div>
</div>
</div>
{/if}
</fieldset>

View File

@@ -0,0 +1,30 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2018 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<span class="payu-installment-price-listing">
<span style="display: block;" class="payu-installment-mini-{$product_id|md5}"></span>
</span>
<script type="text/javascript" class="payu-script-tag">
document.addEventListener("DOMContentLoaded", function (event) {
$(".products").find(".payu-installment-price-listing").parent().css("margin-top", "-7px");
$(".products").find(".payu-installment-price-listing").parent().prev().css("margin-top", "7px");
$(".products").find(".payu-installment-price-listing > span").css("margin-top", "-2px");
openpayu.options.creditAmount ={$product_price|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('.payu-installment-mini-{$product_id|md5}');
});
if (typeof openpayu !== 'undefined') {
openpayu.options.creditAmount ={$product_price|floatval};
openpayu.options.showLongDescription = true;
openpayu.options.lang = 'pl';
OpenPayU.Installments.miniInstallment('.payu-installment-mini-{$product_id|md5}');
}
</script>

View File

@@ -0,0 +1,25 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2016 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<div class="row" id="payuRetryPayment">
<div class="col-xs-12">
<p class="payment_module">
<a class="payu" href="{$payuActionUrl|escape:'htmlall':'UTF-8'}" title="{l s='Retry pay with PayU' mod='payu'}">
<img src="{$payuImage|escape:'htmlall':'UTF-8'}" alt="{l s='Retry pay with PayU' mod='payu'}" />
{l s='Retry pay with PayU' mod='payu'}
</a>
</p>
</div>
</div>
<script>
$(document).ready(function() {
$('#payuRetryPayment').insertAfter($('.info-order').first());
});
</script>

View File

@@ -0,0 +1,18 @@
{*
* PayU
*
* @author PayU
* @copyright Copyright (c) 2016 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
*}
<div class="box" id="payuRetryPayment17">
<p class="payment_module_17">
<a class="payu" href="{$payuActionUrl|escape:'htmlall':'UTF-8'}" title="{l s='Retry pay with PayU' mod='payu'}">
<img src="{$payuImage|escape:'htmlall':'UTF-8'}" alt="{l s='Retry pay with PayU' mod='payu'}" />
{l s='Retry pay with PayU' mod='payu'}
</a>
</p>
</div>

View File

@@ -0,0 +1,22 @@
<?php
/**
* PayU
*
* @author PayU
* @copyright Copyright (c) 2014 PayU
* @license http://opensource.org/licenses/LGPL-3.0 Open Software License (LGPL 3.0)
*
* http://www.payu.com
* http://openpayu.com
* http://twitter.com/openpayu
*/
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../../../');
exit;