BillSAFE_3 - Version 14.11.05

Version Notes

Stable Release

Download this release

Release Info

Developer Kristian Büsch
Extension BillSAFE_3
Version 14.11.05
Comparing to
See all releases


Code changes from version 14.09.15 to 14.11.05

app/code/community/Netresearch/Billsafe/Helper/Order.php CHANGED
@@ -154,7 +154,7 @@ class Netresearch_Billsafe_Helper_Order extends Mage_Payment_Helper_Data
154
  {
155
  try {
156
  $params = $this->prepareParamsForPrevalidateOrder($quote);
157
- return Mage::getModel('billsafe/client')->prevalidateOrder($params);
158
  } catch (Exception $e) {
159
  return new stdClass();
160
  }
@@ -172,7 +172,7 @@ class Netresearch_Billsafe_Helper_Order extends Mage_Payment_Helper_Data
172
  public function processOrder($quote, $order)
173
  {
174
  $params = $this->prepareParamsForProcessOrder($quote, $order);
175
- $result = Mage::getModel('billsafe/client')->processOrder($params);
176
  return $result;
177
  }
178
 
@@ -643,12 +643,10 @@ class Netresearch_Billsafe_Helper_Order extends Mage_Payment_Helper_Data
643
  'tax_amount' => 0
644
  );
645
  foreach ($order->getAllItems() as $item) {
646
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
647
- if (false === $this->getHelper()->isFeeItem($item) && ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
648
- || $product->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE)
649
- )
650
- {
651
-
652
  $qty = $item->getQtyOrdered() - $item->getQtyRefunded() - $item->getQtyCanceled();
653
  $number = sprintf('%d-%s', $item->getItemId(), $item->getSku());
654
  $data['data'][] = array(
@@ -774,15 +772,14 @@ class Netresearch_Billsafe_Helper_Order extends Mage_Payment_Helper_Data
774
  * @param Mage_Sales_Model_Order $order - order of shipping
775
  * @return boolean - all physical items of order are shipped
776
  */
777
- protected function areAllPhysicalItemsShipped(Mage_Sales_Model_Order $order) {
 
778
  $shipmentCollection = $order->getShipmentsCollection();
779
 
780
  foreach ($order->getAllItems() as $item) {
781
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
782
- if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
783
- || $product->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE
784
- )
785
- {
786
  continue;
787
  }
788
 
154
  {
155
  try {
156
  $params = $this->prepareParamsForPrevalidateOrder($quote);
157
+ return Mage::getModel('billsafe/client')->prevalidateOrder($params, $quote);
158
  } catch (Exception $e) {
159
  return new stdClass();
160
  }
172
  public function processOrder($quote, $order)
173
  {
174
  $params = $this->prepareParamsForProcessOrder($quote, $order);
175
+ $result = Mage::getModel('billsafe/client')->processOrder($params, $quote);
176
  return $result;
177
  }
178
 
643
  'tax_amount' => 0
644
  );
645
  foreach ($order->getAllItems() as $item) {
646
+ if (!$this->getHelper()->isFeeItem($item)
647
+ && (($item->getProduct()->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
648
+ || $item->getProduct()->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE))
649
+ ) {
 
 
650
  $qty = $item->getQtyOrdered() - $item->getQtyRefunded() - $item->getQtyCanceled();
651
  $number = sprintf('%d-%s', $item->getItemId(), $item->getSku());
652
  $data['data'][] = array(
772
  * @param Mage_Sales_Model_Order $order - order of shipping
773
  * @return boolean - all physical items of order are shipped
774
  */
775
+ protected function areAllPhysicalItemsShipped(Mage_Sales_Model_Order $order)
776
+ {
777
  $shipmentCollection = $order->getShipmentsCollection();
778
 
779
  foreach ($order->getAllItems() as $item) {
780
+ if ( ($item->getProduct()->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
781
+ || $item->getProduct()->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE)
782
+ ) {
 
 
783
  continue;
784
  }
785
 
app/code/community/Netresearch/Billsafe/Model/Client.php CHANGED
@@ -116,7 +116,7 @@ class Netresearch_Billsafe_Model_Client
116
  {
117
  $params = array_merge(
118
  Mage::helper('billsafe/order')->getPreparedOrderParams($order),
119
- $this->getDefaultParams()
120
  );
121
 
122
  $this->_response = $this->getClient()->prepareOrder($params);
@@ -157,7 +157,7 @@ class Netresearch_Billsafe_Model_Client
157
 
158
  public function getHelper()
159
  {
160
- return Mage::helper('billsafe');
161
  }
162
 
163
  /**
@@ -222,10 +222,12 @@ class Netresearch_Billsafe_Model_Client
222
  */
223
  public function getTransactionResult($token)
224
  {
 
225
  $params = array_merge(
226
  array('token' => $token),
227
  $this->getDefaultParams()
228
  );
 
229
  $this->_response = $this->getClient()->getTransactionResult($params);
230
  return $this;
231
  }
@@ -400,9 +402,9 @@ class Netresearch_Billsafe_Model_Client
400
  *
401
  * @return mixed
402
  */
403
- public function prevalidateOrder($params)
404
  {
405
- $params = array_merge($this->getDefaultParams(), $params);
406
  return $this->getClient()->prevalidateOrder($params);
407
  }
408
 
@@ -413,10 +415,10 @@ class Netresearch_Billsafe_Model_Client
413
  *
414
  * @return mixed
415
  */
416
- public function processOrder($params)
417
  {
418
  $result = array();
419
- $params = array_merge($this->getDefaultParams(), $params);
420
  $wsResult = $this->getClient()->processOrder($params);
421
  if (strtolower(trim($wsResult->ack)) != 'ok') {
422
  if (property_exists($wsResult, 'errorList')) {
116
  {
117
  $params = array_merge(
118
  Mage::helper('billsafe/order')->getPreparedOrderParams($order),
119
+ $this->getDefaultParams($order)
120
  );
121
 
122
  $this->_response = $this->getClient()->prepareOrder($params);
157
 
158
  public function getHelper()
159
  {
160
+ return Mage::helper('billsafe/data');
161
  }
162
 
163
  /**
222
  */
223
  public function getTransactionResult($token)
224
  {
225
+ $this->getConfig()->setScopeId($this->getHelper()->getStoreIdfromQuote());
226
  $params = array_merge(
227
  array('token' => $token),
228
  $this->getDefaultParams()
229
  );
230
+
231
  $this->_response = $this->getClient()->getTransactionResult($params);
232
  return $this;
233
  }
402
  *
403
  * @return mixed
404
  */
405
+ public function prevalidateOrder($params, $quote = null)
406
  {
407
+ $params = array_merge($this->getDefaultParams($quote), $params);
408
  return $this->getClient()->prevalidateOrder($params);
409
  }
410
 
415
  *
416
  * @return mixed
417
  */
418
+ public function processOrder($params, $quote = null)
419
  {
420
  $result = array();
421
+ $params = array_merge($this->getDefaultParams($quote), $params);
422
  $wsResult = $this->getClient()->processOrder($params);
423
  if (strtolower(trim($wsResult->ack)) != 'ok') {
424
  if (property_exists($wsResult, 'errorList')) {
app/code/community/Netresearch/Billsafe/Model/Payment.php CHANGED
@@ -37,6 +37,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
37
  public function setConfig($config)
38
  {
39
  $this->_config = $config;
 
40
  return $this;
41
  }
42
 
@@ -51,6 +52,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
51
  return $this->_config;
52
  }
53
  $this->_config = Mage::getSingleton('billsafe/config');
 
54
  return $this->_config;
55
  }
56
 
@@ -70,6 +72,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
70
  if (null == $this->_dataHelper) {
71
  $this->_dataHelper = Mage::helper('billsafe/data');
72
  }
 
73
  return $this->_dataHelper;
74
  }
75
 
@@ -86,15 +89,14 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
86
  */
87
  public function getOrderHelper()
88
  {
89
- if(null == $this->_orderHelper){
90
  $this->_orderHelper = Mage::helper('billsafe/order');
91
  }
 
92
  return $this->_orderHelper;
93
  }
94
 
95
 
96
-
97
-
98
  /**
99
  * Check if payment method is available for current order
100
  *
@@ -108,7 +110,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
108
  && true === Mage::getSingleton('customer/session')->getData('authorize_failed')
109
  && $quote instanceof Mage_Sales_Model_Quote
110
  && $this->getOrderHelper()->generateAddressHash($quote->getBillingAddress())
111
- == Mage::getSingleton('customer/session')->getData('billsafe_billingAddrHash')
112
  ) {
113
  return false;
114
  }
@@ -124,7 +126,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
124
 
125
  if ($quote) {
126
  // total amount must fit between min and max amount
127
- $total = (float) $quote->getGrandTotal();
128
  $minAmount = $this->getConfig()->getBillSafeMinAmount($quote->getStoreId());
129
  $maxAmount = $this->getConfig()->getBillSafeMaxAmount($quote->getStoreId());
130
  if ($total < $minAmount || $total > $maxAmount) {
@@ -132,8 +134,8 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
132
  }
133
  // Check Min and Fax of Fee
134
  if ($this->getConfig()->isPaymentFeeEnabled($quote->getStoreId())) {
135
- $feeProduct = Mage::helper('paymentfee/data')->getUpdatedFeeProduct();
136
- $avoidOverMax = $this->getConfig()->isBillsafeExeedingMaxFeeAmount($quote->getStoreId());
137
  $avoidBelowMin = $this->getConfig()->isBillsafeExeedingMinFeeAmount($quote->getStoreId());
138
 
139
  if ($avoidOverMax && $feeProduct->getExceedsMaxAmount()) {
@@ -155,7 +157,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
155
  $shippingAddress = $quote->getShippingAddress();
156
  if (false == $shippingAddress->getSameAsBilling()) {
157
  $shippingData = $this->serializeAddress($shippingAddress);
158
- $billingData = $this->serializeAddress($quote->getBillingAddress());
159
 
160
  if (0 != strcmp($shippingData, $billingData)) {
161
  return false;
@@ -177,7 +179,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
177
 
178
 
179
  /**
180
- * check if alle quote items are virtuel
181
  *
182
  * @param Mage_Sales_Model_Quote $quote
183
  * @return boolean
@@ -188,9 +190,9 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
188
  if ($quote) {
189
  $virtualItemCounter = null;
190
  foreach ($quote->getAllItems() as $item) {
191
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
192
- if($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
193
- ||$product->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE) {
194
  ++$virtualItemCounter;
195
 
196
  }
@@ -199,6 +201,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
199
  $result = true;
200
  }
201
  }
 
202
  return $result;
203
  }
204
 
@@ -213,22 +216,25 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
213
  {
214
  try {
215
  if ($quote->getBillingAddress() instanceof Mage_Sales_Model_Quote_Address
216
- && 0 < strlen($quote->getBillingAddress()->getPostcode())) {
 
217
  $prevalidateResult = $this->getOrderHelper()->prevalidateOrder($quote);
218
  if (strtolower(trim($prevalidateResult->ack)) != 'ok' ||
219
  (property_exists($prevalidateResult, 'invoice') &&
220
- (bool) $prevalidateResult->invoice->isAvailable == false)
221
  ) {
222
  if (property_exists($prevalidateResult, 'invoice')) {
223
  $this->_unavailableMessage
224
  = $prevalidateResult->invoice->message;
225
  }
226
  $this->_availableCheck = false;
 
227
  return false;
228
  }
229
  }
230
- $this->_availableCheck = true;
231
  $this->_unavailableMessage = '';
 
232
  return true;
233
  } catch (Exception $e) {
234
  $this->getDataHelper()->log('Exception during prevalidateOrder call ' . $e->getMessage());
@@ -249,11 +255,11 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
249
  $data = serialize(
250
  array(
251
  'firstname' => $address->getFirstname(),
252
- 'lastname' => $address->getLastname(),
253
- 'company' => $address->getCompany(),
254
- 'street' => $address->getStreet(),
255
- 'city' => $address->getCity(),
256
- 'postcode' => $address->getPostcode(),
257
  )
258
  );
259
 
@@ -293,6 +299,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
293
  }
294
 
295
  $storeId = $this->getDataHelper()->getStoreIdfromQuote();
 
296
  return sprintf(
297
  '%s?token=%s',
298
  $this->getClient()->getConfig()->getGatewayUrl($storeId),
@@ -304,7 +311,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
304
  * authorize
305
  *
306
  * @param Varien_Object $payment
307
- * @param float $amount
308
  *
309
  * @return void
310
  */
@@ -312,9 +319,9 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
312
  {
313
 
314
  parent::authorize($payment, $amount);
315
- $order = $this->getInfoInstance()->getOrder();
316
- $quote = $order->getQuote();
317
- $section = $this->getCheckoutSection($order);
318
  $buyerMessage = "Please select another payment method!";
319
  if ($this->getOrderHelper()->isBillsafeOnsiteCheckout($quote)) {
320
  $result = array();
@@ -330,7 +337,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
330
  true
331
  );
332
  $addressHash = $this->getOrderHelper()
333
- ->generateAddressHash($quote->getBillingAddress());
334
  Mage::getSingleton('customer/session')->setData(
335
  'billsafe_billingAddrHash',
336
  $addressHash
@@ -354,12 +361,12 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
354
  ->setTransactionId($result['transactionId'])
355
  ->setTxnId($result['transactionId']);
356
  $state = $this->getConfig()
357
- ->getBillSafeOrderStatus($order->getStoreId());
358
  if ('pending' == $state) {
359
  $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
360
  }
361
 
362
- $text = 'Successful BillSAFE payment.<br/>Transaction ID: ' .
363
  '%d.<br/>BillSAFE Transaction Status: ACCEPTED.';
364
  $notice = $this->getDataHelper()->__($text, $result['transactionId']);
365
  $this->getOrderHelper()->getPaymentInstruction($order);
@@ -388,8 +395,8 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
388
  $token = null;
389
  try {
390
  $token = $this->getClient()
391
- ->prepareOrder($this->getInfoInstance()->getOrder())
392
- ->getResponseToken();
393
  } catch (Exception $e) {
394
  $this->getDataHelper()->log('error getting the token ' . $e->getMessage());
395
  }
@@ -416,7 +423,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
416
  * Capture
417
  *
418
  * @param Varien_Object $payment
419
- * @param float $amount
420
  *
421
  * @return Netresearch_Billsafe_Model_Payment
422
  */
@@ -432,6 +439,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
432
  if ($this->areThereUninvoicedItems($payment)) {
433
  Mage::register(self::REGISTRY_ORDER_SHOULD_BE_CANCELLED, true);
434
  }
 
435
  return $this;
436
  }
437
 
@@ -457,11 +465,11 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
457
  $invoices = $payment->getOrder()->getInvoiceCollection();
458
  foreach ($invoices as $invoice) {
459
  foreach ($invoice->getAllItems() as $item) {
460
- $product = Mage::getModel('catalog/product')->load($item->getProductId());
461
  $parentIdArray = array();
462
  if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) {
463
  $configurableProductModel = Mage::getModel('catalog/product_type_configurable');
464
- $parentIdArray = $configurableProductModel->getParentIdsByChild($product->getId());
465
  }
466
  if ((0 < $product->getId() && $product->isVirtual()) ||
467
  0 < count($parentIdArray)
@@ -476,23 +484,25 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
476
  }
477
 
478
  $orderItem = $item->getOrderItem();
479
- if ((float) $orderItem->getQtyShipped() != (float) $orderItem->getQtyInvoiced()
480
  ) {
481
  return false;
482
  }
483
  }
484
  }
 
485
  return true;
486
  }
487
 
488
  protected function areThereUninvoicedItems($payment)
489
  {
490
  foreach ($payment->getOrder()->getAllItems() as $item) {
491
- if ((float) $item->getQtyOrdered() > (float) $item->getQtyInvoiced()
492
  ) {
493
  return true;
494
  }
495
  }
 
496
  return false;
497
  }
498
 
@@ -507,6 +517,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
507
  if (!$invoice) {
508
  return true;
509
  }
 
510
  return $invoice->getOrder()->getInvoiceCollection()->count() <= 1;
511
  }
512
 
@@ -522,6 +533,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
522
  if ($payment->getOrder()->getState() !== Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW) {
523
  $this->getClient()->void($payment->getOrder());
524
  }
 
525
  return parent::cancel($payment);
526
  }
527
 
@@ -529,7 +541,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
529
  * refund
530
  *
531
  * @param Varien_Object $payment
532
- * @param float $amount
533
  *
534
  * @return void
535
  */
@@ -538,6 +550,7 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
538
  $this->getClient()->updateArticleList(
539
  $payment->getOrder(), Netresearch_Billsafe_Model_Client::TYPE_RF
540
  );
 
541
  return parent::refund($payment, $amount);
542
  }
543
 
@@ -561,10 +574,12 @@ class Netresearch_Billsafe_Model_Payment extends Mage_Payment_Model_Method_Abstr
561
  protected function getCheckoutSection($order)
562
  {
563
  $section = 'shipping_method';
564
- if (false === ($order->getShippingAddress() instanceof Mage_Sales_Model_Order_Address)
565
- || 0 === strlen(trim($order->getShippingAddress()->getPostcode()))) {
 
566
  $section = 'billing';
567
  }
 
568
  return $section;
569
  }
570
  }
37
  public function setConfig($config)
38
  {
39
  $this->_config = $config;
40
+
41
  return $this;
42
  }
43
 
52
  return $this->_config;
53
  }
54
  $this->_config = Mage::getSingleton('billsafe/config');
55
+
56
  return $this->_config;
57
  }
58
 
72
  if (null == $this->_dataHelper) {
73
  $this->_dataHelper = Mage::helper('billsafe/data');
74
  }
75
+
76
  return $this->_dataHelper;
77
  }
78
 
89
  */
90
  public function getOrderHelper()
91
  {
92
+ if (null == $this->_orderHelper) {
93
  $this->_orderHelper = Mage::helper('billsafe/order');
94
  }
95
+
96
  return $this->_orderHelper;
97
  }
98
 
99
 
 
 
100
  /**
101
  * Check if payment method is available for current order
102
  *
110
  && true === Mage::getSingleton('customer/session')->getData('authorize_failed')
111
  && $quote instanceof Mage_Sales_Model_Quote
112
  && $this->getOrderHelper()->generateAddressHash($quote->getBillingAddress())
113
+ == Mage::getSingleton('customer/session')->getData('billsafe_billingAddrHash')
114
  ) {
115
  return false;
116
  }
126
 
127
  if ($quote) {
128
  // total amount must fit between min and max amount
129
+ $total = (float)$quote->getGrandTotal();
130
  $minAmount = $this->getConfig()->getBillSafeMinAmount($quote->getStoreId());
131
  $maxAmount = $this->getConfig()->getBillSafeMaxAmount($quote->getStoreId());
132
  if ($total < $minAmount || $total > $maxAmount) {
134
  }
135
  // Check Min and Fax of Fee
136
  if ($this->getConfig()->isPaymentFeeEnabled($quote->getStoreId())) {
137
+ $feeProduct = Mage::helper('paymentfee/data')->getUpdatedFeeProduct();
138
+ $avoidOverMax = $this->getConfig()->isBillsafeExeedingMaxFeeAmount($quote->getStoreId());
139
  $avoidBelowMin = $this->getConfig()->isBillsafeExeedingMinFeeAmount($quote->getStoreId());
140
 
141
  if ($avoidOverMax && $feeProduct->getExceedsMaxAmount()) {
157
  $shippingAddress = $quote->getShippingAddress();
158
  if (false == $shippingAddress->getSameAsBilling()) {
159
  $shippingData = $this->serializeAddress($shippingAddress);
160
+ $billingData = $this->serializeAddress($quote->getBillingAddress());
161
 
162
  if (0 != strcmp($shippingData, $billingData)) {
163
  return false;
179
 
180
 
181
  /**
182
+ * check if all quote items are virtual
183
  *
184
  * @param Mage_Sales_Model_Quote $quote
185
  * @return boolean
190
  if ($quote) {
191
  $virtualItemCounter = null;
192
  foreach ($quote->getAllItems() as $item) {
193
+ if ($item->getProduct()->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
194
+ || $item->getProduct()->getTypeId() == Mage_Downloadable_Model_Product_Type::TYPE_DOWNLOADABLE
195
+ ) {
196
  ++$virtualItemCounter;
197
 
198
  }
201
  $result = true;
202
  }
203
  }
204
+
205
  return $result;
206
  }
207
 
216
  {
217
  try {
218
  if ($quote->getBillingAddress() instanceof Mage_Sales_Model_Quote_Address
219
+ && 0 < strlen($quote->getBillingAddress()->getPostcode())
220
+ ) {
221
  $prevalidateResult = $this->getOrderHelper()->prevalidateOrder($quote);
222
  if (strtolower(trim($prevalidateResult->ack)) != 'ok' ||
223
  (property_exists($prevalidateResult, 'invoice') &&
224
+ (bool)$prevalidateResult->invoice->isAvailable == false)
225
  ) {
226
  if (property_exists($prevalidateResult, 'invoice')) {
227
  $this->_unavailableMessage
228
  = $prevalidateResult->invoice->message;
229
  }
230
  $this->_availableCheck = false;
231
+
232
  return false;
233
  }
234
  }
235
+ $this->_availableCheck = true;
236
  $this->_unavailableMessage = '';
237
+
238
  return true;
239
  } catch (Exception $e) {
240
  $this->getDataHelper()->log('Exception during prevalidateOrder call ' . $e->getMessage());
255
  $data = serialize(
256
  array(
257
  'firstname' => $address->getFirstname(),
258
+ 'lastname' => $address->getLastname(),
259
+ 'company' => $address->getCompany(),
260
+ 'street' => $address->getStreet(),
261
+ 'city' => $address->getCity(),
262
+ 'postcode' => $address->getPostcode(),
263
  )
264
  );
265
 
299
  }
300
 
301
  $storeId = $this->getDataHelper()->getStoreIdfromQuote();
302
+
303
  return sprintf(
304
  '%s?token=%s',
305
  $this->getClient()->getConfig()->getGatewayUrl($storeId),
311
  * authorize
312
  *
313
  * @param Varien_Object $payment
314
+ * @param float $amount
315
  *
316
  * @return void
317
  */
319
  {
320
 
321
  parent::authorize($payment, $amount);
322
+ $order = $this->getInfoInstance()->getOrder();
323
+ $quote = $order->getQuote();
324
+ $section = $this->getCheckoutSection($order);
325
  $buyerMessage = "Please select another payment method!";
326
  if ($this->getOrderHelper()->isBillsafeOnsiteCheckout($quote)) {
327
  $result = array();
337
  true
338
  );
339
  $addressHash = $this->getOrderHelper()
340
+ ->generateAddressHash($quote->getBillingAddress());
341
  Mage::getSingleton('customer/session')->setData(
342
  'billsafe_billingAddrHash',
343
  $addressHash
361
  ->setTransactionId($result['transactionId'])
362
  ->setTxnId($result['transactionId']);
363
  $state = $this->getConfig()
364
+ ->getBillSafeOrderStatus($order->getStoreId());
365
  if ('pending' == $state) {
366
  $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
367
  }
368
 
369
+ $text = 'Successful BillSAFE payment.<br/>Transaction ID: ' .
370
  '%d.<br/>BillSAFE Transaction Status: ACCEPTED.';
371
  $notice = $this->getDataHelper()->__($text, $result['transactionId']);
372
  $this->getOrderHelper()->getPaymentInstruction($order);
395
  $token = null;
396
  try {
397
  $token = $this->getClient()
398
+ ->prepareOrder($this->getInfoInstance()->getOrder())
399
+ ->getResponseToken();
400
  } catch (Exception $e) {
401
  $this->getDataHelper()->log('error getting the token ' . $e->getMessage());
402
  }
423
  * Capture
424
  *
425
  * @param Varien_Object $payment
426
+ * @param float $amount
427
  *
428
  * @return Netresearch_Billsafe_Model_Payment
429
  */
439
  if ($this->areThereUninvoicedItems($payment)) {
440
  Mage::register(self::REGISTRY_ORDER_SHOULD_BE_CANCELLED, true);
441
  }
442
+
443
  return $this;
444
  }
445
 
465
  $invoices = $payment->getOrder()->getInvoiceCollection();
466
  foreach ($invoices as $invoice) {
467
  foreach ($invoice->getAllItems() as $item) {
468
+ $product = Mage::getModel('catalog/product')->load($item->getProductId());
469
  $parentIdArray = array();
470
  if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE) {
471
  $configurableProductModel = Mage::getModel('catalog/product_type_configurable');
472
+ $parentIdArray = $configurableProductModel->getParentIdsByChild($product->getId());
473
  }
474
  if ((0 < $product->getId() && $product->isVirtual()) ||
475
  0 < count($parentIdArray)
484
  }
485
 
486
  $orderItem = $item->getOrderItem();
487
+ if ((float)$orderItem->getQtyShipped() != (float)$orderItem->getQtyInvoiced()
488
  ) {
489
  return false;
490
  }
491
  }
492
  }
493
+
494
  return true;
495
  }
496
 
497
  protected function areThereUninvoicedItems($payment)
498
  {
499
  foreach ($payment->getOrder()->getAllItems() as $item) {
500
+ if ((float)$item->getQtyOrdered() > (float)$item->getQtyInvoiced()
501
  ) {
502
  return true;
503
  }
504
  }
505
+
506
  return false;
507
  }
508
 
517
  if (!$invoice) {
518
  return true;
519
  }
520
+
521
  return $invoice->getOrder()->getInvoiceCollection()->count() <= 1;
522
  }
523
 
533
  if ($payment->getOrder()->getState() !== Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW) {
534
  $this->getClient()->void($payment->getOrder());
535
  }
536
+
537
  return parent::cancel($payment);
538
  }
539
 
541
  * refund
542
  *
543
  * @param Varien_Object $payment
544
+ * @param float $amount
545
  *
546
  * @return void
547
  */
550
  $this->getClient()->updateArticleList(
551
  $payment->getOrder(), Netresearch_Billsafe_Model_Client::TYPE_RF
552
  );
553
+
554
  return parent::refund($payment, $amount);
555
  }
556
 
574
  protected function getCheckoutSection($order)
575
  {
576
  $section = 'shipping_method';
577
+ if (false === ($order->getShippingAddress() instanceof Mage_Sales_Model_Order_Address)
578
+ || 0 === strlen(trim($order->getShippingAddress()->getPostcode()))
579
+ ) {
580
  $section = 'billing';
581
  }
582
+
583
  return $section;
584
  }
585
  }
app/code/community/Netresearch/Billsafe/Test/Helper/OrderTest/fixtures/orders.yaml CHANGED
@@ -1,6 +1,7 @@
1
  eav:
2
  catalog_product:
3
  - entity_id: 1
 
4
  type_id: virtual
5
  sku: book
6
  name: Book
@@ -9,6 +10,7 @@ eav:
9
  url_key: book
10
 
11
  - entity_id: 2
 
12
  type_id: simple
13
  sku: book
14
  name: Book
1
  eav:
2
  catalog_product:
3
  - entity_id: 1
4
+ attribute_set_id: 4
5
  type_id: virtual
6
  sku: book
7
  name: Book
10
  url_key: book
11
 
12
  - entity_id: 2
13
+ attribute_set_id: 4
14
  type_id: simple
15
  sku: book
16
  name: Book
app/code/community/Netresearch/Billsafe/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Netresearch_Billsafe>
5
- <version>14.09.15</version>
6
  </Netresearch_Billsafe>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <Netresearch_Billsafe>
5
+ <version>14.11.05</version>
6
  </Netresearch_Billsafe>
7
  </modules>
8
 
doc/Netresearch_Billsafe/ChangeLog.pdf CHANGED
@@ -91,7 +91,7 @@ endobj
91
  % 'R8': class PDFInfo
92
  8 0 obj
93
  << /Author ()
94
- /CreationDate (D:20140915152116-01'00')
95
  /Keywords ()
96
  /Producer (ReportLab http://www.reportlab.com)
97
  /Subject (\(unspecified\))
@@ -108,7 +108,7 @@ endobj
108
  % 'R10': class PDFStream
109
  10 0 obj
110
  % page stream
111
- << /Length 11138 >>
112
  stream
113
  1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
114
  q
@@ -129,25 +129,25 @@ q
129
  1 0 0 1 62.69291 638.3307 cm
130
  Q
131
  q
132
- 1 0 0 1 62.69291 110.3307 cm
133
  1 1 1 rg
134
- n 0 528 469.8898 -18 re f*
135
  .878431 .878431 .878431 rg
136
- n 0 510 469.8898 -66 re f*
137
  1 1 1 rg
138
- n 0 444 469.8898 -144 re f*
139
  .878431 .878431 .878431 rg
140
- n 0 300 469.8898 -36 re f*
141
  1 1 1 rg
142
- n 0 264 469.8898 -144 re f*
143
  .878431 .878431 .878431 rg
144
- n 0 120 469.8898 -120 re f*
145
  .960784 .960784 .862745 rg
146
- n 0 528 469.8898 -18 re f*
147
  0 .533333 .603922 rg
148
  BT /F1 10 Tf 12 TL ET
149
  q
150
- 1 0 0 1 6 513 cm
151
  q
152
  .960784 .960784 .862745 rg
153
  n 0 0 46.73622 12 re f*
@@ -158,7 +158,7 @@ BT 1 0 0 1 0 4.82 Tm /F2 10 Tf 12 TL 2.52811 0 Td (Revision) Tj T* -2.52811 0 Td
158
  Q
159
  Q
160
  q
161
- 1 0 0 1 64.73622 513 cm
162
  q
163
  .960784 .960784 .862745 rg
164
  n 0 0 46.73622 12 re f*
@@ -169,7 +169,7 @@ BT 1 0 0 1 0 4.82 Tm /F2 10 Tf 12 TL 12.53311 0 Td (Date) Tj T* -12.53311 0 Td E
169
  Q
170
  Q
171
  q
172
- 1 0 0 1 123.4724 513 cm
173
  q
174
  .960784 .960784 .862745 rg
175
  n 0 0 340.4173 12 re f*
@@ -181,34 +181,122 @@ Q
181
  Q
182
  0 0 0 rg
183
  q
184
- 1 0 0 1 6 495 cm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  q
186
  0 0 0 rg
187
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.09.15) Tj T* ET
188
  Q
189
  Q
190
  q
191
- 1 0 0 1 64.73622 495 cm
192
  q
193
  0 0 0 rg
194
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-09-15) Tj T* ET
195
  Q
196
  Q
197
  q
198
- 1 0 0 1 123.4724 495 cm
199
  q
200
  0 0 0 rg
201
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
202
  Q
203
  Q
204
  q
205
- 1 0 0 1 123.4724 489 cm
206
  Q
207
  q
208
- 1 0 0 1 123.4724 489 cm
209
  Q
210
  q
211
- 1 0 0 1 123.4724 477 cm
212
  0 0 0 rg
213
  BT /F1 10 Tf 12 TL ET
214
  q
@@ -229,10 +317,10 @@ q
229
  Q
230
  Q
231
  q
232
- 1 0 0 1 123.4724 471 cm
233
  Q
234
  q
235
- 1 0 0 1 123.4724 447 cm
236
  0 0 0 rg
237
  BT /F1 10 Tf 12 TL ET
238
  q
@@ -253,37 +341,37 @@ q
253
  Q
254
  Q
255
  q
256
- 1 0 0 1 123.4724 447 cm
257
  Q
258
  q
259
- 1 0 0 1 6 429 cm
260
  q
261
  0 0 0 rg
262
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.04.24) Tj T* ET
263
  Q
264
  Q
265
  q
266
- 1 0 0 1 64.73622 429 cm
267
  q
268
  0 0 0 rg
269
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-04-24) Tj T* ET
270
  Q
271
  Q
272
  q
273
- 1 0 0 1 123.4724 429 cm
274
  q
275
  0 0 0 rg
276
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
277
  Q
278
  Q
279
  q
280
- 1 0 0 1 123.4724 423 cm
281
  Q
282
  q
283
- 1 0 0 1 123.4724 423 cm
284
  Q
285
  q
286
- 1 0 0 1 123.4724 411 cm
287
  0 0 0 rg
288
  BT /F1 10 Tf 12 TL ET
289
  q
@@ -304,10 +392,10 @@ q
304
  Q
305
  Q
306
  q
307
- 1 0 0 1 123.4724 405 cm
308
  Q
309
  q
310
- 1 0 0 1 123.4724 393 cm
311
  0 0 0 rg
312
  BT /F1 10 Tf 12 TL ET
313
  q
@@ -328,10 +416,10 @@ q
328
  Q
329
  Q
330
  q
331
- 1 0 0 1 123.4724 387 cm
332
  Q
333
  q
334
- 1 0 0 1 123.4724 375 cm
335
  0 0 0 rg
336
  BT /F1 10 Tf 12 TL ET
337
  q
@@ -352,23 +440,23 @@ q
352
  Q
353
  Q
354
  q
355
- 1 0 0 1 123.4724 375 cm
356
  Q
357
  q
358
- 1 0 0 1 123.4724 363 cm
359
  q
360
  0 0 0 rg
361
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
362
  Q
363
  Q
364
  q
365
- 1 0 0 1 123.4724 357 cm
366
  Q
367
  q
368
- 1 0 0 1 123.4724 357 cm
369
  Q
370
  q
371
- 1 0 0 1 123.4724 333 cm
372
  0 0 0 rg
373
  BT /F1 10 Tf 12 TL ET
374
  q
@@ -389,10 +477,10 @@ q
389
  Q
390
  Q
391
  q
392
- 1 0 0 1 123.4724 327 cm
393
  Q
394
  q
395
- 1 0 0 1 123.4724 303 cm
396
  0 0 0 rg
397
  BT /F1 10 Tf 12 TL ET
398
  q
@@ -413,37 +501,37 @@ q
413
  Q
414
  Q
415
  q
416
- 1 0 0 1 123.4724 303 cm
417
  Q
418
  q
419
- 1 0 0 1 6 285 cm
420
  q
421
  0 0 0 rg
422
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.03.31) Tj T* ET
423
  Q
424
  Q
425
  q
426
- 1 0 0 1 64.73622 285 cm
427
  q
428
  0 0 0 rg
429
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-03-31) Tj T* ET
430
  Q
431
  Q
432
  q
433
- 1 0 0 1 123.4724 285 cm
434
  q
435
  0 0 0 rg
436
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
437
  Q
438
  Q
439
  q
440
- 1 0 0 1 123.4724 279 cm
441
  Q
442
  q
443
- 1 0 0 1 123.4724 279 cm
444
  Q
445
  q
446
- 1 0 0 1 123.4724 267 cm
447
  0 0 0 rg
448
  BT /F1 10 Tf 12 TL ET
449
  q
@@ -464,37 +552,37 @@ q
464
  Q
465
  Q
466
  q
467
- 1 0 0 1 123.4724 267 cm
468
  Q
469
  q
470
- 1 0 0 1 6 249 cm
471
  q
472
  0 0 0 rg
473
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.03.27) Tj T* ET
474
  Q
475
  Q
476
  q
477
- 1 0 0 1 64.73622 249 cm
478
  q
479
  0 0 0 rg
480
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-03-27) Tj T* ET
481
  Q
482
  Q
483
  q
484
- 1 0 0 1 123.4724 249 cm
485
  q
486
  0 0 0 rg
487
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
488
  Q
489
  Q
490
  q
491
- 1 0 0 1 123.4724 243 cm
492
  Q
493
  q
494
- 1 0 0 1 123.4724 243 cm
495
  Q
496
  q
497
- 1 0 0 1 123.4724 231 cm
498
  0 0 0 rg
499
  BT /F1 10 Tf 12 TL ET
500
  q
@@ -515,10 +603,10 @@ q
515
  Q
516
  Q
517
  q
518
- 1 0 0 1 123.4724 225 cm
519
  Q
520
  q
521
- 1 0 0 1 123.4724 201 cm
522
  0 0 0 rg
523
  BT /F1 10 Tf 12 TL ET
524
  q
@@ -539,23 +627,23 @@ q
539
  Q
540
  Q
541
  q
542
- 1 0 0 1 123.4724 201 cm
543
  Q
544
  q
545
- 1 0 0 1 123.4724 189 cm
546
  q
547
  0 0 0 rg
548
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
549
  Q
550
  Q
551
  q
552
- 1 0 0 1 123.4724 183 cm
553
  Q
554
  q
555
- 1 0 0 1 123.4724 183 cm
556
  Q
557
  q
558
- 1 0 0 1 123.4724 159 cm
559
  0 0 0 rg
560
  BT /F1 10 Tf 12 TL ET
561
  q
@@ -576,10 +664,10 @@ q
576
  Q
577
  Q
578
  q
579
- 1 0 0 1 123.4724 153 cm
580
  Q
581
  q
582
- 1 0 0 1 123.4724 141 cm
583
  0 0 0 rg
584
  BT /F1 10 Tf 12 TL ET
585
  q
@@ -600,10 +688,10 @@ q
600
  Q
601
  Q
602
  q
603
- 1 0 0 1 123.4724 135 cm
604
  Q
605
  q
606
- 1 0 0 1 123.4724 123 cm
607
  0 0 0 rg
608
  BT /F1 10 Tf 12 TL ET
609
  q
@@ -624,37 +712,104 @@ q
624
  Q
625
  Q
626
  q
627
- 1 0 0 1 123.4724 123 cm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
628
  Q
629
  q
630
- 1 0 0 1 6 105 cm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
631
  q
632
  0 0 0 rg
633
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (13.12.13) Tj T* ET
634
  Q
635
  Q
636
  q
637
- 1 0 0 1 64.73622 105 cm
638
  q
639
  0 0 0 rg
640
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2013-12-13) Tj T* ET
641
  Q
642
  Q
643
  q
644
- 1 0 0 1 123.4724 105 cm
645
  q
646
  0 0 0 rg
647
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
648
  Q
649
  Q
650
  q
651
- 1 0 0 1 123.4724 99 cm
652
  Q
653
  q
654
- 1 0 0 1 123.4724 99 cm
655
  Q
656
  q
657
- 1 0 0 1 123.4724 87 cm
658
  0 0 0 rg
659
  BT /F1 10 Tf 12 TL ET
660
  q
@@ -675,10 +830,10 @@ q
675
  Q
676
  Q
677
  q
678
- 1 0 0 1 123.4724 81 cm
679
  Q
680
  q
681
- 1 0 0 1 123.4724 69 cm
682
  0 0 0 rg
683
  BT /F1 10 Tf 12 TL ET
684
  q
@@ -699,10 +854,10 @@ q
699
  Q
700
  Q
701
  q
702
- 1 0 0 1 123.4724 63 cm
703
  Q
704
  q
705
- 1 0 0 1 123.4724 51 cm
706
  0 0 0 rg
707
  BT /F1 10 Tf 12 TL ET
708
  q
@@ -723,23 +878,23 @@ q
723
  Q
724
  Q
725
  q
726
- 1 0 0 1 123.4724 51 cm
727
  Q
728
  q
729
- 1 0 0 1 123.4724 39 cm
730
  q
731
  0 0 0 rg
732
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Other:) Tj T* ET
733
  Q
734
  Q
735
  q
736
- 1 0 0 1 123.4724 33 cm
737
  Q
738
  q
739
- 1 0 0 1 123.4724 33 cm
740
  Q
741
  q
742
- 1 0 0 1 123.4724 21 cm
743
  0 0 0 rg
744
  BT /F1 10 Tf 12 TL ET
745
  q
@@ -760,10 +915,10 @@ q
760
  Q
761
  Q
762
  q
763
- 1 0 0 1 123.4724 15 cm
764
  Q
765
  q
766
- 1 0 0 1 123.4724 3 cm
767
  0 0 0 rg
768
  BT /F1 10 Tf 12 TL ET
769
  q
@@ -784,74 +939,9 @@ q
784
  Q
785
  Q
786
  q
787
- 1 0 0 1 123.4724 3 cm
788
- Q
789
- q
790
- 1 J
791
- 1 j
792
- 0 0 0 RG
793
- .25 w
794
- n 0 0 m 469.8898 0 l S
795
- n 0 510 m 469.8898 510 l S
796
- n 0 444 m 469.8898 444 l S
797
- n 0 300 m 469.8898 300 l S
798
- n 0 264 m 469.8898 264 l S
799
- n 0 120 m 469.8898 120 l S
800
- n 58.73622 0 m 58.73622 528 l S
801
- n 117.4724 0 m 117.4724 528 l S
802
- n 0 528 m 469.8898 528 l S
803
- n 0 0 m 0 528 l S
804
- n 469.8898 0 m 469.8898 528 l S
805
- Q
806
- Q
807
- q
808
- 1 0 0 1 426.3422 728.5039 cm
809
- q
810
- 112.2405 0 0 56.69291 0 0 cm
811
- /FormXob.18bc7d0fa4f3fb8d73595ba746f125e6 Do
812
- Q
813
  Q
814
  q
815
- 1 0 0 1 56.69291 56.69291 cm
816
- 0 0 0 rg
817
- BT /F1 10 Tf 12 TL ET
818
- q
819
- 1 0 0 1 6 3 cm
820
- q
821
- BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Stand: 20.02.2012) Tj T* ET
822
- Q
823
- Q
824
- q
825
- 1 0 0 1 246.9449 3 cm
826
- q
827
- 0 0 0 rg
828
- BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 215.0449 0 Td (1/2) Tj T* -215.0449 0 Td ET
829
- Q
830
- Q
831
- q
832
- Q
833
- Q
834
-
835
- endstream
836
-
837
- endobj
838
- % 'R11': class PDFStream
839
- 11 0 obj
840
- % page stream
841
- << /Length 3756 >>
842
- stream
843
- 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
844
- q
845
- 1 0 0 1 62.69291 564.3307 cm
846
- 1 1 1 rg
847
- n 0 144 469.8898 -54 re f*
848
- .878431 .878431 .878431 rg
849
- n 0 90 469.8898 -54 re f*
850
- 1 1 1 rg
851
- n 0 36 469.8898 -36 re f*
852
- 0 0 0 rg
853
- BT /F1 10 Tf 12 TL ET
854
- q
855
  1 0 0 1 6 129 cm
856
  q
857
  0 0 0 rg
@@ -1057,21 +1147,22 @@ q
1057
  1 j
1058
  0 0 0 RG
1059
  .25 w
 
1060
  n 0 144 m 469.8898 144 l S
1061
  n 0 90 m 469.8898 90 l S
1062
  n 0 36 m 469.8898 36 l S
1063
- n 58.73622 0 m 58.73622 144 l S
1064
- n 117.4724 0 m 117.4724 144 l S
1065
- n 0 0 m 0 144 l S
1066
- n 469.8898 0 m 469.8898 144 l S
1067
  n 0 0 m 469.8898 0 l S
1068
  Q
1069
  Q
1070
  q
1071
- 1 0 0 1 62.69291 564.3307 cm
1072
  Q
1073
  q
1074
- 1 0 0 1 62.69291 564.3307 cm
1075
  Q
1076
  q
1077
  1 0 0 1 426.3422 728.5039 cm
@@ -1142,19 +1233,19 @@ xref
1142
  0000018391 00000 n
1143
  0000018624 00000 n
1144
  0000018738 00000 n
1145
- 0000029978 00000 n
1146
- 0000033837 00000 n
1147
- 0000033920 00000 n
1148
- 0000034026 00000 n
1149
- 0000034103 00000 n
1150
  trailer
1151
  << /ID
1152
  % ReportLab generated PDF document -- digest (http://www.reportlab.com)
1153
- [(\245\201\374\344"@s-\222#\241!\257\256\266\264) (\245\201\374\344"@s-\222#\241!\257\256\266\264)]
1154
 
1155
  /Info 8 0 R
1156
  /Root 7 0 R
1157
  /Size 16 >>
1158
  startxref
1159
- 34150
1160
  %%EOF
91
  % 'R8': class PDFInfo
92
  8 0 obj
93
  << /Author ()
94
+ /CreationDate (D:20141105115829-01'00')
95
  /Keywords ()
96
  /Producer (ReportLab http://www.reportlab.com)
97
  /Subject (\(unspecified\))
108
  % 'R10': class PDFStream
109
  10 0 obj
110
  % page stream
111
+ << /Length 10080 >>
112
  stream
113
  1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
114
  q
129
  1 0 0 1 62.69291 638.3307 cm
130
  Q
131
  q
132
+ 1 0 0 1 62.69291 164.3307 cm
133
  1 1 1 rg
134
+ n 0 474 469.8898 -18 re f*
135
  .878431 .878431 .878431 rg
136
+ n 0 456 469.8898 -66 re f*
137
  1 1 1 rg
138
+ n 0 390 469.8898 -66 re f*
139
  .878431 .878431 .878431 rg
140
+ n 0 324 469.8898 -144 re f*
141
  1 1 1 rg
142
+ n 0 180 469.8898 -36 re f*
143
  .878431 .878431 .878431 rg
144
+ n 0 144 469.8898 -144 re f*
145
  .960784 .960784 .862745 rg
146
+ n 0 474 469.8898 -18 re f*
147
  0 .533333 .603922 rg
148
  BT /F1 10 Tf 12 TL ET
149
  q
150
+ 1 0 0 1 6 459 cm
151
  q
152
  .960784 .960784 .862745 rg
153
  n 0 0 46.73622 12 re f*
158
  Q
159
  Q
160
  q
161
+ 1 0 0 1 64.73622 459 cm
162
  q
163
  .960784 .960784 .862745 rg
164
  n 0 0 46.73622 12 re f*
169
  Q
170
  Q
171
  q
172
+ 1 0 0 1 123.4724 459 cm
173
  q
174
  .960784 .960784 .862745 rg
175
  n 0 0 340.4173 12 re f*
181
  Q
182
  0 0 0 rg
183
  q
184
+ 1 0 0 1 6 441 cm
185
+ q
186
+ 0 0 0 rg
187
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.11.05) Tj T* ET
188
+ Q
189
+ Q
190
+ q
191
+ 1 0 0 1 64.73622 441 cm
192
+ q
193
+ 0 0 0 rg
194
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-11-05) Tj T* ET
195
+ Q
196
+ Q
197
+ q
198
+ 1 0 0 1 123.4724 441 cm
199
+ q
200
+ 0 0 0 rg
201
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
202
+ Q
203
+ Q
204
+ q
205
+ 1 0 0 1 123.4724 435 cm
206
+ Q
207
+ q
208
+ 1 0 0 1 123.4724 435 cm
209
+ Q
210
+ q
211
+ 1 0 0 1 123.4724 423 cm
212
+ 0 0 0 rg
213
+ BT /F1 10 Tf 12 TL ET
214
+ q
215
+ 1 0 0 1 6 -3 cm
216
+ q
217
+ 0 0 0 rg
218
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
219
+ Q
220
+ Q
221
+ q
222
+ 1 0 0 1 23 -3 cm
223
+ q
224
+ 0 0 0 rg
225
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Increase performance in checkout) Tj T* ET
226
+ Q
227
+ Q
228
+ q
229
+ Q
230
+ Q
231
+ q
232
+ 1 0 0 1 123.4724 423 cm
233
+ Q
234
+ q
235
+ 1 0 0 1 123.4724 411 cm
236
+ q
237
+ 0 0 0 rg
238
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Bugfixes:) Tj T* ET
239
+ Q
240
+ Q
241
+ q
242
+ 1 0 0 1 123.4724 405 cm
243
+ Q
244
+ q
245
+ 1 0 0 1 123.4724 405 cm
246
+ Q
247
+ q
248
+ 1 0 0 1 123.4724 393 cm
249
+ 0 0 0 rg
250
+ BT /F1 10 Tf 12 TL ET
251
+ q
252
+ 1 0 0 1 6 -3 cm
253
+ q
254
+ 0 0 0 rg
255
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
256
+ Q
257
+ Q
258
+ q
259
+ 1 0 0 1 23 -3 cm
260
+ q
261
+ 0 0 0 rg
262
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Fix multi-store functionality) Tj T* ET
263
+ Q
264
+ Q
265
+ q
266
+ Q
267
+ Q
268
+ q
269
+ 1 0 0 1 123.4724 393 cm
270
+ Q
271
+ q
272
+ 1 0 0 1 6 375 cm
273
  q
274
  0 0 0 rg
275
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.09.15) Tj T* ET
276
  Q
277
  Q
278
  q
279
+ 1 0 0 1 64.73622 375 cm
280
  q
281
  0 0 0 rg
282
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-09-15) Tj T* ET
283
  Q
284
  Q
285
  q
286
+ 1 0 0 1 123.4724 375 cm
287
  q
288
  0 0 0 rg
289
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
290
  Q
291
  Q
292
  q
293
+ 1 0 0 1 123.4724 369 cm
294
  Q
295
  q
296
+ 1 0 0 1 123.4724 369 cm
297
  Q
298
  q
299
+ 1 0 0 1 123.4724 357 cm
300
  0 0 0 rg
301
  BT /F1 10 Tf 12 TL ET
302
  q
317
  Q
318
  Q
319
  q
320
+ 1 0 0 1 123.4724 351 cm
321
  Q
322
  q
323
+ 1 0 0 1 123.4724 327 cm
324
  0 0 0 rg
325
  BT /F1 10 Tf 12 TL ET
326
  q
341
  Q
342
  Q
343
  q
344
+ 1 0 0 1 123.4724 327 cm
345
  Q
346
  q
347
+ 1 0 0 1 6 309 cm
348
  q
349
  0 0 0 rg
350
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.04.24) Tj T* ET
351
  Q
352
  Q
353
  q
354
+ 1 0 0 1 64.73622 309 cm
355
  q
356
  0 0 0 rg
357
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-04-24) Tj T* ET
358
  Q
359
  Q
360
  q
361
+ 1 0 0 1 123.4724 309 cm
362
  q
363
  0 0 0 rg
364
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
365
  Q
366
  Q
367
  q
368
+ 1 0 0 1 123.4724 303 cm
369
  Q
370
  q
371
+ 1 0 0 1 123.4724 303 cm
372
  Q
373
  q
374
+ 1 0 0 1 123.4724 291 cm
375
  0 0 0 rg
376
  BT /F1 10 Tf 12 TL ET
377
  q
392
  Q
393
  Q
394
  q
395
+ 1 0 0 1 123.4724 285 cm
396
  Q
397
  q
398
+ 1 0 0 1 123.4724 273 cm
399
  0 0 0 rg
400
  BT /F1 10 Tf 12 TL ET
401
  q
416
  Q
417
  Q
418
  q
419
+ 1 0 0 1 123.4724 267 cm
420
  Q
421
  q
422
+ 1 0 0 1 123.4724 255 cm
423
  0 0 0 rg
424
  BT /F1 10 Tf 12 TL ET
425
  q
440
  Q
441
  Q
442
  q
443
+ 1 0 0 1 123.4724 255 cm
444
  Q
445
  q
446
+ 1 0 0 1 123.4724 243 cm
447
  q
448
  0 0 0 rg
449
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
450
  Q
451
  Q
452
  q
453
+ 1 0 0 1 123.4724 237 cm
454
  Q
455
  q
456
+ 1 0 0 1 123.4724 237 cm
457
  Q
458
  q
459
+ 1 0 0 1 123.4724 213 cm
460
  0 0 0 rg
461
  BT /F1 10 Tf 12 TL ET
462
  q
477
  Q
478
  Q
479
  q
480
+ 1 0 0 1 123.4724 207 cm
481
  Q
482
  q
483
+ 1 0 0 1 123.4724 183 cm
484
  0 0 0 rg
485
  BT /F1 10 Tf 12 TL ET
486
  q
501
  Q
502
  Q
503
  q
504
+ 1 0 0 1 123.4724 183 cm
505
  Q
506
  q
507
+ 1 0 0 1 6 165 cm
508
  q
509
  0 0 0 rg
510
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.03.31) Tj T* ET
511
  Q
512
  Q
513
  q
514
+ 1 0 0 1 64.73622 165 cm
515
  q
516
  0 0 0 rg
517
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-03-31) Tj T* ET
518
  Q
519
  Q
520
  q
521
+ 1 0 0 1 123.4724 165 cm
522
  q
523
  0 0 0 rg
524
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
525
  Q
526
  Q
527
  q
528
+ 1 0 0 1 123.4724 159 cm
529
  Q
530
  q
531
+ 1 0 0 1 123.4724 159 cm
532
  Q
533
  q
534
+ 1 0 0 1 123.4724 147 cm
535
  0 0 0 rg
536
  BT /F1 10 Tf 12 TL ET
537
  q
552
  Q
553
  Q
554
  q
555
+ 1 0 0 1 123.4724 147 cm
556
  Q
557
  q
558
+ 1 0 0 1 6 129 cm
559
  q
560
  0 0 0 rg
561
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (14.03.27) Tj T* ET
562
  Q
563
  Q
564
  q
565
+ 1 0 0 1 64.73622 129 cm
566
  q
567
  0 0 0 rg
568
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2014-03-27) Tj T* ET
569
  Q
570
  Q
571
  q
572
+ 1 0 0 1 123.4724 129 cm
573
  q
574
  0 0 0 rg
575
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
576
  Q
577
  Q
578
  q
579
+ 1 0 0 1 123.4724 123 cm
580
  Q
581
  q
582
+ 1 0 0 1 123.4724 123 cm
583
  Q
584
  q
585
+ 1 0 0 1 123.4724 111 cm
586
  0 0 0 rg
587
  BT /F1 10 Tf 12 TL ET
588
  q
603
  Q
604
  Q
605
  q
606
+ 1 0 0 1 123.4724 105 cm
607
  Q
608
  q
609
+ 1 0 0 1 123.4724 81 cm
610
  0 0 0 rg
611
  BT /F1 10 Tf 12 TL ET
612
  q
627
  Q
628
  Q
629
  q
630
+ 1 0 0 1 123.4724 81 cm
631
  Q
632
  q
633
+ 1 0 0 1 123.4724 69 cm
634
  q
635
  0 0 0 rg
636
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Improvements:) Tj T* ET
637
  Q
638
  Q
639
  q
640
+ 1 0 0 1 123.4724 63 cm
641
  Q
642
  q
643
+ 1 0 0 1 123.4724 63 cm
644
  Q
645
  q
646
+ 1 0 0 1 123.4724 39 cm
647
  0 0 0 rg
648
  BT /F1 10 Tf 12 TL ET
649
  q
664
  Q
665
  Q
666
  q
667
+ 1 0 0 1 123.4724 33 cm
668
  Q
669
  q
670
+ 1 0 0 1 123.4724 21 cm
671
  0 0 0 rg
672
  BT /F1 10 Tf 12 TL ET
673
  q
688
  Q
689
  Q
690
  q
691
+ 1 0 0 1 123.4724 15 cm
692
  Q
693
  q
694
+ 1 0 0 1 123.4724 3 cm
695
  0 0 0 rg
696
  BT /F1 10 Tf 12 TL ET
697
  q
712
  Q
713
  Q
714
  q
715
+ 1 0 0 1 123.4724 3 cm
716
+ Q
717
+ q
718
+ 1 J
719
+ 1 j
720
+ 0 0 0 RG
721
+ .25 w
722
+ n 0 0 m 469.8898 0 l S
723
+ n 0 456 m 469.8898 456 l S
724
+ n 0 390 m 469.8898 390 l S
725
+ n 0 324 m 469.8898 324 l S
726
+ n 0 180 m 469.8898 180 l S
727
+ n 0 144 m 469.8898 144 l S
728
+ n 58.73622 0 m 58.73622 474 l S
729
+ n 117.4724 0 m 117.4724 474 l S
730
+ n 0 474 m 469.8898 474 l S
731
+ n 0 0 m 0 474 l S
732
+ n 469.8898 0 m 469.8898 474 l S
733
+ Q
734
+ Q
735
+ q
736
+ 1 0 0 1 426.3422 728.5039 cm
737
+ q
738
+ 112.2405 0 0 56.69291 0 0 cm
739
+ /FormXob.18bc7d0fa4f3fb8d73595ba746f125e6 Do
740
+ Q
741
  Q
742
  q
743
+ 1 0 0 1 56.69291 56.69291 cm
744
+ 0 0 0 rg
745
+ BT /F1 10 Tf 12 TL ET
746
+ q
747
+ 1 0 0 1 6 3 cm
748
+ q
749
+ BT 1 0 0 1 0 4.82 Tm 12 TL /F1 10 Tf 0 0 0 rg (Stand: 20.02.2012) Tj T* ET
750
+ Q
751
+ Q
752
+ q
753
+ 1 0 0 1 246.9449 3 cm
754
+ q
755
+ 0 0 0 rg
756
+ BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL 215.0449 0 Td (1/2) Tj T* -215.0449 0 Td ET
757
+ Q
758
+ Q
759
+ q
760
+ Q
761
+ Q
762
+
763
+ endstream
764
+
765
+ endobj
766
+ % 'R11': class PDFStream
767
+ 11 0 obj
768
+ % page stream
769
+ << /Length 6118 >>
770
+ stream
771
+ 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
772
+ q
773
+ 1 0 0 1 62.69291 444.3307 cm
774
+ 1 1 1 rg
775
+ n 0 264 469.8898 -120 re f*
776
+ .878431 .878431 .878431 rg
777
+ n 0 144 469.8898 -54 re f*
778
+ 1 1 1 rg
779
+ n 0 90 469.8898 -54 re f*
780
+ .878431 .878431 .878431 rg
781
+ n 0 36 469.8898 -36 re f*
782
+ 0 0 0 rg
783
+ BT /F1 10 Tf 12 TL ET
784
+ q
785
+ 1 0 0 1 6 249 cm
786
  q
787
  0 0 0 rg
788
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (13.12.13) Tj T* ET
789
  Q
790
  Q
791
  q
792
+ 1 0 0 1 64.73622 249 cm
793
  q
794
  0 0 0 rg
795
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (2013-12-13) Tj T* ET
796
  Q
797
  Q
798
  q
799
+ 1 0 0 1 123.4724 249 cm
800
  q
801
  0 0 0 rg
802
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Features:) Tj T* ET
803
  Q
804
  Q
805
  q
806
+ 1 0 0 1 123.4724 243 cm
807
  Q
808
  q
809
+ 1 0 0 1 123.4724 243 cm
810
  Q
811
  q
812
+ 1 0 0 1 123.4724 231 cm
813
  0 0 0 rg
814
  BT /F1 10 Tf 12 TL ET
815
  q
830
  Q
831
  Q
832
  q
833
+ 1 0 0 1 123.4724 225 cm
834
  Q
835
  q
836
+ 1 0 0 1 123.4724 213 cm
837
  0 0 0 rg
838
  BT /F1 10 Tf 12 TL ET
839
  q
854
  Q
855
  Q
856
  q
857
+ 1 0 0 1 123.4724 207 cm
858
  Q
859
  q
860
+ 1 0 0 1 123.4724 195 cm
861
  0 0 0 rg
862
  BT /F1 10 Tf 12 TL ET
863
  q
878
  Q
879
  Q
880
  q
881
+ 1 0 0 1 123.4724 195 cm
882
  Q
883
  q
884
+ 1 0 0 1 123.4724 183 cm
885
  q
886
  0 0 0 rg
887
  BT 1 0 0 1 0 4.82 Tm /F1 10 Tf 12 TL (Other:) Tj T* ET
888
  Q
889
  Q
890
  q
891
+ 1 0 0 1 123.4724 177 cm
892
  Q
893
  q
894
+ 1 0 0 1 123.4724 177 cm
895
  Q
896
  q
897
+ 1 0 0 1 123.4724 165 cm
898
  0 0 0 rg
899
  BT /F1 10 Tf 12 TL ET
900
  q
915
  Q
916
  Q
917
  q
918
+ 1 0 0 1 123.4724 159 cm
919
  Q
920
  q
921
+ 1 0 0 1 123.4724 147 cm
922
  0 0 0 rg
923
  BT /F1 10 Tf 12 TL ET
924
  q
939
  Q
940
  Q
941
  q
942
+ 1 0 0 1 123.4724 147 cm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
943
  Q
944
  q
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
945
  1 0 0 1 6 129 cm
946
  q
947
  0 0 0 rg
1147
  1 j
1148
  0 0 0 RG
1149
  .25 w
1150
+ n 0 264 m 469.8898 264 l S
1151
  n 0 144 m 469.8898 144 l S
1152
  n 0 90 m 469.8898 90 l S
1153
  n 0 36 m 469.8898 36 l S
1154
+ n 58.73622 0 m 58.73622 264 l S
1155
+ n 117.4724 0 m 117.4724 264 l S
1156
+ n 0 0 m 0 264 l S
1157
+ n 469.8898 0 m 469.8898 264 l S
1158
  n 0 0 m 469.8898 0 l S
1159
  Q
1160
  Q
1161
  q
1162
+ 1 0 0 1 62.69291 444.3307 cm
1163
  Q
1164
  q
1165
+ 1 0 0 1 62.69291 444.3307 cm
1166
  Q
1167
  q
1168
  1 0 0 1 426.3422 728.5039 cm
1233
  0000018391 00000 n
1234
  0000018624 00000 n
1235
  0000018738 00000 n
1236
+ 0000028920 00000 n
1237
+ 0000035141 00000 n
1238
+ 0000035224 00000 n
1239
+ 0000035330 00000 n
1240
+ 0000035407 00000 n
1241
  trailer
1242
  << /ID
1243
  % ReportLab generated PDF document -- digest (http://www.reportlab.com)
1244
+ [(ii1\272X&\343\235\317u\265\216p\230f\320) (ii1\272X&\343\235\317u\265\216p\230f\320)]
1245
 
1246
  /Info 8 0 R
1247
  /Root 7 0 R
1248
  /Size 16 >>
1249
  startxref
1250
+ 35454
1251
  %%EOF
doc/Netresearch_Billsafe/README.pdf CHANGED
@@ -1482,7 +1482,7 @@ endobj
1482
  % 'R85': class PDFInfo
1483
  85 0 obj
1484
  << /Author ()
1485
- /CreationDate (D:20140915152113-01'00')
1486
  /Keywords ()
1487
  /Producer (ReportLab http://www.reportlab.com)
1488
  /Subject (\(unspecified\))
@@ -3972,7 +3972,7 @@ xref
3972
  trailer
3973
  << /ID
3974
  % ReportLab generated PDF document -- digest (http://www.reportlab.com)
3975
- [(H\206/z\302\265\235\254{\334_\363'\007\211+) (H\206/z\302\265\235\254{\334_\363'\007\211+)]
3976
 
3977
  /Info 85 0 R
3978
  /Root 84 0 R
1482
  % 'R85': class PDFInfo
1483
  85 0 obj
1484
  << /Author ()
1485
+ /CreationDate (D:20141105115826-01'00')
1486
  /Keywords ()
1487
  /Producer (ReportLab http://www.reportlab.com)
1488
  /Subject (\(unspecified\))
3972
  trailer
3973
  << /ID
3974
  % ReportLab generated PDF document -- digest (http://www.reportlab.com)
3975
+ [(i\306G\254\)\212\240u<L\015\223\024\271Oe) (i\306G\254\)\212\240u<L\015\223\024\271Oe)]
3976
 
3977
  /Info 85 0 R
3978
  /Root 84 0 R
package.xml CHANGED
@@ -1,2 +1,2 @@
1
  <?xml version="1.0"?>
2
- <package><name>BillSAFE_3</name><version>14.09.15</version><stability>stable</stability><license>OSL3</license><channel>community</channel><extends></extends><summary>Billsafe Extension</summary><description>Billsafe Extension</description><notes>Stable Release</notes><authors><author><name>Kristian B&#xFC;sch</name><user>kbuesch</user><email>kbuesch@paypal.com</email></author></authors><date>2014-09-15</date><time>6:21:17</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="doc"><dir name="Netresearch_Billsafe"><file name="ChangeLog.pdf" hash="9300f6a0c1152f321be7401f0bc6b0c8"/><file name="README.pdf" hash="3b9e83f32e8ad218323dd62091de3f20"/></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="billsafe.css" hash="7129eaa8338c84c1bf338474d7e3960a"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><dir name="netresearch_billsafe"><file name="tools.js" hash="6cb930de689601d7603cc91a81254df2"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="locale"><dir name="de_DE"><file name="Netresearch_Billsafe.csv" hash="a83cb634b1d78453bddce3a17cb4ae78"/><file name="Netresearch_PaymentFee.csv" hash="ee08fa2cb6ed0a660db7df18696f5e17"/></dir><dir name="en_US"><file name="Netresearch_PaymentFee.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="billsafe"><file name="info.phtml" hash="229d7e88ed38ba2a413c9323e12c1aa0"/><dir name="customer"><dir name="widget"><file name="dob.phtml" hash="c394734c5a350a2e47c143f2398935cb"/></dir></dir><dir name="payment"><file name="form.phtml" hash="ca6ec537cfc8c0434341757c9ec286d5"/></dir></dir></dir><dir name="layout"><file name="billsafe.xml" hash="7ba46fd84f8faa378ab61e32dfa9ceac"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="billsafe"><file name="info.phtml" hash="8183491543dcffc7f66af9fb06740e80"/><dir name="pdf"><file name="info.phtml" hash="125e58bd1eb021106ad45c0e9b960f01"/><file name="mrg.phtml" hash="68c1f430c50cdb9d413369a7defa6a03"/></dir><dir name="sales"><dir name="order"><dir name="view"><dir name="tab"><file name="billsafe.phtml" hash="ae109285c168cf9e7a9e74f75a6a9f95"/></dir><dir name="pause"><file name="form.phtml" hash="6000a6ae279e518cd0bdfed4ef29caef"/></dir><dir name="payment"><file name="form.phtml" hash="af3ddfe15cedc2bd55d96b4a15adf0ce"/><file name="overview.phtml" hash="d89beb6d5723e7836dcaff003277ff5d"/></dir></dir></dir></dir><dir name="system"><dir name="config"><file name="paymentfeecheck.phtml" hash="cd5cfb1357c3885965dcfaf9b3da4eaa"/></dir></dir></dir></dir><dir name="layout"><file name="billsafe.xml" hash="90385354ea88d4500dc3622f4c7099ea"/></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Netresearch"><dir name="PaymentFee"><dir name="Test"><dir name="Model"><file name="ObserverTest.php" hash="32ba1f9b3fb8e8a9372da43f8fc9368e"/></dir><dir name="Config"><file name="ConfigTest.php" hash="cf41bf5d7cb77e4d9a4de4dbb5186512"/></dir></dir><dir name="Helper"><file name="Data.php" hash="41ca5369190288ea1eb14e2a591b6d97"/></dir><dir name="Model"><file name="Observer.php" hash="2e4d2b0faaf6af72e209c7fb40b81b51"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Payment"><file name="Methods.php" hash="5e49ffdd605a2b9dcc21c351c3afb075"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeeController.php" hash="5763a58bfd3f11b3ae41d5949724f0e8"/></dir></dir><dir name="etc"><file name="config.xml" hash="6beccc3c342a85000f0f454fc43b8503"/><file name="system.xml" hash="32ac7aabae936ec08aefb6b112f88b26"/></dir></dir><dir name="Billsafe"><dir name="sql"><dir name="billsafe_setup"><file name="mysql4-install-0.1.0.php" hash="9906e49a293cc8511f2ce53be301b3d3"/><file name="mysql4-upgrade-11.09.14-11.11.07.php" hash="f74406fe3e100c69a020bca556ad1ce3"/><file name="upgrade-14.03.31-14.04.24.php" hash="a45a3180f316b89e087610253bb33f17"/></dir></dir><dir name="Test"><dir name="Controller"><file name="PaymentControllerTest.php" hash="4e1d3d289b0b0a7b341665fc89786ae4"/><dir name="Adminhtml"><file name="ApiControllerTest.php" hash="cb28bbeeae785cb3d75e0269eb3b60a4"/></dir></dir><dir name="Helper"><file name="CustomerTest.php" hash="60cb8197887c5bf362db5ea665ff6604"/><file name="DataTest.php" hash="8f686edf7b28a91e34af8f76d4f18bbe"/><file name="OrderTest.php" hash="d937c5ef5c9aedcf3e860fb4b38abd69"/><dir name="OrderTest"><dir name="fixtures"><file name="orders.yaml" hash="14e05b7bda0018f195e61f8bb596f160"/></dir></dir></dir><dir name="Model"><file name="ClientTest.php" hash="3b07f50da1cb3bc834da87559b0068f8"/><file name="ConfigTest.php" hash="573c49b344797d08a6241d85e2db891a"/><file name="ObserverTest.php" hash="1b31ce8b23861ae063b1f3f9ddf656e3"/><file name="PaymentTest.php" hash="1054a12c8bc977c9ed199f857aedac6b"/><dir name="Direct"><file name="PaymentTest.php" hash="6c20cb26ffbf8becb722e5ec5c0a2120"/></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="GenderTest.php" hash="d197bd797a59d302f5fbc72e250adfa4"/></dir></dir></dir></dir><dir name="ConfigTest"><file name="MaxAmountTest.php" hash="541b765fd57003e331b14b9041561fa3"/><file name="MaxFeeTest.php" hash="d235c1f0e874d5bf02e34ad5fd345271"/></dir></dir><dir name="Block"><file name="InfoTest.php" hash="7d1973a3d3e71f2d543484c8e873f3d8"/><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="BillsafeTest.php" hash="0044382a97e111021e9f14170563385e"/></dir><dir name="Payment"><file name="FormTest.php" hash="355914243fe0ba3ad215c2ea642b304c"/></dir><dir name="Pause"><file name="FormTest.php" hash="e9591638dca53f732d944c7202f5bb8e"/></dir></dir></dir></dir></dir><dir name="Payment"><file name="FormTest.php" hash="53a4a81423abd719cd1c41203a582f8f"/></dir><dir name="Customer"><dir name="Widget"><file name="DobTest.php" hash="279ab2bebbef665ebb1a44c8ef93327a"/></dir></dir></dir><dir name="var"><dir name="fixtures"><file name="orders.yaml" hash="1834f843a1ffa084adc4c872f48d90f9"/><file name="stores.yaml" hash="21a5d3104574c6f1bf9ff05f74196748"/></dir></dir></dir><dir name="Helper"><file name="Customer.php" hash="f37e82ba46d0bdd0dae0dfefbe44d5f9"/><file name="Data.php" hash="d3285e9bbb1e145a94238f1276d1bf0b"/><file name="Order.php" hash="6dbe6e206924e8a1d3e9e439dddce069"/></dir><dir name="Model"><file name="Client.php" hash="6d7ba386fa59132c6e74f73e7a4f26b3"/><file name="Config.php" hash="40a4fbe7429cddf73be185b07951d014"/><file name="Observer.php" hash="63e43223d65468d0deff0dd2a43ac0ce"/><file name="Payment.php" hash="4f30faad67b9b1b3e9bae92b0b8a8074"/><dir name="Pdf"><dir name="Engine"><dir name="Invoice"><file name="Default.php" hash="463521a517d8cc7ef027d7373c2375cd"/></dir></dir><dir name="Items"><file name="Invoice.php" hash="6bab18e87e6e5571a4fc2ccdbe75e5ee"/><dir name="Invoice"><file name="Info.php" hash="b8d7c058b38ebfd786b570dcd626347c"/></dir></dir></dir><dir name="Client"><file name="Base.php" hash="16fbeffcc20585f6e43fda3b0c083d57"/></dir><dir name="Direct"><file name="Payment.php" hash="8a28e833846425d5f469ef5a05a8d6b8"/></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Gender.php" hash="df8f8d18e152cce92297c797262b3671"/></dir></dir></dir></dir><dir name="Config"><file name="Abstract.php" hash="b312beda8b54c385a8626e105e5905c1"/><file name="Exception.php" hash="95bec13e847a6d55c378401a74c4ac0a"/><file name="Maxamount.php" hash="ff7b0fa792582143fa137f03f8010449"/><file name="Maxfee.php" hash="d00786a02526dafc0731eff7da87638e"/></dir><dir name="Resource"><dir name="Direct"><file name="Payment.php" hash="57d2f533ca75bd471cf66ab4b65a0dcc"/><dir name="Payment"><file name="Collection.php" hash="dfec3cce0c4dff943e7d5c79d78b8051"/></dir></dir></dir><dir name="Io"><file name="Settlement.php" hash="66d634ce636f12b6e2ab328bcd5a5eb8"/></dir></dir><dir name="controllers"><file name="PaymentController.php" hash="679dcfb519954dadc7df00b825d66de0"/><dir name="Adminhtml"><file name="ApiController.php" hash="3d59a049dc17aa45b1eecf1ae0a55d8e"/></dir></dir><dir name="Block"><file name="Info.php" hash="fcdafba1b69989b09535c9ae414ba180"/><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><file name="Totalbar.php" hash="db5c1edc70c1fe25e3852785c4c3f0b8"/><dir name="View"><dir name="Tab"><file name="Billsafe.php" hash="b0af07aa1177d80b81975e6ca70a1de9"/></dir><dir name="Payment"><file name="Form.php" hash="ec06a2c8d58d2d353776f6dcec042bca"/><file name="Overview.php" hash="ecedd24e6d2b571d891e7d15f3ef3be9"/></dir><dir name="Pause"><file name="Form.php" hash="1da87b75824bcd3822ff32f141754a3a"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><file name="Paymentfeecheck.php" hash="fdace6ddea9c5c2fac8b264df834012e"/></dir></dir></dir><dir name="Payment"><file name="Form.php" hash="408222b6f364337775177d55e9e395d6"/></dir><dir name="Customer"><dir name="Widget"><file name="Dob.php" hash="26a34b88060d80e5b1f1e6412b1eb7d4"/></dir></dir></dir><dir name="data"><dir name="billsafe_setup"><file name="data-upgrade-14.03.31-14.04.03.php" hash="ccad741d9ab4f942a6dda51318f75ce1"/></dir></dir><dir name="etc"><file name="config.xml" hash="d0f13acb4b226fa14febbb2773cc6ef8"/><file name="system.xml" hash="c71210f9426b905d62173e47918340aa"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Netresearch_Billsafe.xml" hash="8d4f15dddfcc1034a78b4e9782db7770"/><file name="Netresearch_PaymentFee.xml" hash="66173a1777313e72fbee83b510f9d59d"/></dir></dir></dir></target></contents></package>
1
  <?xml version="1.0"?>
2
+ <package><name>BillSAFE_3</name><version>14.11.05</version><stability>stable</stability><license>OSL3</license><channel>community</channel><extends></extends><summary>Billsafe Extension</summary><description>Billsafe Extension</description><notes>Stable Release</notes><authors><author><name>Kristian B&#xFC;sch</name><user>kbuesch</user><email>kbuesch@paypal.com</email></author></authors><date>2014-11-05</date><time>2:58:29</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="doc"><dir name="Netresearch_Billsafe"><file name="ChangeLog.pdf" hash="9d934a97d04297d8d6d9915258715291"/><file name="README.pdf" hash="1e3f7f25da57bc7a1470a8cececbf0cf"/></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="billsafe.css" hash="7129eaa8338c84c1bf338474d7e3960a"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="js"><dir name="netresearch_billsafe"><file name="tools.js" hash="6cb930de689601d7603cc91a81254df2"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="locale"><dir name="de_DE"><file name="Netresearch_Billsafe.csv" hash="a83cb634b1d78453bddce3a17cb4ae78"/><file name="Netresearch_PaymentFee.csv" hash="ee08fa2cb6ed0a660db7df18696f5e17"/></dir><dir name="en_US"><file name="Netresearch_PaymentFee.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="billsafe"><file name="info.phtml" hash="229d7e88ed38ba2a413c9323e12c1aa0"/><dir name="customer"><dir name="widget"><file name="dob.phtml" hash="c394734c5a350a2e47c143f2398935cb"/></dir></dir><dir name="payment"><file name="form.phtml" hash="ca6ec537cfc8c0434341757c9ec286d5"/></dir></dir></dir><dir name="layout"><file name="billsafe.xml" hash="7ba46fd84f8faa378ab61e32dfa9ceac"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="billsafe"><file name="info.phtml" hash="8183491543dcffc7f66af9fb06740e80"/><dir name="pdf"><file name="info.phtml" hash="125e58bd1eb021106ad45c0e9b960f01"/><file name="mrg.phtml" hash="68c1f430c50cdb9d413369a7defa6a03"/></dir><dir name="sales"><dir name="order"><dir name="view"><dir name="tab"><file name="billsafe.phtml" hash="ae109285c168cf9e7a9e74f75a6a9f95"/></dir><dir name="pause"><file name="form.phtml" hash="6000a6ae279e518cd0bdfed4ef29caef"/></dir><dir name="payment"><file name="form.phtml" hash="af3ddfe15cedc2bd55d96b4a15adf0ce"/><file name="overview.phtml" hash="d89beb6d5723e7836dcaff003277ff5d"/></dir></dir></dir></dir><dir name="system"><dir name="config"><file name="paymentfeecheck.phtml" hash="cd5cfb1357c3885965dcfaf9b3da4eaa"/></dir></dir></dir></dir><dir name="layout"><file name="billsafe.xml" hash="90385354ea88d4500dc3622f4c7099ea"/></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Netresearch"><dir name="PaymentFee"><dir name="Test"><dir name="Model"><file name="ObserverTest.php" hash="32ba1f9b3fb8e8a9372da43f8fc9368e"/></dir><dir name="Config"><file name="ConfigTest.php" hash="cf41bf5d7cb77e4d9a4de4dbb5186512"/></dir></dir><dir name="Helper"><file name="Data.php" hash="41ca5369190288ea1eb14e2a591b6d97"/></dir><dir name="Model"><file name="Observer.php" hash="2e4d2b0faaf6af72e209c7fb40b81b51"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Payment"><file name="Methods.php" hash="5e49ffdd605a2b9dcc21c351c3afb075"/></dir></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeeController.php" hash="5763a58bfd3f11b3ae41d5949724f0e8"/></dir></dir><dir name="etc"><file name="config.xml" hash="6beccc3c342a85000f0f454fc43b8503"/><file name="system.xml" hash="32ac7aabae936ec08aefb6b112f88b26"/></dir></dir><dir name="Billsafe"><dir name="sql"><dir name="billsafe_setup"><file name="mysql4-install-0.1.0.php" hash="9906e49a293cc8511f2ce53be301b3d3"/><file name="mysql4-upgrade-11.09.14-11.11.07.php" hash="f74406fe3e100c69a020bca556ad1ce3"/><file name="upgrade-14.03.31-14.04.24.php" hash="a45a3180f316b89e087610253bb33f17"/></dir></dir><dir name="Test"><dir name="Controller"><file name="PaymentControllerTest.php" hash="4e1d3d289b0b0a7b341665fc89786ae4"/><dir name="Adminhtml"><file name="ApiControllerTest.php" hash="cb28bbeeae785cb3d75e0269eb3b60a4"/></dir></dir><dir name="Helper"><file name="CustomerTest.php" hash="60cb8197887c5bf362db5ea665ff6604"/><file name="DataTest.php" hash="8f686edf7b28a91e34af8f76d4f18bbe"/><file name="OrderTest.php" hash="d937c5ef5c9aedcf3e860fb4b38abd69"/><dir name="OrderTest"><dir name="fixtures"><file name="orders.yaml" hash="aebdec03238a8e8029782d681c85e823"/></dir></dir></dir><dir name="Model"><file name="ClientTest.php" hash="3b07f50da1cb3bc834da87559b0068f8"/><file name="ConfigTest.php" hash="573c49b344797d08a6241d85e2db891a"/><file name="ObserverTest.php" hash="1b31ce8b23861ae063b1f3f9ddf656e3"/><file name="PaymentTest.php" hash="1054a12c8bc977c9ed199f857aedac6b"/><dir name="Direct"><file name="PaymentTest.php" hash="6c20cb26ffbf8becb722e5ec5c0a2120"/></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="GenderTest.php" hash="d197bd797a59d302f5fbc72e250adfa4"/></dir></dir></dir></dir><dir name="ConfigTest"><file name="MaxAmountTest.php" hash="541b765fd57003e331b14b9041561fa3"/><file name="MaxFeeTest.php" hash="d235c1f0e874d5bf02e34ad5fd345271"/></dir></dir><dir name="Block"><file name="InfoTest.php" hash="7d1973a3d3e71f2d543484c8e873f3d8"/><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="BillsafeTest.php" hash="0044382a97e111021e9f14170563385e"/></dir><dir name="Payment"><file name="FormTest.php" hash="355914243fe0ba3ad215c2ea642b304c"/></dir><dir name="Pause"><file name="FormTest.php" hash="e9591638dca53f732d944c7202f5bb8e"/></dir></dir></dir></dir></dir><dir name="Payment"><file name="FormTest.php" hash="53a4a81423abd719cd1c41203a582f8f"/></dir><dir name="Customer"><dir name="Widget"><file name="DobTest.php" hash="279ab2bebbef665ebb1a44c8ef93327a"/></dir></dir></dir><dir name="var"><dir name="fixtures"><file name="orders.yaml" hash="1834f843a1ffa084adc4c872f48d90f9"/><file name="stores.yaml" hash="21a5d3104574c6f1bf9ff05f74196748"/></dir></dir></dir><dir name="Helper"><file name="Customer.php" hash="f37e82ba46d0bdd0dae0dfefbe44d5f9"/><file name="Data.php" hash="d3285e9bbb1e145a94238f1276d1bf0b"/><file name="Order.php" hash="25a4c243132d2b60a058972facf9dd38"/></dir><dir name="Model"><file name="Client.php" hash="5e542d6c66538f37a400937d768a3057"/><file name="Config.php" hash="40a4fbe7429cddf73be185b07951d014"/><file name="Observer.php" hash="63e43223d65468d0deff0dd2a43ac0ce"/><file name="Payment.php" hash="9455c6bd5fda95b64833c4fda870977b"/><dir name="Pdf"><dir name="Engine"><dir name="Invoice"><file name="Default.php" hash="463521a517d8cc7ef027d7373c2375cd"/></dir></dir><dir name="Items"><file name="Invoice.php" hash="6bab18e87e6e5571a4fc2ccdbe75e5ee"/><dir name="Invoice"><file name="Info.php" hash="b8d7c058b38ebfd786b570dcd626347c"/></dir></dir></dir><dir name="Client"><file name="Base.php" hash="16fbeffcc20585f6e43fda3b0c083d57"/></dir><dir name="Direct"><file name="Payment.php" hash="8a28e833846425d5f469ef5a05a8d6b8"/></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Gender.php" hash="df8f8d18e152cce92297c797262b3671"/></dir></dir></dir></dir><dir name="Config"><file name="Abstract.php" hash="b312beda8b54c385a8626e105e5905c1"/><file name="Exception.php" hash="95bec13e847a6d55c378401a74c4ac0a"/><file name="Maxamount.php" hash="ff7b0fa792582143fa137f03f8010449"/><file name="Maxfee.php" hash="d00786a02526dafc0731eff7da87638e"/></dir><dir name="Resource"><dir name="Direct"><file name="Payment.php" hash="57d2f533ca75bd471cf66ab4b65a0dcc"/><dir name="Payment"><file name="Collection.php" hash="dfec3cce0c4dff943e7d5c79d78b8051"/></dir></dir></dir><dir name="Io"><file name="Settlement.php" hash="66d634ce636f12b6e2ab328bcd5a5eb8"/></dir></dir><dir name="controllers"><file name="PaymentController.php" hash="679dcfb519954dadc7df00b825d66de0"/><dir name="Adminhtml"><file name="ApiController.php" hash="3d59a049dc17aa45b1eecf1ae0a55d8e"/></dir></dir><dir name="Block"><file name="Info.php" hash="fcdafba1b69989b09535c9ae414ba180"/><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><file name="Totalbar.php" hash="db5c1edc70c1fe25e3852785c4c3f0b8"/><dir name="View"><dir name="Tab"><file name="Billsafe.php" hash="b0af07aa1177d80b81975e6ca70a1de9"/></dir><dir name="Payment"><file name="Form.php" hash="ec06a2c8d58d2d353776f6dcec042bca"/><file name="Overview.php" hash="ecedd24e6d2b571d891e7d15f3ef3be9"/></dir><dir name="Pause"><file name="Form.php" hash="1da87b75824bcd3822ff32f141754a3a"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><file name="Paymentfeecheck.php" hash="fdace6ddea9c5c2fac8b264df834012e"/></dir></dir></dir><dir name="Payment"><file name="Form.php" hash="408222b6f364337775177d55e9e395d6"/></dir><dir name="Customer"><dir name="Widget"><file name="Dob.php" hash="26a34b88060d80e5b1f1e6412b1eb7d4"/></dir></dir></dir><dir name="data"><dir name="billsafe_setup"><file name="data-upgrade-14.03.31-14.04.03.php" hash="ccad741d9ab4f942a6dda51318f75ce1"/></dir></dir><dir name="etc"><file name="config.xml" hash="1c0eadea95696753da1578e604b7ebc4"/><file name="system.xml" hash="c71210f9426b905d62173e47918340aa"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Netresearch_Billsafe.xml" hash="8d4f15dddfcc1034a78b4e9782db7770"/><file name="Netresearch_PaymentFee.xml" hash="66173a1777313e72fbee83b510f9d59d"/></dir></dir></dir></target></contents></package>