Allopass_Hipay - Version 1.4.0

Version Notes

Download this release

Release Info

Developer Kassim Belghait
Extension Allopass_Hipay
Version 1.4.0
Comparing to
See all releases


Code changes from version 1.3.10 to 1.4.0

app/code/community/Allopass/Hipay/Block/Checkout/Tokenjs.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Allopass_Hipay_Block_Checkout_Tokenjs extends Mage_Core_Block_Template
3
+ {
4
+
5
+ /**
6
+ * Check if credentials are enter in configuration
7
+ */
8
+ function hasPublicCredentials(){
9
+ return ($this->getConfig()->getApiTokenJSUsername() && $this->getConfig()->getApiTokenJSPublickey())
10
+ || ($this->getConfig()->getApiTokenJSUsernameTest() && $this->getConfig()->getApiTokenJSPublickeyTest());
11
+ }
12
+
13
+
14
+ /**
15
+ *
16
+ * @return Allopass_Hipay_Model_Config
17
+ */
18
+ protected function getConfig()
19
+ {
20
+ return Mage::getSingleton('hipay/config');
21
+ }
22
+
23
+ protected function getHipayMethodsData(){
24
+ //Select only method with cancel orders enabled
25
+ $methodsData = array();
26
+ foreach (Mage::helper('hipay')->getHipayMethods() as $code=>$model)
27
+ {
28
+ $methodInstance = Mage::getModel($model);
29
+ $methodsData[$code] = array(
30
+ 'is_test_mode' => $methodInstance->getConfigData('is_test_mode'),
31
+ );
32
+ }
33
+ return $methodsData;
34
+ }
35
+
36
+ /**
37
+ * Retrieve array of credit card types
38
+ *
39
+ * @return array
40
+ */
41
+ public function getCcTypes()
42
+ {
43
+ $_types = Mage::getConfig()->getNode('global/payment_hipay/cc/types')->asArray();
44
+
45
+ uasort($_types, array('Allopass_Hipay_Model_Config', 'compareCcTypes'));
46
+
47
+ $types = array();
48
+ foreach ($_types as $data) {
49
+ if (isset($data['code']) && isset($data['name'])) {
50
+ $types[$data['code']] = $data['name'];
51
+ }
52
+ }
53
+ return $types;
54
+ }
55
+
56
+ /**
57
+ * Retrive config json
58
+ *
59
+ * @return string
60
+ */
61
+ public function getConfigJson()
62
+ {
63
+ $data = array(
64
+ "api_tokenjs_username"=>$this->getConfig()->getApiTokenJSUsername(),
65
+ "api_tokenjs_publickey"=>$this->getConfig()->getApiTokenJSPublickey(),
66
+ "api_tokenjs_username_test"=>$this->getConfig()->getApiTokenJSUsernameTest(),
67
+ "api_tokenjs_publickey_test"=>$this->getConfig()->getApiTokenJSPublickeyTest(),
68
+ "methods" => $this->getHipayMethodsData(),
69
+
70
+ );
71
+
72
+ return Mage::helper('core')->jsonEncode($data);
73
+ }
74
+
75
+ }
app/code/community/Allopass/Hipay/Model/Api/Request.php CHANGED
@@ -116,7 +116,7 @@ class Allopass_Hipay_Model_Api_Request
116
  $config['curloptions'][CURLOPT_PROXYUSERPWD] = $proxy_user.':'.$proxy_pass;
117
  }
118
  }
119
- Mage::log($config, null, 'curl.log');
120
  // ----------------------------------------------------------------------
121
 
122
  try {
116
  $config['curloptions'][CURLOPT_PROXYUSERPWD] = $proxy_user.':'.$proxy_pass;
117
  }
118
  }
119
+ // Mage::log($config, null, 'curl.log');
120
  // ----------------------------------------------------------------------
121
 
122
  try {
app/code/community/Allopass/Hipay/Model/Config.php CHANGED
@@ -5,10 +5,18 @@ class Allopass_Hipay_Model_Config extends Varien_Object
5
 
6
  const API_PASSWORD = 'api_password';
7
 
 
 
 
 
8
  const API_USERNAME_TEST = "api_username_test";
9
 
10
  const API_PASSWORD_TEST = 'api_password_test';
11
 
 
 
 
 
12
  const SECRET_PASSPHRASE = 'secret_passphrase';
13
 
14
  const SECRET_PASSPHRASE_TEST = 'secret_passphrase_test';
@@ -76,6 +84,16 @@ class Allopass_Hipay_Model_Config extends Varien_Object
76
  return $this->getConfigData(self::API_PASSWORD,$storeId);
77
  }
78
 
 
 
 
 
 
 
 
 
 
 
79
  public function getApiUsernameTest($storeId =null)
80
  {
81
  return $this->getConfigData(self::API_USERNAME_TEST,$storeId);
@@ -86,6 +104,15 @@ class Allopass_Hipay_Model_Config extends Varien_Object
86
  return $this->getConfigData(self::API_PASSWORD_TEST,$storeId);
87
  }
88
 
 
 
 
 
 
 
 
 
 
89
  public function getVaultEndpoint($storeId=null)
90
  {
91
  return $this->getConfigData(self::VAULT_ENDPOINT,$storeId);
5
 
6
  const API_PASSWORD = 'api_password';
7
 
8
+ const API_TOKENJS_USERNAME = 'api_tokenjs_username';
9
+
10
+ const API_TOKENJS_PUBLICKEY = 'api_tokenjs_publickey';
11
+
12
  const API_USERNAME_TEST = "api_username_test";
13
 
14
  const API_PASSWORD_TEST = 'api_password_test';
15
 
16
+ const API_TOKENJS_USERNAME_TEST = 'api_tokenjs_username_test';
17
+
18
+ const API_TOKENJS_PUBLICKEY_TEST = 'api_tokenjs_publickey_test';
19
+
20
  const SECRET_PASSPHRASE = 'secret_passphrase';
21
 
22
  const SECRET_PASSPHRASE_TEST = 'secret_passphrase_test';
84
  return $this->getConfigData(self::API_PASSWORD,$storeId);
85
  }
86
 
87
+ public function getApiTokenJSUsername($storeId=null)
88
+ {
89
+ return $this->getConfigData(self::API_TOKENJS_USERNAME,$storeId);
90
+ }
91
+
92
+ public function getApiTokenJSPublickey($storeId=null)
93
+ {
94
+ return $this->getConfigData(self::API_TOKENJS_PUBLICKEY,$storeId);
95
+ }
96
+
97
  public function getApiUsernameTest($storeId =null)
98
  {
99
  return $this->getConfigData(self::API_USERNAME_TEST,$storeId);
104
  return $this->getConfigData(self::API_PASSWORD_TEST,$storeId);
105
  }
106
 
107
+ public function getApiTokenJSUsernameTest($storeId=null)
108
+ {
109
+ return $this->getConfigData(self::API_TOKENJS_USERNAME_TEST,$storeId);
110
+ }
111
+ public function getApiTokenJSPublickeyTest($storeId=null)
112
+ {
113
+ return $this->getConfigData(self::API_TOKENJS_PUBLICKEY_TEST,$storeId);
114
+ }
115
+
116
  public function getVaultEndpoint($storeId=null)
117
  {
118
  return $this->getConfigData(self::VAULT_ENDPOINT,$storeId);
app/code/community/Allopass/Hipay/Model/Method/Abstract.php CHANGED
@@ -97,11 +97,13 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
97
  $oneclickMode = $data->getData($this->getCode() . '_oneclick');
98
  $oneclickCard = $data->getData($this->getCode() . '_oneclick_card');
99
  $splitPaymentId = $data->getData($this->getCode() . '_split_payment_id');
 
100
 
101
  $info->setAdditionalInformation('create_oneclick', $oneclickMode == "create_oneclick" ? 1 : 0)
102
  ->setAdditionalInformation('use_oneclick',$oneclickMode == "use_oneclick" ? 1 : 0)
103
  ->setAdditionalInformation('selected_oneclick_card',$oneclickCard == "" ? 0 : $oneclickCard)
104
- ->setAdditionalInformation('split_payment_id',$splitPaymentId != "" ? $splitPaymentId : 0);
 
105
 
106
 
107
  }
@@ -467,7 +469,7 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
467
  $this->getHelper()->insertSplitPayment($order, $profile,$customer->getId(),$token);
468
  }
469
 
470
- if ($amount != $order->getBaseGrandTotal() && !$profile) {
471
 
472
  $transactionId = $gatewayResponse->getTransactionReference();
473
  $order->addStatusHistoryComment(Mage::helper('hipay')->__('Notification "Capture". Capture issued by merchant. Registered notification about captured amount of %s. Transaction ID: "%s". Invoice has not been created. Please create offline Invoice.',
@@ -560,6 +562,7 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
560
 
561
  break;
562
  case 125: //Refund
 
563
 
564
  if($order->hasCreditmemos())
565
  {
@@ -577,7 +580,10 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
577
  }
578
 
579
  $cm_amount_check = round($gatewayResponse->getRefundedAmount() - $total_already_refunded,2);
580
-
 
 
 
581
 
582
  /* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
583
  foreach ($order->getCreditmemosCollection() as $creditmemo)
@@ -589,12 +595,14 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
589
 
590
  $message = Mage::helper("hipay")->__('Refund accepted by Hipay.');
591
 
592
- $order->addStatusToHistory($order->getStatus(), $message);
593
 
594
  Mage::getModel('core/resource_transaction')
595
  ->addObject($creditmemo)->addObject($creditmemo->getOrder())
596
  ->save();
597
 
 
 
598
  }
599
  }
600
  }
@@ -608,24 +616,6 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
608
  $order->getBaseCurrency()->formatTxt($amount), $transactionId), false);
609
  return $this;
610
  }
611
-
612
-
613
- /** @var $service Mage_Sales_Model_Service_Order */
614
- /*$service = Mage::getModel('sales/service_order', $order);
615
-
616
- $creditmemo = $service->prepareInvoiceCreditmemo($order->getInvoiceCollection()->getFirstItem());
617
- foreach ($creditmemo->getAllItems() as $creditmemoItem) {
618
- $creditmemoItem->setBackToStock(Mage::helper('cataloginventory')->isAutoReturnEnabled());
619
- }
620
- $creditmemo->setOfflineRequested(true);
621
- $creditmemo->setState(Mage_Sales_Model_Order_Creditmemo::STATE_REFUNDED);
622
- $transactionSave = Mage::getModel('core/resource_transaction')
623
- ->addObject($creditmemo)
624
- ->addObject($creditmemo->getOrder());
625
- if ($creditmemo->getInvoice()) {
626
- $transactionSave->addObject($creditmemo->getInvoice());
627
- }
628
- $transactionSave->save();*/
629
 
630
  $amountTxt = $order->getBaseCurrency()->formatTxt($amount);
631
 
@@ -954,6 +944,7 @@ abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_M
954
  {
955
  case "124":
956
  case "125":
 
957
 
958
  /* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
959
  $creditmemo = $payment->getCreditmemo();
97
  $oneclickMode = $data->getData($this->getCode() . '_oneclick');
98
  $oneclickCard = $data->getData($this->getCode() . '_oneclick_card');
99
  $splitPaymentId = $data->getData($this->getCode() . '_split_payment_id');
100
+ $token = $data->getData($this->getCode() . '_cc_token');
101
 
102
  $info->setAdditionalInformation('create_oneclick', $oneclickMode == "create_oneclick" ? 1 : 0)
103
  ->setAdditionalInformation('use_oneclick',$oneclickMode == "use_oneclick" ? 1 : 0)
104
  ->setAdditionalInformation('selected_oneclick_card',$oneclickCard == "" ? 0 : $oneclickCard)
105
+ ->setAdditionalInformation('split_payment_id',$splitPaymentId != "" ? $splitPaymentId : 0)
106
+ ->setAdditionalInformation('token',$token != "" ? $token : "");
107
 
108
 
109
  }
469
  $this->getHelper()->insertSplitPayment($order, $profile,$customer->getId(),$token);
470
  }
471
 
472
+ if ($amount != $order->getBaseGrandTotal() && !$profile && $order->getState() != Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW) {
473
 
474
  $transactionId = $gatewayResponse->getTransactionReference();
475
  $order->addStatusHistoryComment(Mage::helper('hipay')->__('Notification "Capture". Capture issued by merchant. Registered notification about captured amount of %s. Transaction ID: "%s". Invoice has not been created. Please create offline Invoice.',
562
 
563
  break;
564
  case 125: //Refund
565
+ case 126: //Partially Refund
566
 
567
  if($order->hasCreditmemos())
568
  {
580
  }
581
 
582
  $cm_amount_check = round($gatewayResponse->getRefundedAmount() - $total_already_refunded,2);
583
+ $status = $order->getStatus();
584
+ if(round($gatewayResponse->getRefundedAmount(),2) < round($order->getGrandTotal(),2)){
585
+ $status = self::STATUS_PARTIAL_REFUND;
586
+ }
587
 
588
  /* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
589
  foreach ($order->getCreditmemosCollection() as $creditmemo)
595
 
596
  $message = Mage::helper("hipay")->__('Refund accepted by Hipay.');
597
 
598
+ $order->addStatusToHistory($status, $message);
599
 
600
  Mage::getModel('core/resource_transaction')
601
  ->addObject($creditmemo)->addObject($creditmemo->getOrder())
602
  ->save();
603
 
604
+ break;
605
+
606
  }
607
  }
608
  }
616
  $order->getBaseCurrency()->formatTxt($amount), $transactionId), false);
617
  return $this;
618
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
619
 
620
  $amountTxt = $order->getBaseCurrency()->formatTxt($amount);
621
 
944
  {
945
  case "124":
946
  case "125":
947
+ case "126":
948
 
949
  /* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
950
  $creditmemo = $payment->getCreditmemo();
app/code/community/Allopass/Hipay/Model/Method/Cc.php CHANGED
@@ -23,7 +23,6 @@ class Allopass_Hipay_Model_Method_Cc extends Allopass_Hipay_Model_Method_Abstrac
23
  $data = new Varien_Object($data);
24
  }
25
 
26
- Mage::log($data,null,'debug_data.log');
27
  $info = $this->getInfoInstance();
28
  $info->setCcType($data->getData($this->getCode() . '_cc_type'))
29
  ->setCcOwner($data->getData($this->getCode() . '_cc_owner'))
@@ -75,7 +74,6 @@ class Allopass_Hipay_Model_Method_Cc extends Allopass_Hipay_Model_Method_Abstrac
75
  }
76
 
77
  /**
78
- *
79
  * @param Mage_Sales_Model_Order_Payment $payment
80
  * @return array
81
  */
@@ -91,7 +89,8 @@ class Allopass_Hipay_Model_Method_Cc extends Allopass_Hipay_Model_Method_Abstrac
91
  //Add card holder
92
  $billing = $payment->getOrder()->getBillingAddress();
93
  $defaultOwner = $billing->getFirstname() && $billing->getLastname() ? $billing->getFirstname() . ' ' . $billing->getLastname() : $billing->getEmail();
94
- $params['card_holder'] = $payment->getCcOwner() ? $payment->getCcOwner() : $defaultOwner;
 
95
 
96
  $this->_debug($params);
97
 
@@ -111,6 +110,12 @@ class Allopass_Hipay_Model_Method_Cc extends Allopass_Hipay_Model_Method_Abstrac
111
  {
112
  /* @var $payment Mage_Sales_Model_Order_Payment */
113
  $payment = $this->getInfoInstance();
 
 
 
 
 
 
114
  $order = $payment->getOrder();
115
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
116
  $token = "";
23
  $data = new Varien_Object($data);
24
  }
25
 
 
26
  $info = $this->getInfoInstance();
27
  $info->setCcType($data->getData($this->getCode() . '_cc_type'))
28
  ->setCcOwner($data->getData($this->getCode() . '_cc_owner'))
74
  }
75
 
76
  /**
 
77
  * @param Mage_Sales_Model_Order_Payment $payment
78
  * @return array
79
  */
89
  //Add card holder
90
  $billing = $payment->getOrder()->getBillingAddress();
91
  $defaultOwner = $billing->getFirstname() && $billing->getLastname() ? $billing->getFirstname() . ' ' . $billing->getLastname() : $billing->getEmail();
92
+
93
+ $params['card_holder'] = $payment->getCcOwner() ? $payment->getCcOwner() : $defaultOwner;
94
 
95
  $this->_debug($params);
96
 
110
  {
111
  /* @var $payment Mage_Sales_Model_Order_Payment */
112
  $payment = $this->getInfoInstance();
113
+
114
+ //Token is already generate by JS Tokenization
115
+ if($payment->getAdditionalInformation('token') != ""){
116
+ return $this;
117
+ }
118
+
119
  $order = $payment->getOrder();
120
  $customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
121
  $token = "";
app/code/community/Allopass/Hipay/Model/Observer.php CHANGED
@@ -108,7 +108,8 @@ class Allopass_Hipay_Model_Observer
108
  $splitPayments = Mage::getModel('hipay/splitPayment')->getCollection()
109
  ->addFieldToFilter('status',array('in'=>array(Allopass_Hipay_Model_SplitPayment::SPLIT_PAYMENT_STATUS_PENDING,
110
  Allopass_Hipay_Model_SplitPayment::SPLIT_PAYMENT_STATUS_FAILED)))
111
- ->addFieldTofilter('date_to_pay',array('to' => $date->toString('Y-MM-dd 00:00:00')));
 
112
 
113
 
114
  foreach ($splitPayments as $splitPayment) {
@@ -167,17 +168,27 @@ class Allopass_Hipay_Model_Observer
167
 
168
  }
169
  }
170
-
 
 
 
 
171
  public function orderCanRefund($observer)
172
  {
173
  /* @var $order Mage_Sales_Model_Order */
174
  $order = $observer->getOrder();
 
175
  if($order->getStatus() == Allopass_Hipay_Model_Method_Abstract::STATUS_CAPTURE_REQUESTED){
176
 
177
- //$order->setForcedCanCreditmemo(false);
 
178
  }
179
-
180
- if($order->getPayment() && strpos($order->getPayment()->getMethod(), 'hipay') !== false)
 
 
 
 
181
  {
182
 
183
  //If configuration validate order with status 117 (capture requested) and Notification 118 (Captured) is not received
@@ -196,14 +207,28 @@ class Allopass_Hipay_Model_Observer
196
 
197
  if($histories->count() < 1){
198
 
199
- //$order->setForcedCanCreditmemo(false);
 
200
  }
201
  }
202
 
203
- if($order->getPayment()->getMethod() == 'hipay_cc' && strtolower($order->getPayment()->getCcType()) == 'bcmc')
204
- {
205
- //$order->setForcedCanCreditmemo(false);
206
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  }
208
 
209
 
108
  $splitPayments = Mage::getModel('hipay/splitPayment')->getCollection()
109
  ->addFieldToFilter('status',array('in'=>array(Allopass_Hipay_Model_SplitPayment::SPLIT_PAYMENT_STATUS_PENDING,
110
  Allopass_Hipay_Model_SplitPayment::SPLIT_PAYMENT_STATUS_FAILED)))
111
+ ->addFieldTofilter('date_to_pay',array('to' => $date->toString('Y-MM-dd 00:00:00')))
112
+ ->addFieldTofilter('attempts',array('lteq' => 3));
113
 
114
 
115
  foreach ($splitPayments as $splitPayment) {
168
 
169
  }
170
  }
171
+ /**
172
+ * Disallow refund action in some cases
173
+ * Used only for layout render
174
+ * @param Varien_Object $observer
175
+ */
176
  public function orderCanRefund($observer)
177
  {
178
  /* @var $order Mage_Sales_Model_Order */
179
  $order = $observer->getOrder();
180
+
181
  if($order->getStatus() == Allopass_Hipay_Model_Method_Abstract::STATUS_CAPTURE_REQUESTED){
182
 
183
+ $order->setForcedCanCreditmemo(false);
184
+ $order->setForcedCanCreditmemoFromHipay(true);
185
  }
186
+ elseif($order->getPayment()->getMethod() == 'hipay_cc' && strtolower($order->getPayment()->getCcType()) == 'bcmc')
187
+ {
188
+ $order->setForcedCanCreditmemo(false);
189
+ $order->setForcedCanCreditmemoFromHipay(true);
190
+ }
191
+ elseif($order->getPayment() && strpos($order->getPayment()->getMethod(), 'hipay') !== false)
192
  {
193
 
194
  //If configuration validate order with status 117 (capture requested) and Notification 118 (Captured) is not received
207
 
208
  if($histories->count() < 1){
209
 
210
+ $order->setForcedCanCreditmemo(false);
211
+ $order->setForcedCanCreditmemoFromHipay(true);
212
  }
213
  }
214
 
215
+
216
+ }
217
+
218
+ }
219
+
220
+ /**
221
+ * Used to unset ForcedCanCreditmemo attributs from the order
222
+ * Without restore order status is set to "C"
223
+ * @param Varien_Object $observer
224
+ */
225
+ public function unsetOrderCanRefund($observer){
226
+ /* @var $order Mage_Sales_Model_Order */
227
+ $order = $observer->getOrder();
228
+
229
+ if($order->getForcedCanCreditmemoFromHipay()){
230
+ $order->unsetData('forced_can_creditmemo');
231
+ $order->unsetData('forced_can_creditmemo_from_hipay');
232
  }
233
 
234
 
app/code/community/Allopass/Hipay/Model/SplitPayment.php CHANGED
@@ -39,22 +39,37 @@ class Allopass_Hipay_Model_SplitPayment extends Mage_Core_Model_Abstract
39
  Mage::throwException("Split Payment not found!");
40
  }
41
 
42
- $state = $this->getMethodInstance()->paySplitPayment($this);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
- switch ($state)
45
- {
46
- case Allopass_Hipay_Model_Method_Abstract::STATE_COMPLETED:
47
- case Allopass_Hipay_Model_Method_Abstract::STATE_FORWARDING:
48
- case Allopass_Hipay_Model_Method_Abstract::STATE_PENDING:
49
- $this->setStatus(self::SPLIT_PAYMENT_STATUS_COMPLETE);
50
- break;
51
- case Allopass_Hipay_Model_Method_Abstract::STATE_DECLINED:
52
- case Allopass_Hipay_Model_Method_Abstract::STATE_ERROR:
53
- default:
54
  $this->setStatus(self::SPLIT_PAYMENT_STATUS_FAILED);
55
- $this->sendErrorEmail();
56
- break;
57
-
 
 
 
 
 
58
  }
59
 
60
  $this->setAttempts($this->getAttempts() + 1);
39
  Mage::throwException("Split Payment not found!");
40
  }
41
 
42
+ try {
43
+
44
+ $state = $this->getMethodInstance()->paySplitPayment($this);
45
+ switch ($state)
46
+ {
47
+ case Allopass_Hipay_Model_Method_Abstract::STATE_COMPLETED:
48
+ case Allopass_Hipay_Model_Method_Abstract::STATE_FORWARDING:
49
+ case Allopass_Hipay_Model_Method_Abstract::STATE_PENDING:
50
+ $this->setStatus(self::SPLIT_PAYMENT_STATUS_COMPLETE);
51
+ break;
52
+ case Allopass_Hipay_Model_Method_Abstract::STATE_DECLINED:
53
+ case Allopass_Hipay_Model_Method_Abstract::STATE_ERROR:
54
+ default:
55
+ $this->setStatus(self::SPLIT_PAYMENT_STATUS_FAILED);
56
+ $this->sendErrorEmail();
57
+ break;
58
+
59
+ }
60
 
61
+ } catch (Exception $e) {
62
+
63
+ if($e->getMessage() != 'Code: 3010004. Message: This order has already been paid'){
 
 
 
 
 
 
 
64
  $this->setStatus(self::SPLIT_PAYMENT_STATUS_FAILED);
65
+ $this->setAttempts($this->getAttempts() + 1);
66
+ $this->save();
67
+ throw $e;
68
+ }
69
+ else{ //Order is already paid, so we set complete status
70
+ $this->setStatus(self::SPLIT_PAYMENT_STATUS_COMPLETE);
71
+ }
72
+
73
  }
74
 
75
  $this->setAttempts($this->getAttempts() + 1);
app/code/community/Allopass/Hipay/etc/config.xml CHANGED
@@ -1,8 +1,7 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
  <modules>
4
  <Allopass_Hipay>
5
- <version>1.3.10</version>
6
  </Allopass_Hipay>
7
  </modules>
8
  <global>
@@ -317,7 +316,7 @@
317
  </arrange_order_view>
318
  </observers>
319
  </adminhtml_widget_container_html_before>
320
- <sales_order_load_after>
321
  <observers>
322
  <order_can_refund>
323
  <class>hipay/observer</class>
@@ -325,6 +324,14 @@
325
  </order_can_refund>
326
  </observers>
327
  </sales_order_load_after>
 
 
 
 
 
 
 
 
328
  </events>
329
  </adminhtml>
330
  <default>
@@ -926,7 +933,7 @@
926
  <crontab>
927
  <jobs>
928
  <hipay_pay_split_payment>
929
- <schedule><cron_expr>0 1 * * *</cron_expr></schedule>
930
  <run><model>hipay/observer::paySplitPayments</model></run>
931
  </hipay_pay_split_payment>
932
  <clean_orders_hipay_in_pending>
 
1
  <config>
2
  <modules>
3
  <Allopass_Hipay>
4
+ <version>1.4.0</version>
5
  </Allopass_Hipay>
6
  </modules>
7
  <global>
316
  </arrange_order_view>
317
  </observers>
318
  </adminhtml_widget_container_html_before>
319
+ <sales_order_load_after>
320
  <observers>
321
  <order_can_refund>
322
  <class>hipay/observer</class>
324
  </order_can_refund>
325
  </observers>
326
  </sales_order_load_after>
327
+ <sales_order_save_before>
328
+ <observers>
329
+ <order_unset_can_refund>
330
+ <class>hipay/observer</class>
331
+ <method>unsetOrderCanRefund</method>
332
+ </order_unset_can_refund>
333
+ </observers>
334
+ </sales_order_save_before>
335
  </events>
336
  </adminhtml>
337
  <default>
933
  <crontab>
934
  <jobs>
935
  <hipay_pay_split_payment>
936
+ <schedule><cron_expr>*/5 * * * *</cron_expr></schedule>
937
  <run><model>hipay/observer::paySplitPayments</model></run>
938
  </hipay_pay_split_payment>
939
  <clean_orders_hipay_in_pending>
app/code/community/Allopass/Hipay/etc/system.xml CHANGED
@@ -36,6 +36,22 @@
36
  <show_in_website>1</show_in_website>
37
  <show_in_store>1</show_in_store>
38
  </api_password>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  <secret_passphrase translate="label comment">
40
  <label>Secret passphrase (production account)</label>
41
  <comment>The same of your HiPay Fullservice production account</comment>
@@ -63,6 +79,22 @@
63
  <show_in_website>1</show_in_website>
64
  <show_in_store>1</show_in_store>
65
  </api_password_test>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  <secret_passphrase_test translate="label comment">
67
  <label>Secret passphrase (test account)</label>
68
  <comment>The same of your HiPay Fullservice test account</comment>
36
  <show_in_website>1</show_in_website>
37
  <show_in_store>1</show_in_store>
38
  </api_password>
39
+ <api_tokenjs_username translate="label">
40
+ <label>Api TokenJS Username (production account)</label>
41
+ <frontend_type>text</frontend_type>
42
+ <sort_order>22</sort_order>
43
+ <show_in_default>1</show_in_default>
44
+ <show_in_website>1</show_in_website>
45
+ <show_in_store>1</show_in_store>
46
+ </api_tokenjs_username>
47
+ <api_tokenjs_publickey translate="label">
48
+ <label>Api TokenJS Password/Public Key (production account)</label>
49
+ <frontend_type>text</frontend_type>
50
+ <sort_order>23</sort_order>
51
+ <show_in_default>1</show_in_default>
52
+ <show_in_website>1</show_in_website>
53
+ <show_in_store>1</show_in_store>
54
+ </api_tokenjs_publickey>
55
  <secret_passphrase translate="label comment">
56
  <label>Secret passphrase (production account)</label>
57
  <comment>The same of your HiPay Fullservice production account</comment>
79
  <show_in_website>1</show_in_website>
80
  <show_in_store>1</show_in_store>
81
  </api_password_test>
82
+ <api_tokenjs_username_test translate="label">
83
+ <label>Api TokenJS Username (test account)</label>
84
+ <frontend_type>text</frontend_type>
85
+ <sort_order>45</sort_order>
86
+ <show_in_default>1</show_in_default>
87
+ <show_in_website>1</show_in_website>
88
+ <show_in_store>1</show_in_store>
89
+ </api_tokenjs_username_test>
90
+ <api_tokenjs_publickey_test translate="label">
91
+ <label>Api TokenJS Password/Public Key (test account)</label>
92
+ <frontend_type>text</frontend_type>
93
+ <sort_order>46</sort_order>
94
+ <show_in_default>1</show_in_default>
95
+ <show_in_website>1</show_in_website>
96
+ <show_in_store>1</show_in_store>
97
+ </api_tokenjs_publickey_test>
98
  <secret_passphrase_test translate="label comment">
99
  <label>Secret passphrase (test account)</label>
100
  <comment>The same of your HiPay Fullservice test account</comment>
app/design/frontend/base/default/layout/hipay.xml CHANGED
@@ -38,4 +38,15 @@
38
  <block type="hipay/card_edit" name="hipay.card.account.edit" template="hipay/card/form/edit.phtml" />
39
  </reference>
40
  </hipay_card_edit>
 
 
 
 
 
 
 
 
 
 
 
41
  </layout>
38
  <block type="hipay/card_edit" name="hipay.card.account.edit" template="hipay/card/form/edit.phtml" />
39
  </reference>
40
  </hipay_card_edit>
41
+
42
+ <!-- TOKENJS integration -->
43
+ <checkout_onepage_index>
44
+ <reference name="head">
45
+ <action method="addItem"><type>skin_js</type><name>js/hipay-fullservice-sdk.min.js</name></action>
46
+ </reference>
47
+ <reference name="content" >
48
+ <block type="hipay/checkout_tokenjs" template="hipay/checkout/tokenjs.phtml" />
49
+ </reference>
50
+ </checkout_onepage_index>
51
+
52
  </layout>
app/design/frontend/base/default/template/hipay/checkout/tokenjs.phtml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* @var $this Allopass_Hipay_Block_Checkout_Tokenjs */
3
+
4
+ if($this->hasPublicCredentials()):
5
+
6
+ ?>
7
+ <script type="text/javascript">
8
+
9
+ //Override save method to generate js token
10
+ Payment.prototype.save = function(){
11
+
12
+ var self = this;
13
+
14
+ if (checkout.loadWaiting!=false) return;
15
+ var validator = new Validation(this.form);
16
+ if (this.validate() && validator.validate()) {
17
+
18
+ checkout.setLoadWaiting('payment');
19
+
20
+ var paymentData = Form.serialize(this.form,{hash:true});
21
+ var method = paymentData["payment[method]"];
22
+
23
+
24
+ //Process Tokenization if method use API Mode (CC form)
25
+ if(method.search('hipay_cc') > -1 && paymentData["payment["+method+"_cc_number]"])
26
+ {
27
+ var params = {
28
+ card_number: paymentData["payment["+method+"_cc_number]"],
29
+ cvc: paymentData["payment["+method+"_cc_cid]"],
30
+ card_expiry_month: paymentData["payment["+method+"_cc_exp_month]"],
31
+ card_expiry_year: paymentData["payment["+method+"_cc_exp_year]"],
32
+ card_holder: paymentData["payment["+method+"_cc_owner]"] ? paymentData["payment["+method+"_cc_owner]"] : '',
33
+ multi_use: '0'
34
+ };
35
+
36
+ var config = <?php echo $this->getConfigJson() ?>;
37
+
38
+ if(config.methods[method].is_test_mode){
39
+ HiPay.setTarget('stage'); // default is production/live
40
+ config.api_tokenjs_username = config.api_tokenjs_username_test;
41
+ config.api_tokenjs_publickey = config.api_tokenjs_publickey_test;
42
+
43
+ }
44
+
45
+ // These are fake credentials, put your own credentials here (HiPay Fullservice back office > Integration > Security settings and create credentials with public visibility)
46
+ HiPay.setCredentials(config.api_tokenjs_username, config.api_tokenjs_publickey);
47
+
48
+ HiPay.create(params,
49
+
50
+ function(result) {
51
+
52
+ // The card has successfully been tokenized
53
+ var token = result.token;
54
+
55
+ //Write token value in input of type hidden
56
+ $("payment_form_" + method).insert({
57
+ bottom: new Element('input',{type:'hidden',name:'payment['+method+'_cc_token]',value:token})
58
+ });
59
+
60
+ savePayment(self);
61
+
62
+ },
63
+
64
+ function (errors) {
65
+
66
+ // An error occurred
67
+ if (typeof errors.message != "undefined") {
68
+ alert(errors.message.stripTags());
69
+ } else {
70
+ alert(Translator.translate("An error occurred with the request.").stripTags());
71
+ }
72
+ }
73
+ );
74
+
75
+
76
+ }
77
+ else{
78
+ savePayment(this);
79
+ }
80
+
81
+ }
82
+
83
+
84
+ function savePayment(paymentObj){
85
+ var request = new Ajax.Request(
86
+ paymentObj.saveUrl,
87
+ {
88
+ method:'post',
89
+ onComplete: paymentObj.onComplete,
90
+ onSuccess: paymentObj.onSave,
91
+ onFailure: checkout.ajaxFailure.bind(checkout),
92
+ parameters: Form.serialize(paymentObj.form)
93
+ }
94
+ );
95
+ }
96
+
97
+ }
98
+
99
+ </script>
100
+ <?php endif;?>
app/design/frontend/base/default/template/hipay/form/cc.phtml CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  $_code=$this->getMethodCode();
3
  $_cards = $this->getCards();
4
 
1
  <?php
2
+ /** @var $this Allopass_Hipay_Block_Form_Abstract */
3
  $_code=$this->getMethodCode();
4
  $_cards = $this->getCards();
5
 
package.xml CHANGED
@@ -1,2 +1,2 @@
1
  <?xml version="1.0"?>
2
- <package><name>Allopass_Hipay</name><version>1.3.10</version><stability>stable</stability><license>General Public License (GPL)</license><channel>community</channel><extends></extends><summary>Official HiPay Fullservice payment extension.</summary><description>HiPay Fullservice is the first payment platform oriented towards merchants that responds to all matters related to online payment: transaction processing, risk management, relationship management with banks and acquirers, financial reconciliation or even international expansion.</description><notes></notes><authors><author><name>Kassim Belghait</name><user>Sirateck</user><email>kassim@sirateck.com</email></author></authors><date>2016-11-04</date><time>7:06:53</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="Allopass"><dir name="Hipay"><dir name="Model"><file name="Card.php" hash="5d5ed0ece4cb9ef50bf445eee6911f8a"/><file name="Config.php" hash="58b729e16f5ac9ec28535013274d465a"/><file name="Observer.php" hash="9598049deaea0724b2170dc602bd69a7"/><file name="PaymentProfile.php" hash="002417022b9afb132e771bbb2eb09d1c"/><file name="Rule.php" hash="4cddad3f6cb38af59dc2726d80148f51"/><file name="SplitPayment.php" hash="245fda18c3c08b32a92a9667e939a62d"/><dir name="Api"><file name="Request.php" hash="1f5e5cfe58f56d57fb31d946cd355230"/><dir name="Response"><file name="Abstract.php" hash="a430ca978e61796696ae4ead61efdb60"/><file name="Error.php" hash="57386fde5e5993c1126418025093a58a"/><file name="Gateway.php" hash="49b0e43a55e223df601884cfd9a0d2c5"/><file name="Notification.php" hash="0f7373ec3435b477424352c058f42255"/><file name="Vault.php" hash="47b962a59c150ffd653ba4054bc053d0"/></dir><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Curl.php" hash="cebf9e03d310e65f23a2a4ddc980e26f"/><file name="Stream.php" hash="5a110dd1f33ee4c8319cec396fc4fa40"/></dir></dir></dir></dir><dir name="Rule"><file name="Config.php" hash="4034bf549bc274c836930a43d0ef8646"/><dir name="Condition"><file name="Address.php" hash="4180131479d72272c7b2c67534341dbc"/><file name="Combine.php" hash="e57da0bfd13c85721ef06d9f5c1d5a45"/><file name="Customer.php" hash="b847ff261e77565af4f64761d378de59"/><file name="Product.php" hash="5186cb9be313c7a772a11613ff4d1406"/><dir name="Product"><file name="Combine.php" hash="b99adc27124c3c6f56d04f0bcb5a42be"/><file name="Found.php" hash="bc266762458faaba326b7d7245b688a8"/><file name="Subselect.php" hash="5c0d482cddd69d82350bc5fec15c40b7"/></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="CcTypes.php" hash="916ab83c9e5e1ee18d488f42a090c524"/></dir></dir></dir><dir name="Method"><file name="Abstract.php" hash="04112d5488dc33fa9d19a95ebf35cef7"/><file name="Cbc.php" hash="49d1b0e2ad320c1a78043bb7231de930"/><file name="Cc.php" hash="93e46469c5d41a21f364b9aecb67bd73"/><file name="CcXtimes.php" hash="8d4f2f77f2e0377600cff2f93a3f0e66"/><file name="Dexia.php" hash="a385bcf6b0826917fecec6917a8230f9"/><file name="Giropay.php" hash="85d350f66fa3b0b162fe542165bce4cc"/><file name="Hosted.php" hash="5bd41f736ddc997d5620932838b38849"/><file name="HostedXtimes.php" hash="d81e2c0746a7d1437fde693fba219e1d"/><file name="Ideal.php" hash="0cf882d667b36c0e89bc1800ea9fa7a1"/><file name="Ing.php" hash="774c41e17868dcfe8031d047703a8b1c"/><file name="Kbc.php" hash="77981ab4ebd64d3555bd9fddccadf283"/><file name="PaypalApi.php" hash="65d6c43ad78671a49d162acb381a1079"/><file name="PostfinancecardApi.php" hash="3563685f62cfcb31ce494cab36869a85"/><file name="PostfinanceefinanceApi.php" hash="57c81f85ee51e63cdf55564492aa8ef1"/><file name="Przelewy24.php" hash="00b695e7b34b69f36d593587a9b5dcdd"/><file name="Przelewy24Api.php" hash="ff20c8621b68fea2b9d96cf131d320e7"/><file name="Qiwi.php" hash="acea5092f8fd1720d506d5be3714864f"/><file name="Sdd.php" hash="be79ca9e43d642d61cd4ceddd50e193a"/><file name="Sisal.php" hash="d6f97559eb485a8d6d66e5a7abc0e077"/><file name="SisalApi.php" hash="0c63400b243855790f987e8dd2b85402"/><file name="Sofort.php" hash="fa6cb68aff431c2dc91e7b3c62a29aaa"/><file name="SofortApi.php" hash="51111ee0872f93829833a01e36b51abf"/><file name="Webmoney.php" hash="5705818f9288d1c0acc49882c42c195f"/><file name="WebmoneyApi.php" hash="d24a31e40cba1af6e4e8fd20f3ac7dd6"/><file name="Yandex.php" hash="1edad262a001d96ede94c9406e680f46"/><file name="YandexApi.php" hash="831b63ffbe3b859cff790fb34ea63663"/></dir><dir name="Source"><file name="3ds.php" hash="e7b97e8a1c886b11951051a212c965ba"/><file name="CcType.php" hash="088d0e8c51f594092a0c6cd0f9bf6545"/><file name="CcTypeHosted.php" hash="f119a5901ac3a9056df56f9cb35b5e02"/><file name="PaymentAction.php" hash="10638f85360e7693819cbbfd156bed72"/><file name="PaymentProfile.php" hash="9e8c5e4bea5c50b1a63c71cfd9416ff1"/><file name="Pendingredirect.php" hash="f0c3125415535637c159c97fc2627740"/><file name="Template.php" hash="2aa16f597398af7ec73e4c7b0f126fd4"/><dir name="Order"><file name="HipayStatusValidate.php" hash="63414f71ce035909310f27842bc1b511"/><file name="Status.php" hash="395ac5e1567ee6095769abc6ce64fec0"/><dir name="Status"><file name="Accepted.php" hash="20cfc4b9ec26a2b458f8ffc43f6195aa"/><file name="Canceled.php" hash="49a6f0b6033e698fbefe01967b81b21d"/><file name="New.php" hash="226d2f1a5d441dbd6404ea342555e893"/><file name="Refused.php" hash="dbf1ed822488bb0d03f71461c872154d"/></dir></dir></dir><dir name="Resource"><file name="Card.php" hash="5550c1486504972e6423fce49e3e8d93"/><file name="PaymentProfile.php" hash="fb397fd11c35b19986d4688d207b55cb"/><file name="Rule.php" hash="115bccaa9e4d37ed03e179147ab3788d"/><file name="SplitPayment.php" hash="133f41e753dfbb150cb61c6edf5745c9"/><dir name="PaymentProfile"><file name="Collection.php" hash="b1d5980904dbc3669cc6ee904c7620a3"/></dir><dir name="Rule"><file name="Collection.php" hash="b4dd0d851cda670c6aafad0cf588b106"/></dir><dir name="Card"><file name="Collection.php" hash="4a9ca5d5124dcaa5fe9a01c7e864bf6e"/></dir><dir name="SplitPayment"><file name="Collection.php" hash="c44859bdf1e4de9551bc31cd57e7ef88"/></dir></dir><dir name="Log"><file name="Adapter.php" hash="9d5533d5d3622c72cbc84abfd4e3116c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="dd4791caea9b470cc288d852afaf9a6b"/></dir><dir name="Controller"><file name="Payment.php" hash="90281408e821b6f9de9d515e625d87ed"/></dir><dir name="controllers"><file name="CardController.php" hash="ebbbcf9c15ee39165d866991a6b348f3"/><file name="CbcController.php" hash="11a793cfef50322482b4d1e44f7fb427"/><file name="CcController.php" hash="2e45012894cac90a24c2017a427258b5"/><file name="CcxtimesController.php" hash="0e87e2d91b4b1214d0e37e432429c832"/><file name="CheckoutController.php" hash="ba9392dc51da0a4cfb5941b60c2473bc"/><file name="DexiaController.php" hash="abafa7205262125aef603f0d51445ebd"/><file name="GiropayController.php" hash="93ebe6d63e60627ee86815a7cc23006b"/><file name="HostedController.php" hash="f0bd2d41f36b0453e42063531b88d4a3"/><file name="HostedxtimesController.php" hash="8d97dcea1d97cc2711c3150923b8ecee"/><file name="IdealController.php" hash="49bc5c1a52c98cef934b45ce27da574a"/><file name="IngController.php" hash="43b8ae9e752d5268a51a164abc98df9f"/><file name="KbcController.php" hash="fad29361513cc354dcf200fde25265da"/><file name="NotifyController.php" hash="df46f9938f5f4d87a4d654e7710a06ab"/><file name="PaypalapiController.php" hash="6163a491b9e7b43593983da5735d29e6"/><file name="PostfinancecardapiController.php" hash="6ec048a2c6d3ac0637a99a34756a9720"/><file name="PostfinanceefinanceapiController.php" hash="b7337fa81c804c62c04a059a305c3152"/><file name="Przelewy24Controller.php" hash="d6923f98e8a53d8b8becd1d5ef99e0d0"/><file name="Przelewy24apiController.php" hash="bc488ef00a5a063d05aa12c545d8e8fe"/><file name="QiwiController.php" hash="6b3e05b2910dae0b919c50cb06363c57"/><file name="SddController.php" hash="8b1d24a040c7767b7889df51a10eac75"/><file name="SisalController.php" hash="32bdb5bf400fa1c6ee5bfb2c79b889f9"/><file name="SisalapiController.php" hash="23a04c3fe9470ef98ce84fcf5c1dd9fe"/><file name="SofortController.php" hash="5479f2e8c3043ad0dd51167bd9bcf623"/><file name="SofortapiController.php" hash="74aa59c7c7795f9f61c6b4bfeae193e3"/><file name="WebmoneyController.php" hash="b52fdbc662da23f839750c9919aad809"/><file name="WebmoneyapiController.php" hash="f34dc66aca5218930be548c88e7e9004"/><file name="YandexController.php" hash="629ec07271f8a11d7c88824154b637f0"/><file name="YandexapiController.php" hash="9741c2a9427866895907629af1e9ed98"/><dir name="Adminhtml"><file name="CardController.php" hash="1e5cba078cef7987df9314c467dd640e"/><file name="PaymentController.php" hash="06e07d68cb27e669fb6105bc78db2b9c"/><file name="PaymentProfileController.php" hash="887808a799db4e95d76bb9a014f80f29"/><file name="RuleController.php" hash="55291c15c7de616237b14dfad1bc5e80"/><file name="SplitPaymentController.php" hash="642960a1002c316efc04d3af4e6d2a57"/><dir name="Sales"><dir name="Order"><file name="CreateController.php" hash="f0f046bae0aacb974afbb62f35e5e062"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="f6149030315275f8b9b98838831062a5"/><file name="system.xml" hash="027fee72071503776610c6aa64030e94"/></dir><dir name="sql"><dir name="allopass_hipay_setup"><file name="mysql4-install-0.1.0.php" hash="820dc1e282c2c88deeb167d61918088b"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="af83b289e454c2d2ab91d2a6800d079a"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="1aa9291c5ac40a03ccbf3bcb6ce0c47e"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="17ddfaae63edc655fec04dcd5f96136a"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="5dfaafe02016ff47dfd80c89effaaabb"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="abec801a24e8515ad80dfe3563fd1492"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="c4e2c53d2b62d8829731449b881dd171"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="b3080317af653951030d7d2a1b116e75"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="81abd6cd95c846d67abc78d2a96a0f15"/></dir></dir><dir name="Block"><file name="Card.php" hash="8e9a964e1b44c4664b78a2f9a5f7b1ae"/><dir name="Form"><file name="Abstract.php" hash="776dfa8030972f74a305d270aac0ae19"/><file name="Cc.php" hash="64b899c98ee3edd77c5262eccd0bdfd1"/><file name="Hosted.php" hash="1cbc3fe21de97bba192cd5e651dfaeae"/></dir><dir name="Checkout"><file name="Pending.php" hash="48112f7e2fdcc79ee9431cf5350e223f"/></dir><dir name="Card"><file name="Edit.php" hash="530cd326480c2d074dfdc59a578dd1db"/></dir><dir name="Adminhtml"><file name="PaymentProfile.php" hash="b02de6e3cf69724d7f901f9b4f42e333"/><file name="SplitPayment.php" hash="1f5b84881308b79f0ada533862568e28"/><dir name="PaymentProfile"><file name="Edit.php" hash="ef7b6945e91ef450a8a6a4ef0dbfef97"/><file name="Grid.php" hash="f8ac0daa082f3c6d2be6289e935dbd31"/><dir name="Edit"><file name="Form.php" hash="e17cc9773f3d4b1ef0981b513c659841"/></dir></dir><dir name="Customer"><dir name="Edit"><dir name="Tab"><file name="Card.php" hash="652fce24783da2b3f2d2e3ffb5345bc8"/></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="3dsRule.php" hash="c18bd31b872b7318e574676571c16491"/><file name="Allowsplitpayment.php" hash="0c6e4378ba1537584417870c9eb2c59c"/><file name="MultiselectSortable.php" hash="afba089fed75aefece6155de1210a856"/></dir></dir></dir></dir><dir name="Card"><file name="Edit.php" hash="5f1896bb299030ade2090e2743ce2f95"/><dir name="Edit"><file name="Form.php" hash="addfd57cd54aff9ce5b57759105ad221"/></dir></dir><dir name="SplitPayment"><file name="Edit.php" hash="2aa5f311f6ba084420a6adc0fa518cc5"/><file name="Grid.php" hash="42031ca1b4a9a399e6e148378880ad82"/><dir name="Edit"><file name="Form.php" hash="06f8e4c7714d8e362c00ac8a4d88e292"/></dir></dir></dir><dir name="Info"><file name="Cc.php" hash="d4ed3d7c3bbc82c1b3b13e19abdd4ddc"/><file name="Hosted.php" hash="40355126a48bd854c21bb0201840229c"/></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="Allopass_Hipay.csv" hash="658b5602bbd3c53101cd7be920f08e6a"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="099f8760397b9c9ccaf24bee1bdfdadc"/><file name="hipay_fraud_payment_accept.html" hash="e577cb25ea4a4ad2cd764545de86a794"/><file name="hipay_fraud_payment_deny.html" hash="9011d7215936745d781f922015bc5b9a"/></dir></dir></dir><dir name="fr_FR"><file name="Allopass_Hipay.csv" hash="fd8aca9506342751295927f6405ed8a2"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="3e2da47265d7e68bbb3db9f55cc4498f"/><file name="hipay_fraud_payment_accept.html" hash="5f2538c69555f414f7c8e8767ac505f7"/><file name="hipay_fraud_payment_deny.html" hash="035b655eac80930d6ebe4e5bf2c3e50c"/></dir></dir></dir><dir name="it_IT"><file name="Allopass_Hipay.csv" hash="e29ba791d6de73cd27f656cdad235336"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="099f8760397b9c9ccaf24bee1bdfdadc"/><file name="hipay_fraud_payment_accept.html" hash="e577cb25ea4a4ad2cd764545de86a794"/><file name="hipay_fraud_payment_deny.html" hash="9011d7215936745d781f922015bc5b9a"/></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Allopass_Hipay.xml" hash="fd0ac2e9080c0a432a3a7b6d969171c0"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="hipay"><dir name="checkout"><file name="pending.phtml" hash="34e6bba88ea5fdd6b4ea71595de638d6"/></dir><dir name="card"><file name="account.phtml" hash="8e4ec26a1ccfb13bf8c4706d74990aad"/><dir name="form"><file name="edit.phtml" hash="befde62b0368c1afb8daa70d46796865"/></dir></dir><dir name="form"><file name="cc.phtml" hash="55f53c8644df3bd28508db0e79f95cd4"/><file name="hosted.phtml" hash="f590c6b76dcff32fa1cffd81d451c4e9"/></dir><dir name="info"><file name="cc.phtml" hash="96e92e2b6564392e7294b8f96469940f"/><file name="hosted.phtml" hash="96e92e2b6564392e7294b8f96469940f"/></dir></dir></dir><dir name="layout"><file name="hipay.xml" hash="457415436810b9a57b0c5228ac4ae4b0"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="hipay"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="rules.phtml" hash="b25ca0397baffa2306ab70776b2febac"/></dir></dir></dir></dir><dir name="form"><file name="cc.phtml" hash="548c5d5ee72f1e036e734b83d24d3a02"/><file name="hosted.phtml" hash="5be27a6e29c212d8ab38a5b32ead66c8"/></dir><dir name="info"><file name="cc.phtml" hash="96e92e2b6564392e7294b8f96469940f"/><file name="hosted.phtml" hash="96e92e2b6564392e7294b8f96469940f"/></dir></dir></dir><dir name="layout"><file name="hipay.xml" hash="478e41f2896fd595f4d264149059c737"/></dir></dir></dir></dir></dir></dir><dir name="skin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="hipay"><dir name="js"><file name="rules.js" hash="c9f87ded0b3a8505e78ab2584c2f098f"/></dir></dir></dir></dir></dir></dir></target></contents></package>
1
  <?xml version="1.0"?>
2
+ <package><name>Allopass_Hipay</name><version>1.4.0</version><stability>stable</stability><license>General Public License (GPL)</license><channel>community</channel><extends></extends><summary>Official HiPay Fullservice payment extension.</summary><description>HiPay Fullservice is the first payment platform oriented towards merchants that responds to all matters related to online payment: transaction processing, risk management, relationship management with banks and acquirers, financial reconciliation or even international expansion.</description><notes></notes><authors><author><name>Kassim Belghait</name><user>Sirateck</user><email>kassim@sirateck.com</email></author></authors><date>2016-11-14</date><time>0:18:40</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="Allopass"><dir name="Hipay"><dir name="Model"><file name="Card.php" hash="5d5ed0ece4cb9ef50bf445eee6911f8a"/><file name="Config.php" hash="3a223b860e229d042632068f7246fbe8"/><file name="Observer.php" hash="a979f5830e67448dcb938bbea24727f5"/><file name="PaymentProfile.php" hash="002417022b9afb132e771bbb2eb09d1c"/><file name="Rule.php" hash="4cddad3f6cb38af59dc2726d80148f51"/><file name="SplitPayment.php" hash="0a0298357ccb4ad750a0d90a13ab0d44"/><dir name="Api"><file name="Request.php" hash="1dd3bf51cd1119b4de38322a17e9381e"/><dir name="Response"><file name="Abstract.php" hash="a430ca978e61796696ae4ead61efdb60"/><file name="Error.php" hash="57386fde5e5993c1126418025093a58a"/><file name="Gateway.php" hash="49b0e43a55e223df601884cfd9a0d2c5"/><file name="Notification.php" hash="0f7373ec3435b477424352c058f42255"/><file name="Vault.php" hash="47b962a59c150ffd653ba4054bc053d0"/></dir><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Curl.php" hash="cebf9e03d310e65f23a2a4ddc980e26f"/><file name="Stream.php" hash="5a110dd1f33ee4c8319cec396fc4fa40"/></dir></dir></dir></dir><dir name="Rule"><file name="Config.php" hash="4034bf549bc274c836930a43d0ef8646"/><dir name="Condition"><file name="Address.php" hash="4180131479d72272c7b2c67534341dbc"/><file name="Combine.php" hash="e57da0bfd13c85721ef06d9f5c1d5a45"/><file name="Customer.php" hash="b847ff261e77565af4f64761d378de59"/><file name="Product.php" hash="5186cb9be313c7a772a11613ff4d1406"/><dir name="Product"><file name="Combine.php" hash="b99adc27124c3c6f56d04f0bcb5a42be"/><file name="Found.php" hash="bc266762458faaba326b7d7245b688a8"/><file name="Subselect.php" hash="5c0d482cddd69d82350bc5fec15c40b7"/></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><file name="CcTypes.php" hash="916ab83c9e5e1ee18d488f42a090c524"/></dir></dir></dir><dir name="Method"><file name="Abstract.php" hash="cbf2ea7f371cb432557052c9b2bc9dd5"/><file name="Cbc.php" hash="49d1b0e2ad320c1a78043bb7231de930"/><file name="Cc.php" hash="4e4353ecc9ee30e11a6ed5605135d7b7"/><file name="CcXtimes.php" hash="8d4f2f77f2e0377600cff2f93a3f0e66"/><file name="Dexia.php" hash="a385bcf6b0826917fecec6917a8230f9"/><file name="Giropay.php" hash="85d350f66fa3b0b162fe542165bce4cc"/><file name="Hosted.php" hash="5bd41f736ddc997d5620932838b38849"/><file name="HostedXtimes.php" hash="d81e2c0746a7d1437fde693fba219e1d"/><file name="Ideal.php" hash="0cf882d667b36c0e89bc1800ea9fa7a1"/><file name="Ing.php" hash="774c41e17868dcfe8031d047703a8b1c"/><file name="Kbc.php" hash="77981ab4ebd64d3555bd9fddccadf283"/><file name="PaypalApi.php" hash="65d6c43ad78671a49d162acb381a1079"/><file name="PostfinancecardApi.php" hash="3563685f62cfcb31ce494cab36869a85"/><file name="PostfinanceefinanceApi.php" hash="57c81f85ee51e63cdf55564492aa8ef1"/><file name="Przelewy24.php" hash="00b695e7b34b69f36d593587a9b5dcdd"/><file name="Przelewy24Api.php" hash="ff20c8621b68fea2b9d96cf131d320e7"/><file name="Qiwi.php" hash="acea5092f8fd1720d506d5be3714864f"/><file name="Sdd.php" hash="be79ca9e43d642d61cd4ceddd50e193a"/><file name="Sisal.php" hash="d6f97559eb485a8d6d66e5a7abc0e077"/><file name="SisalApi.php" hash="0c63400b243855790f987e8dd2b85402"/><file name="Sofort.php" hash="fa6cb68aff431c2dc91e7b3c62a29aaa"/><file name="SofortApi.php" hash="51111ee0872f93829833a01e36b51abf"/><file name="Webmoney.php" hash="5705818f9288d1c0acc49882c42c195f"/><file name="WebmoneyApi.php" hash="d24a31e40cba1af6e4e8fd20f3ac7dd6"/><file name="Yandex.php" hash="1edad262a001d96ede94c9406e680f46"/><file name="YandexApi.php" hash="831b63ffbe3b859cff790fb34ea63663"/></dir><dir name="Source"><file name="3ds.php" hash="e7b97e8a1c886b11951051a212c965ba"/><file name="CcType.php" hash="088d0e8c51f594092a0c6cd0f9bf6545"/><file name="CcTypeHosted.php" hash="f119a5901ac3a9056df56f9cb35b5e02"/><file name="PaymentAction.php" hash="10638f85360e7693819cbbfd156bed72"/><file name="PaymentProfile.php" hash="9e8c5e4bea5c50b1a63c71cfd9416ff1"/><file name="Pendingredirect.php" hash="f0c3125415535637c159c97fc2627740"/><file name="Template.php" hash="2aa16f597398af7ec73e4c7b0f126fd4"/><dir name="Order"><file name="HipayStatusValidate.php" hash="63414f71ce035909310f27842bc1b511"/><file name="Status.php" hash="395ac5e1567ee6095769abc6ce64fec0"/><dir name="Status"><file name="Accepted.php" hash="20cfc4b9ec26a2b458f8ffc43f6195aa"/><file name="Canceled.php" hash="49a6f0b6033e698fbefe01967b81b21d"/><file name="New.php" hash="226d2f1a5d441dbd6404ea342555e893"/><file name="Refused.php" hash="dbf1ed822488bb0d03f71461c872154d"/></dir></dir></dir><dir name="Resource"><file name="Card.php" hash="5550c1486504972e6423fce49e3e8d93"/><file name="PaymentProfile.php" hash="fb397fd11c35b19986d4688d207b55cb"/><file name="Rule.php" hash="115bccaa9e4d37ed03e179147ab3788d"/><file name="SplitPayment.php" hash="133f41e753dfbb150cb61c6edf5745c9"/><dir name="PaymentProfile"><file name="Collection.php" hash="b1d5980904dbc3669cc6ee904c7620a3"/></dir><dir name="Rule"><file name="Collection.php" hash="b4dd0d851cda670c6aafad0cf588b106"/></dir><dir name="Card"><file name="Collection.php" hash="4a9ca5d5124dcaa5fe9a01c7e864bf6e"/></dir><dir name="SplitPayment"><file name="Collection.php" hash="c44859bdf1e4de9551bc31cd57e7ef88"/></dir></dir><dir name="Log"><file name="Adapter.php" hash="9d5533d5d3622c72cbc84abfd4e3116c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="dd4791caea9b470cc288d852afaf9a6b"/></dir><dir name="Controller"><file name="Payment.php" hash="90281408e821b6f9de9d515e625d87ed"/></dir><dir name="controllers"><file name="CardController.php" hash="ebbbcf9c15ee39165d866991a6b348f3"/><file name="CbcController.php" hash="11a793cfef50322482b4d1e44f7fb427"/><file name="CcController.php" hash="2e45012894cac90a24c2017a427258b5"/><file name="CcxtimesController.php" hash="0e87e2d91b4b1214d0e37e432429c832"/><file name="CheckoutController.php" hash="ba9392dc51da0a4cfb5941b60c2473bc"/><file name="DexiaController.php" hash="abafa7205262125aef603f0d51445ebd"/><file name="GiropayController.php" hash="93ebe6d63e60627ee86815a7cc23006b"/><file name="HostedController.php" hash="f0bd2d41f36b0453e42063531b88d4a3"/><file name="HostedxtimesController.php" hash="8d97dcea1d97cc2711c3150923b8ecee"/><file name="IdealController.php" hash="49bc5c1a52c98cef934b45ce27da574a"/><file name="IngController.php" hash="43b8ae9e752d5268a51a164abc98df9f"/><file name="KbcController.php" hash="fad29361513cc354dcf200fde25265da"/><file name="NotifyController.php" hash="df46f9938f5f4d87a4d654e7710a06ab"/><file name="PaypalapiController.php" hash="6163a491b9e7b43593983da5735d29e6"/><file name="PostfinancecardapiController.php" hash="6ec048a2c6d3ac0637a99a34756a9720"/><file name="PostfinanceefinanceapiController.php" hash="b7337fa81c804c62c04a059a305c3152"/><file name="Przelewy24Controller.php" hash="d6923f98e8a53d8b8becd1d5ef99e0d0"/><file name="Przelewy24apiController.php" hash="bc488ef00a5a063d05aa12c545d8e8fe"/><file name="QiwiController.php" hash="6b3e05b2910dae0b919c50cb06363c57"/><file name="SddController.php" hash="8b1d24a040c7767b7889df51a10eac75"/><file name="SisalController.php" hash="32bdb5bf400fa1c6ee5bfb2c79b889f9"/><file name="SisalapiController.php" hash="23a04c3fe9470ef98ce84fcf5c1dd9fe"/><file name="SofortController.php" hash="5479f2e8c3043ad0dd51167bd9bcf623"/><file name="SofortapiController.php" hash="74aa59c7c7795f9f61c6b4bfeae193e3"/><file name="WebmoneyController.php" hash="b52fdbc662da23f839750c9919aad809"/><file name="WebmoneyapiController.php" hash="f34dc66aca5218930be548c88e7e9004"/><file name="YandexController.php" hash="629ec07271f8a11d7c88824154b637f0"/><file name="YandexapiController.php" hash="9741c2a9427866895907629af1e9ed98"/><dir name="Adminhtml"><file name="CardController.php" hash="1e5cba078cef7987df9314c467dd640e"/><file name="PaymentController.php" hash="06e07d68cb27e669fb6105bc78db2b9c"/><file name="PaymentProfileController.php" hash="887808a799db4e95d76bb9a014f80f29"/><file name="RuleController.php" hash="55291c15c7de616237b14dfad1bc5e80"/><file name="SplitPaymentController.php" hash="642960a1002c316efc04d3af4e6d2a57"/><dir name="Sales"><dir name="Order"><file name="CreateController.php" hash="f0f046bae0aacb974afbb62f35e5e062"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="b5afb91fea21f25fd01e75a80bd661e7"/><file name="system.xml" hash="b7558627b8f6fc727b77cde9a2521946"/></dir><dir name="sql"><dir name="allopass_hipay_setup"><file name="mysql4-install-0.1.0.php" hash="820dc1e282c2c88deeb167d61918088b"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="af83b289e454c2d2ab91d2a6800d079a"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="1aa9291c5ac40a03ccbf3bcb6ce0c47e"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="17ddfaae63edc655fec04dcd5f96136a"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="5dfaafe02016ff47dfd80c89effaaabb"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="abec801a24e8515ad80dfe3563fd1492"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="c4e2c53d2b62d8829731449b881dd171"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="b3080317af653951030d7d2a1b116e75"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="81abd6cd95c846d67abc78d2a96a0f15"/></dir></dir><dir name="Block"><file name="Card.php" hash="8e9a964e1b44c4664b78a2f9a5f7b1ae"/><dir name="Form"><file name="Abstract.php" hash="776dfa8030972f74a305d270aac0ae19"/><file name="Cc.php" hash="64b899c98ee3edd77c5262eccd0bdfd1"/><file name="Hosted.php" hash="1cbc3fe21de97bba192cd5e651dfaeae"/></dir><dir name="Checkout"><file name="Pending.php" hash="48112f7e2fdcc79ee9431cf5350e223f"/><file name="Tokenjs.php" hash="82adcf1d7ba1cd7c5fd99e63ff193c9a"/></dir><dir name="Card"><file name="Edit.php" hash="530cd326480c2d074dfdc59a578dd1db"/></dir><dir name="Adminhtml"><file name="PaymentProfile.php" hash="b02de6e3cf69724d7f901f9b4f42e333"/><file name="SplitPayment.php" hash="1f5b84881308b79f0ada533862568e28"/><dir name="PaymentProfile"><file name="Edit.php" hash="ef7b6945e91ef450a8a6a4ef0dbfef97"/><file name="Grid.php" hash="f8ac0daa082f3c6d2be6289e935dbd31"/><dir name="Edit"><file name="Form.php" hash="e17cc9773f3d4b1ef0981b513c659841"/></dir></dir><dir name="Customer"><dir name="Edit"><dir name="Tab"><file name="Card.php" hash="652fce24783da2b3f2d2e3ffb5345bc8"/></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="3dsRule.php" hash="c18bd31b872b7318e574676571c16491"/><file name="Allowsplitpayment.php" hash="0c6e4378ba1537584417870c9eb2c59c"/><file name="MultiselectSortable.php" hash="afba089fed75aefece6155de1210a856"/></dir></dir></dir></dir><dir name="Card"><file name="Edit.php" hash="5f1896bb299030ade2090e2743ce2f95"/><dir name="Edit"><file name="Form.php" hash="addfd57cd54aff9ce5b57759105ad221"/></dir></dir><dir name="SplitPayment"><file name="Edit.php" hash="2aa5f311f6ba084420a6adc0fa518cc5"/><file name="Grid.php" hash="42031ca1b4a9a399e6e148378880ad82"/><dir name="Edit"><file name="Form.php" hash="06f8e4c7714d8e362c00ac8a4d88e292"/></dir></dir></dir><dir name="Info"><file name="Cc.php" hash="d4ed3d7c3bbc82c1b3b13e19abdd4ddc"/><file name="Hosted.php" hash="40355126a48bd854c21bb0201840229c"/></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="Allopass_Hipay.csv" hash="658b5602bbd3c53101cd7be920f08e6a"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="099f8760397b9c9ccaf24bee1bdfdadc"/><file name="hipay_fraud_payment_accept.html" hash="e577cb25ea4a4ad2cd764545de86a794"/><file name="hipay_fraud_payment_deny.html" hash="9011d7215936745d781f922015bc5b9a"/></dir></dir></dir><dir name="fr_FR"><file name="Allopass_Hipay.csv" hash="fd8aca9506342751295927f6405ed8a2"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="3e2da47265d7e68bbb3db9f55cc4498f"/><file name="hipay_fraud_payment_accept.html" hash="5f2538c69555f414f7c8e8767ac505f7"/><file name="hipay_fraud_payment_deny.html" hash="035b655eac80930d6ebe4e5bf2c3e50c"/></dir></dir></dir><dir name="it_IT"><file name="Allopass_Hipay.csv" hash="e29ba791d6de73cd27f656cdad235336"/><dir name="template"><dir name="email"><file name="hipay_fraud_payment.html" hash="099f8760397b9c9ccaf24bee1bdfdadc"/><file name="hipay_fraud_payment_accept.html" hash="e577cb25ea4a4ad2cd764545de86a794"/><file name="hipay_fraud_payment_deny.html" hash="9011d7215936745d781f922015bc5b9a"/></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Allopass_Hipay.xml" hash="fd0ac2e9080c0a432a3a7b6d969171c0"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="hipay"><dir name="checkout"><file name="pending.phtml" hash="34e6bba88ea5fdd6b4ea71595de638d6"/><file name="tokenjs.phtml" hash="78c71064ec185b8600a7f6dfefc89626"/></dir><dir name="card"><file name="account.phtml" hash="8e4ec26a1ccfb13bf8c4706d74990aad"/><dir name="form"><file name="edit.phtml" hash="befde62b0368c1afb8daa70d46796865"/></dir></dir><dir name="form"><file name="cc.phtml" hash="2890519133c7b6006a3351bec611cb2a"/><file name="hosted.phtml" hash="f590c6b76dcff32fa1cffd81d451c4e9"/></dir><dir name="info"><file name="cc.phtml" hash="96e92e2b6564392e7294b8f96469940f"/><file name="hosted.phtml" hash="96e92e2b6564392e7294b8f96469940f"/></dir></dir></dir><dir name="layout"><file name="hipay.xml" hash="7918de9ec4fb3316dac9c1a169b13fb5"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="hipay"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="rules.phtml" hash="b25ca0397baffa2306ab70776b2febac"/></dir></dir></dir></dir><dir name="form"><file name="cc.phtml" hash="548c5d5ee72f1e036e734b83d24d3a02"/><file name="hosted.phtml" hash="5be27a6e29c212d8ab38a5b32ead66c8"/></dir><dir name="info"><file name="cc.phtml" hash="96e92e2b6564392e7294b8f96469940f"/><file name="hosted.phtml" hash="96e92e2b6564392e7294b8f96469940f"/></dir></dir></dir><dir name="layout"><file name="hipay.xml" hash="478e41f2896fd595f4d264149059c737"/></dir></dir></dir></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="js"><file name="hipay-fullservice-sdk.min.js" hash="857b18224c0b6cc62448c12c5d959aa3"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="hipay"><dir name="js"><file name="rules.js" hash="c9f87ded0b3a8505e78ab2584c2f098f"/></dir></dir></dir></dir></dir></dir></target></contents></package>
skin/frontend/base/default/js/hipay-fullservice-sdk.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a,b,c){"undefined"!=typeof module&&module.exports?module.exports=c():"function"==typeof define&&define.amd?define(c):b[a]=c()}("reqwest",this,function(){function handleReadyState(a,b,c){return function(){return a._aborted?c(a.request):void(a.request&&4==a.request[readyState]&&(a.request.onreadystatechange=noop,twoHundo.test(a.request.status)?b(a.request):c(a.request)))}}function setHeaders(a,b){var c,d=b.headers||{};d.Accept=d.Accept||defaultHeaders.accept[b.type]||defaultHeaders.accept["*"],!b.crossOrigin&&!d[requestedWith]&&(d[requestedWith]=defaultHeaders.requestedWith),d[contentType]||(d[contentType]=b.contentType||defaultHeaders.contentType);for(c in d)d.hasOwnProperty(c)&&"setRequestHeader"in a&&a.setRequestHeader(c,d[c])}function setCredentials(a,b){"undefined"!=typeof b.withCredentials&&"undefined"!=typeof a.withCredentials&&(a.withCredentials=!!b.withCredentials)}function generalCallback(a){lastValue=a}function urlappend(a,b){return a+(/\?/.test(a)?"&":"?")+b}function handleJsonp(a,b,c,d){var e=uniqid++,f=a.jsonpCallback||"callback",g=a.jsonpCallbackName||reqwest.getcallbackPrefix(e),h=new RegExp("((^|\\?|&)"+f+")=([^&]+)"),i=d.match(h),j=doc.createElement("script"),k=0,l=navigator.userAgent.indexOf("MSIE 10.0")!==-1;return i?"?"===i[3]?d=d.replace(h,"$1="+g):g=i[3]:d=urlappend(d,f+"="+g),win[g]=generalCallback,j.type="text/javascript",j.src=d,j.async=!0,"undefined"!=typeof j.onreadystatechange&&!l&&(j.event="onclick",j.htmlFor=j.id="_reqwest_"+e),j.onload=j.onreadystatechange=function(){return!(j[readyState]&&"complete"!==j[readyState]&&"loaded"!==j[readyState]||k)&&(j.onload=j.onreadystatechange=null,j.onclick&&j.onclick(),b(lastValue),lastValue=void 0,head.removeChild(j),k=1,void 0)},head.appendChild(j),{abort:function(){j.onload=j.onreadystatechange=null,c({},"Request is aborted: timeout",{}),lastValue=void 0,head.removeChild(j),k=1}}}function getRequest(a,b){var c,d=this.o,e=(d.method||"GET").toUpperCase(),f="string"==typeof d?d:d.url,g=d.processData!==!1&&d.data&&"string"!=typeof d.data?reqwest.toQueryString(d.data):d.data||null,h=!1;return("jsonp"==d.type||"GET"==e)&&g&&(f=urlappend(f,g),g=null),"jsonp"==d.type?handleJsonp(d,a,b,f):(c=xhr(d),c.open(e,f,d.async!==!1),setHeaders(c,d),setCredentials(c,d),win[xDomainRequest]&&c instanceof win[xDomainRequest]?(c.onload=a,c.onerror=b,c.onprogress=function(){},h=!0):c.onreadystatechange=handleReadyState(this,a,b),d.before&&d.before(c),h?setTimeout(function(){c.send(g)},200):c.send(g),c)}function Reqwest(a,b){this.o=a,this.fn=b,init.apply(this,arguments)}function setType(a){var b=a.match(/\.(json|jsonp|html|xml)(\?|$)/);return b?b[1]:"js"}function init(o,fn){function complete(a){for(o.timeout&&clearTimeout(self.timeout),self.timeout=null;self._completeHandlers.length>0;)self._completeHandlers.shift()(a)}function success(resp){resp="jsonp"!==type?self.request:resp;var filteredResponse=globalSetupOptions.dataFilter(resp.responseText,type),r=filteredResponse;try{resp.responseText=r}catch(e){}if(r)switch(type){case"json":try{resp=win.JSON?win.JSON.parse(r):eval("("+r+")")}catch(err){return error(resp,"Could not parse JSON in response",err)}break;case"js":resp=eval(r);break;case"html":resp=r;break;case"xml":resp=resp.responseXML&&resp.responseXML.parseError&&resp.responseXML.parseError.errorCode&&resp.responseXML.parseError.reason?null:resp.responseXML}for(self._responseArgs.resp=resp,self._fulfilled=!0,fn(resp),self._successHandler(resp);self._fulfillmentHandlers.length>0;)resp=self._fulfillmentHandlers.shift()(resp);complete(resp)}function error(a,b,c){for(a=self.request,self._responseArgs.resp=a,self._responseArgs.msg=b,self._responseArgs.t=c,self._erred=!0;self._errorHandlers.length>0;)self._errorHandlers.shift()(a,b,c);complete(a)}this.url="string"==typeof o?o:o.url,this.timeout=null,this._fulfilled=!1,this._successHandler=function(){},this._fulfillmentHandlers=[],this._errorHandlers=[],this._completeHandlers=[],this._erred=!1,this._responseArgs={};var self=this,type=o.type||setType(this.url);fn=fn||function(){},o.timeout&&(this.timeout=setTimeout(function(){self.abort()},o.timeout)),o.success&&(this._successHandler=function(){o.success.apply(o,arguments)}),o.error&&this._errorHandlers.push(function(){o.error.apply(o,arguments)}),o.complete&&this._completeHandlers.push(function(){o.complete.apply(o,arguments)}),this.request=getRequest.call(this,success,error)}function reqwest(a,b){return new Reqwest(a,b)}function normalize(a){return a?a.replace(/\r?\n/g,"\r\n"):""}function serial(a,b){var c,d,e,f,g=a.name,h=a.tagName.toLowerCase(),i=function(a){a&&!a.disabled&&b(g,normalize(a.attributes.value&&a.attributes.value.specified?a.value:a.text))};if(!a.disabled&&g)switch(h){case"input":/reset|button|image|file/i.test(a.type)||(c=/checkbox/i.test(a.type),d=/radio/i.test(a.type),e=a.value,(!c&&!d||a.checked)&&b(g,normalize(c&&""===e?"on":e)));break;case"textarea":b(g,normalize(a.value));break;case"select":if("select-one"===a.type.toLowerCase())i(a.selectedIndex>=0?a.options[a.selectedIndex]:null);else for(f=0;a.length&&f<a.length;f++)a.options[f].selected&&i(a.options[f])}}function eachFormElement(){var a,b,c=this,d=function(a,b){var d,e,f;for(d=0;d<b.length;d++)for(f=a[byTag](b[d]),e=0;e<f.length;e++)serial(f[e],c)};for(b=0;b<arguments.length;b++)a=arguments[b],/input|select|textarea/i.test(a.tagName)&&serial(a,c),d(a,["input","select","textarea"])}function serializeQueryString(){return reqwest.toQueryString(reqwest.serializeArray.apply(null,arguments))}function serializeHash(){var a={};return eachFormElement.apply(function(b,c){b in a?(a[b]&&!isArray(a[b])&&(a[b]=[a[b]]),a[b].push(c)):a[b]=c},arguments),a}function buildParams(a,b,c,d){var e,f,g,h=/\[\]$/;if(isArray(b))for(f=0;b&&f<b.length;f++)g=b[f],c||h.test(a)?d(a,g):buildParams(a+"["+("object"==typeof g?f:"")+"]",g,c,d);else if(b&&"[object Object]"===b.toString())for(e in b)buildParams(a+"["+e+"]",b[e],c,d);else d(a,b)}var win=window,doc=document,twoHundo=/^(20\d|1223)$/,byTag="getElementsByTagName",readyState="readyState",contentType="Content-Type",requestedWith="X-Requested-With",head=doc[byTag]("head")[0],uniqid=0,callbackPrefix="reqwest_"+ +new Date,lastValue,xmlHttpRequest="XMLHttpRequest",xDomainRequest="XDomainRequest",noop=function(){},isArray="function"==typeof Array.isArray?Array.isArray:function(a){return a instanceof Array},defaultHeaders={contentType:"application/x-www-form-urlencoded",requestedWith:xmlHttpRequest,accept:{"*":"text/javascript, text/html, application/xml, text/xml, */*",xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript",js:"application/javascript, text/javascript"}},xhr=function(a){if(a.crossOrigin===!0){var b=win[xmlHttpRequest]?new XMLHttpRequest:null;if(b&&"withCredentials"in b)return b;if(win[xDomainRequest])return new XDomainRequest;throw new Error("Browser does not support cross-origin requests")}return win[xmlHttpRequest]?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")},globalSetupOptions={dataFilter:function(a){return a}};return Reqwest.prototype={abort:function(){this._aborted=!0,this.request.abort()},retry:function(){init.call(this,this.o,this.fn)},then:function(a,b){return a=a||function(){},b=b||function(){},this._fulfilled?this._responseArgs.resp=a(this._responseArgs.resp):this._erred?b(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):(this._fulfillmentHandlers.push(a),this._errorHandlers.push(b)),this},always:function(a){return this._fulfilled||this._erred?a(this._responseArgs.resp):this._completeHandlers.push(a),this},fail:function(a){return this._erred?a(this._responseArgs.resp,this._responseArgs.msg,this._responseArgs.t):this._errorHandlers.push(a),this}},reqwest.serializeArray=function(){var a=[];return eachFormElement.apply(function(b,c){a.push({name:b,value:c})},arguments),a},reqwest.serialize=function(){if(0===arguments.length)return"";var a,b,c=Array.prototype.slice.call(arguments,0);return a=c.pop(),a&&a.nodeType&&c.push(a)&&(a=null),a&&(a=a.type),b="map"==a?serializeHash:"array"==a?reqwest.serializeArray:serializeQueryString,b.apply(null,c)},reqwest.toQueryString=function(a,b){var c,d,e=b||!1,f=[],g=encodeURIComponent,h=function(a,b){b="function"==typeof b?b():null==b?"":b,f[f.length]=g(a)+"="+g(b)};if(isArray(a))for(d=0;a&&d<a.length;d++)h(a[d].name,a[d].value);else for(c in a)a.hasOwnProperty(c)&&buildParams(c,a[c],e,h);return f.join("&").replace(/%20/g,"+")},reqwest.getcallbackPrefix=function(){return callbackPrefix},reqwest.compat=function(a,b){return a&&(a.type&&(a.method=a.type)&&delete a.type,a.dataType&&(a.type=a.dataType),a.jsonpCallback&&(a.jsonpCallbackName=a.jsonpCallback)&&delete a.jsonpCallback,a.jsonp&&(a.jsonpCallback=a.jsonp)),new Reqwest(a,b)},reqwest.ajaxSetup=function(a){a=a||{};for(var b in a)globalSetupOptions[b]=a[b]},reqwest}),function(){function a(a){this.message=a}var b="undefined"!=typeof exports?exports:this,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";a.prototype=new Error,a.prototype.name="InvalidCharacterError",b.btoa||(b.btoa=function(b){for(var d,e,f=0,g=c,h="";b.charAt(0|f)||(g="=",f%1);h+=g.charAt(63&d>>8-f%1*8)){if(e=b.charCodeAt(f+=.75),e>255)throw new a("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");d=d<<8|e}return h}),b.atob||(b.atob=function(b){if(b=b.replace(/=+$/,""),b.length%4==1)throw new a("'atob' failed: The string to be decoded is not correctly encoded.");for(var d,e,f=0,g=0,h="";e=b.charAt(g++);~e&&(d=f%4?64*d+e:e,f++%4)?h+=String.fromCharCode(255&d>>(-2*f&6)):0)e=c.indexOf(e);return h})}();var HiPay=function(a,b){return a.allowedParameters={card_number:!0,card_holder:!0,card_expiry_month:!0,card_expiry_year:!0,cvc:!0,multi_use:!0,generate_request_id:!0},a.target="production",a.username="",a.publicKey="",a.isCardNumberValid=function(a){if(/[^0-9-\s]+/.test(a))return!1;var b=0,c=0,d=!1;a=a.replace(/\D/g,"");for(var e=a.length-1;e>=0;e--){var f=a.charAt(e),c=parseInt(f,10);d&&(c*=2)>9&&(c-=9),b+=c,d=!d}return b%10==0},a.isValid=function(b){var c={code:0,message:""},d=[];for(key in b)1!=a.allowedParameters[key]&&d.push(key);if(d.length>0){c.code=408;var e="unallowed parameters: {";for(key in d)console.log(d[key]),e+=d[key]+" ";e+="}",e+=" allowed parameters are: {";for(key in a.allowedParameters)e+=key,e+=" ";e+="}",c.message=e}return a.isCardNumberValid(b.card_number)||(c.code=409,c.message="cardNumber is invalid : luhn check failed"),c},a.setTarget=function(b){a.target=b},a.getTarget=function(){return a.target},a.setCredentials=function(b,c){a.username=b,a.publicKey=c},a.create=function(c,d,e){if(c.card_expiry_month.length<2&&(c.card_expiry_month="0"+c.card_expiry_month),2==c.card_expiry_year.length&&(c.card_expiry_year="20"+c.card_expiry_year),errors=a.isValid(c),0!=errors.code)e(errors);else{var f="https://secure2-vault.hipay-tpp.com/rest/v2/token/create.json";"test"==a.getTarget()||"stage"==a.getTarget()?f="https://stage-secure2-vault.hipay-tpp.com/rest/v2/token/create.json":"dev"==a.getTarget()&&(f="http://dev-secure2-vault.hipay-tpp.com/rest/v2/token/create.json"),"generate_request_id"in c||(c.generate_request_id=0),b({url:f,crossOrigin:!0,method:"post",headers:{Authorization:"Basic "+window.btoa(a.username+":"+a.publicKey)},data:c,success:function(a){"undefined"!=typeof a.code?e({code:a.code,message:a.message}):d(a)},error:function(a){obj=JSON.parse(a.response),e({code:obj.code,message:obj.message})}})}},a}(HiPay||{},reqwest);