Bitpay_Core - Version 2.1.8

Version Notes

Download this release

Release Info

Developer Integrations Team
Extension Bitpay_Core
Version 2.1.8
Comparing to
See all releases


Code changes from version 2.1.7 to 2.1.8

app/code/community/Bitpay/Core/Block/Iframe.php CHANGED
@@ -23,6 +23,24 @@ class Bitpay_Core_Block_Iframe extends Mage_Checkout_Block_Onepage_Payment
23
  */
24
  public function getIframeUrl()
25
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  if (\Mage::getModel('bitpay/ipn')->getQuotePaid($this->getQuote()->getId())) {
27
  return 'paid'; // quote's already paid, so don't show the iframe
28
  }
@@ -30,60 +48,23 @@ class Bitpay_Core_Block_Iframe extends Mage_Checkout_Block_Onepage_Payment
30
  /*** @var Bitpay_Core_Model_PaymentMethod ***/
31
  $method = $this->getQuote()->getPayment()->getMethodInstance();
32
 
 
 
33
  if (false === isset($method) || true === empty($method)) {
34
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not obtain an instance of the payment method.');
35
  throw new \Exception('In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not obtain an instance of the payment method.');
36
  }
37
 
38
- $options = array_merge(
39
- array(
40
- 'currency' => $this->getQuote()->getQuoteCurrencyCode(),
41
- 'fullNotifications' => 'true',
42
- 'notificationURL' => \Mage::getUrl('bitpay/ipn'),
43
- 'redirectURL' => \Mage::getUrl('checkout/onepage/success'),
44
- 'transactionSpeed' => \Mage::getStoreConfig('payment/bitpay/speed'),
45
- ),
46
- $method->extractAddress($this->getQuote()->getShippingAddress())
47
- );
48
-
49
- if (false === isset($options) || true === empty($options)) {
50
- \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not merge the options array.');
51
- throw new \Exception('In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not merge the options array.');
52
- } else {
53
- \Mage::helper('bitpay')->debugData($options);
54
- }
55
-
56
- // Mage doesn't round the total until saving and it can have more precision
57
- // at this point which would be bad for later comparing records w/ bitpay.
58
- // So round here to match what the price will be saved as:
59
- $price = round($this->getQuote()->getGrandTotal(), 4);
60
-
61
- if (false === isset($price) || true === empty($price)) {
62
- \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not get the new rounded price.');
63
- throw new \Exception('In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not get the new rounded price.');
64
- }
65
-
66
- //serialize info about the quote to detect changes
67
- $hash = $method->getQuoteHash($this->getQuote()->getId());
68
-
69
- if (false === isset($hash) || true === empty($hash)) {
70
- \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not get the quote hash.');
71
- throw new \Exception('In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not merge the quote hash.');
72
- }
73
-
74
- \Mage::helper('bitpay')->registerAutoloader();
75
 
76
- //$invoice = bpCreateInvoice($quoteId, $price, array('quoteId' => $quoteId, 'quoteHash' => $hash), $options);
77
- $invoice = array('url' => 'https://test.bitpay.com/invoice?id=5NxFkXcJbCSivtQRJa4kHP');
78
-
79
- if (array_key_exists('error', $invoice)) {
80
- \Mage::helper('bitpay')->debugData(array('Error creating bitpay invoice', $invoice['error'],));
81
  \Mage::throwException("Error creating BitPay invoice. Please try again or use another payment option.");
82
-
83
  return false;
84
  }
85
 
86
- //return $invoice['url'].'&view=iframe';
87
- return false;
88
  }
89
  }
23
  */
24
  public function getIframeUrl()
25
  {
26
+
27
+ if (!($quote = Mage::getSingleton('checkout/session')->getQuote())
28
+ or !($payment = $quote->getPayment())
29
+ or !($paymentMethod = $payment->getMethod())
30
+ or ($paymentMethod !== 'bitpay')
31
+ or (Mage::getStoreConfig('payment/bitpay/fullscreen')))
32
+ {
33
+ return 'notbitpay';
34
+ }
35
+
36
+ \Mage::helper('bitpay')->registerAutoloader();
37
+
38
+ // fullscreen disabled?
39
+ if (Mage::getStoreConfig('payment/bitpay/fullscreen'))
40
+ {
41
+ return 'disabled';
42
+ }
43
+
44
  if (\Mage::getModel('bitpay/ipn')->getQuotePaid($this->getQuote()->getId())) {
45
  return 'paid'; // quote's already paid, so don't show the iframe
46
  }
48
  /*** @var Bitpay_Core_Model_PaymentMethod ***/
49
  $method = $this->getQuote()->getPayment()->getMethodInstance();
50
 
51
+ $amount = $this->getQuote()->getGrandTotal();
52
+
53
  if (false === isset($method) || true === empty($method)) {
54
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not obtain an instance of the payment method.');
55
  throw new \Exception('In Bitpay_Core_Block_Iframe::getIframeUrl(): Could not obtain an instance of the payment method.');
56
  }
57
 
58
+ $bitcoinMethod = \Mage::getModel('bitpay/method_bitcoin');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
+ try {
61
+ $bitcoinMethod->authorize($payment, $amount, true);
62
+ } catch (\Exception $e) {
63
+ \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Block_Iframe::getIframeUrl(): failed with the message: ' . $e->getMessage());
 
64
  \Mage::throwException("Error creating BitPay invoice. Please try again or use another payment option.");
 
65
  return false;
66
  }
67
 
68
+ return $bitcoinMethod->getOrderPlaceRedirectUrl();
 
69
  }
70
  }
app/code/community/Bitpay/Core/Model/Invoice.php CHANGED
@@ -57,17 +57,17 @@ class Bitpay_Core_Model_Invoice extends Mage_Core_Model_Abstract
57
  * @param Mage_Sales_Model_Order $order
58
  * @return Bitpay_Core_Model_Invoice
59
  */
60
- public function prepateWithOrder($order)
61
  {
62
  if (false === isset($order) || true === empty($order)) {
63
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Model_Invoice::prepateWithOrder(): Missing or empty $order parameter.');
64
  throw new \Exception('In Bitpay_Core_Model_Invoice::prepateWithOrder(): Missing or empty $order parameter.');
65
  }
66
-
67
  $this->addData(
68
  array(
69
- 'quote_id' => $order->getQuoteId(),
70
- 'increment_id' => $order->getIncrementId(),
71
  )
72
  );
73
 
57
  * @param Mage_Sales_Model_Order $order
58
  * @return Bitpay_Core_Model_Invoice
59
  */
60
+ public function prepareWithOrder($order)
61
  {
62
  if (false === isset($order) || true === empty($order)) {
63
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_Model_Invoice::prepateWithOrder(): Missing or empty $order parameter.');
64
  throw new \Exception('In Bitpay_Core_Model_Invoice::prepateWithOrder(): Missing or empty $order parameter.');
65
  }
66
+
67
  $this->addData(
68
  array(
69
+ 'quote_id' => $order['quote_id'],
70
+ 'increment_id' => $order['increment_id'],
71
  )
72
  );
73
 
app/code/community/Bitpay/Core/Model/Ipn.php CHANGED
@@ -12,6 +12,53 @@ class Bitpay_Core_Model_Ipn extends Mage_Core_Model_Abstract
12
  */
13
  protected function _construct()
14
  {
 
15
  $this->_init('bitpay/ipn');
16
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  }
12
  */
13
  protected function _construct()
14
  {
15
+ parent::_construct();
16
  $this->_init('bitpay/ipn');
17
  }
18
+
19
+ /**
20
+ * @param string $quoteId
21
+ * @param array $statuses
22
+ *
23
+ * @return boolean
24
+ */
25
+ function GetStatusReceived($quoteId, $statuses)
26
+ {
27
+ if (!$quoteId)
28
+ {
29
+ return false;
30
+ }
31
+
32
+ $quote = Mage::getModel('sales/quote')->load($quoteId, 'entity_id');
33
+
34
+ if (!$quote)
35
+ {
36
+ Mage::log('quote not found', Zend_Log::WARN, 'bitpay.log');
37
+ return false;
38
+ }
39
+
40
+ $collection = $this->getCollection();
41
+
42
+ foreach ($collection as $i)
43
+ {
44
+ if ($quoteId == json_decode($i->pos_data, true)['quoteId']) {
45
+ if (in_array($i->status, $statuses)) {
46
+ return true;
47
+ }
48
+ }
49
+ }
50
+
51
+ return false;
52
+ }
53
+
54
+ /**
55
+ * @param string $quoteId
56
+ *
57
+ * @return boolean
58
+ */
59
+ function GetQuotePaid($quoteId)
60
+ {
61
+ return $this->GetStatusReceived($quoteId, array('paid', 'confirmed', 'complete'));
62
+ }
63
+
64
  }
app/code/community/Bitpay/Core/Model/Method/Bitcoin.php CHANGED
@@ -35,8 +35,24 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
35
  * @param float $amount
36
  * @return Bitpay_Core_Model_PaymentMethod
37
  */
38
- public function authorize(Varien_Object $payment, $amount)
39
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  if (false === isset($payment) || false === isset($amount) || true === empty($payment) || true === empty($amount)) {
41
  $this->debugData('[ERROR] In Bitpay_Core_Model_Method_Bitcoin::authorize(): missing payment or amount parameters.');
42
  throw new \Exception('In Bitpay_Core_Model_Method_Bitcoin::authorize(): missing payment or amount parameters.');
@@ -61,7 +77,7 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
61
  \Mage::throwException('In Bitpay_Core_Model_Method_Bitcoin::authorize(): Could not authorize transaction.');
62
  }
63
 
64
- self::$_redirectUrl = $bitpayInvoice->getUrl();
65
 
66
  $this->debugData(
67
  array(
@@ -70,10 +86,13 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
70
  )
71
  );
72
 
 
 
 
73
  // Save BitPay Invoice in database for reference
74
  $mirrorInvoice = \Mage::getModel('bitpay/invoice')
75
  ->prepareWithBitpayInvoice($bitpayInvoice)
76
- ->prepateWithOrder($payment->getOrder())
77
  ->save();
78
 
79
  $this->debugData('[INFO] Leaving Bitpay_Core_Model_Method_Bitcoin::authorize(): invoice id ' . $bitpayInvoice->getId());
@@ -200,6 +219,7 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
200
  $this->debugData('[INFO] In Bitpay_Core_Model_Method_Bitcoin::getOrderPlaceRedirectUrl(): $_redirectUrl is ' . self::$_redirectUrl);
201
 
202
  return self::$_redirectUrl;
 
203
  }
204
 
205
  /**
@@ -247,12 +267,22 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
247
  $this->debugData('[INFO] In Bitpay_Core_Model_Method_Bitcoin::prepareInvoice(): entered function with good invoice, payment and amount parameters.');
248
  }
249
 
250
- $invoice->setOrderId($payment->getOrder()->getIncrementId());
251
- $invoice->setPosData(json_encode(array('id' => $payment->getOrder()->getIncrementId())));
252
 
253
- $invoice = $this->addCurrencyInfo($invoice, $payment->getOrder());
 
 
 
 
 
 
 
 
 
 
254
  $invoice = $this->addPriceInfo($invoice, $amount);
255
- $invoice = $this->addBuyerInfo($invoice, $payment->getOrder());
256
 
257
  return $invoice;
258
  }
@@ -280,8 +310,55 @@ class Bitpay_Core_Model_Method_Bitcoin extends Mage_Payment_Model_Method_Abstrac
280
  throw new \Exception('In Bitpay_Core_Model_Method_Bitcoin::addBuyerInfo(): could not construct new BitPay buyer object.');
281
  }
282
 
 
283
  $buyer->setFirstName($order->getCustomerFirstname());
284
  $buyer->setLastName($order->getCustomerLastname());
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  $invoice->setBuyer($buyer);
286
 
287
  return $invoice;
35
  * @param float $amount
36
  * @return Bitpay_Core_Model_PaymentMethod
37
  */
38
+ public function authorize(Varien_Object $payment, $amount, $iframe = false)
39
  {
40
+ // Check if coming from iframe or submit button
41
+ if ((!Mage::getStoreConfig('payment/bitpay/fullscreen') && $iframe === false)
42
+ || (Mage::getStoreConfig('payment/bitpay/fullscreen') && $iframe === true)) {
43
+ $quoteId = $payment->getOrder()->getQuoteId();
44
+ $ipn = Mage::getModel('bitpay/ipn');
45
+
46
+ if (!$ipn->GetQuotePaid($quoteId))
47
+ {
48
+ // This is the error that is displayed to the customer during checkout.
49
+ Mage::throwException("Order not paid for. Please pay first and then Place your Order.");
50
+ Mage::log('Order not paid for. Please pay first and then Place Your Order.', Zend_Log::CRIT, Mage::helper('bitpay')->getLogFile());
51
+ }
52
+
53
+ return $this;
54
+ }
55
+
56
  if (false === isset($payment) || false === isset($amount) || true === empty($payment) || true === empty($amount)) {
57
  $this->debugData('[ERROR] In Bitpay_Core_Model_Method_Bitcoin::authorize(): missing payment or amount parameters.');
58
  throw new \Exception('In Bitpay_Core_Model_Method_Bitcoin::authorize(): missing payment or amount parameters.');
77
  \Mage::throwException('In Bitpay_Core_Model_Method_Bitcoin::authorize(): Could not authorize transaction.');
78
  }
79
 
80
+ self::$_redirectUrl = (Mage::getStoreConfig('payment/bitpay/fullscreen')) ? $bitpayInvoice->getUrl(): $bitpayInvoice->getUrl().'&view=iframe';
81
 
82
  $this->debugData(
83
  array(
86
  )
87
  );
88
 
89
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
90
+ $order = \Mage::getModel('sales/order')->load($quote->getId(), 'quote_id');
91
+
92
  // Save BitPay Invoice in database for reference
93
  $mirrorInvoice = \Mage::getModel('bitpay/invoice')
94
  ->prepareWithBitpayInvoice($bitpayInvoice)
95
+ ->prepareWithOrder(array('increment_id' => $order->getIncrementId(), 'quote_id'=> $quote->getId()))
96
  ->save();
97
 
98
  $this->debugData('[INFO] Leaving Bitpay_Core_Model_Method_Bitcoin::authorize(): invoice id ' . $bitpayInvoice->getId());
219
  $this->debugData('[INFO] In Bitpay_Core_Model_Method_Bitcoin::getOrderPlaceRedirectUrl(): $_redirectUrl is ' . self::$_redirectUrl);
220
 
221
  return self::$_redirectUrl;
222
+
223
  }
224
 
225
  /**
267
  $this->debugData('[INFO] In Bitpay_Core_Model_Method_Bitcoin::prepareInvoice(): entered function with good invoice, payment and amount parameters.');
268
  }
269
 
270
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
271
+ $order = \Mage::getModel('sales/order')->load($quote->getId(), 'quote_id');
272
 
273
+ if (Mage::getStoreConfig('payment/bitpay/fullscreen')) {
274
+ $invoice->setOrderId($order->getIncrementId());
275
+ $invoice->setPosData(json_encode(array('orderId' => $order->getIncrementId())));
276
+ } else {
277
+ $invoice->setOrderId($quote->getId());
278
+ $invoice->setPosData(json_encode(array('quoteId' => $quote->getId())));
279
+ $convertQuote = Mage::getSingleton('sales/convert_quote');
280
+ $order = $convertQuote->toOrder($quote);
281
+ }
282
+
283
+ $invoice = $this->addCurrencyInfo($invoice, $order);
284
  $invoice = $this->addPriceInfo($invoice, $amount);
285
+ $invoice = $this->addBuyerInfo($invoice, $order);
286
 
287
  return $invoice;
288
  }
310
  throw new \Exception('In Bitpay_Core_Model_Method_Bitcoin::addBuyerInfo(): could not construct new BitPay buyer object.');
311
  }
312
 
313
+
314
  $buyer->setFirstName($order->getCustomerFirstname());
315
  $buyer->setLastName($order->getCustomerLastname());
316
+
317
+
318
+ if (Mage::getStoreConfig('payment/bitpay/fullscreen')) {
319
+ $address = $order->getBillingAddress();
320
+ } else {
321
+ $quote = Mage::getSingleton('checkout/session')->getQuote();
322
+ $address = $quote->getBillingAddress();
323
+ }
324
+
325
+ if (!empty($address->getStreet1())) {
326
+ $buyer->setAddress(
327
+ array(
328
+ $address->getStreet1(),
329
+ $address->getStreet2(),
330
+ $address->getStreet3(),
331
+ $address->getStreet4()
332
+ )
333
+ );
334
+ }
335
+
336
+ if (!empty($address->getRegionCode())) {
337
+ $buyer->setState($address->getRegionCode());
338
+ } else if (!empty($address->getRegion())) {
339
+ $buyer->setState($address->getRegion());
340
+ }
341
+
342
+ if (!empty($address->getCountry())) {
343
+ $buyer->setCountry($address->getCountry());
344
+ }
345
+
346
+ if (!empty($address->getCity())) {
347
+ $buyer->setCity($address->getCity());
348
+ }
349
+
350
+ if (!empty($address->getPostcode())) {
351
+ $buyer->setZip($address->getPostcode());
352
+ }
353
+
354
+ if (!empty($address->getEmail())) {
355
+ $buyer->setEmail($address->getEmail());
356
+ }
357
+
358
+ if (!empty($address->getTelephone())) {
359
+ $buyer->setPhone($address->getTelephone());
360
+ }
361
+
362
  $invoice->setBuyer($buyer);
363
 
364
  return $invoice;
app/code/community/Bitpay/Core/Model/Resource/Ipn/Collection.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The MIT License (MIT)
5
+ *
6
+ * Copyright (c) 2011-2014 BitPay, Inc.
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ * of this software and associated documentation files (the "Software"), to deal
10
+ * in the Software without restriction, including without limitation the rights
11
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the Software is
13
+ * furnished to do so, subject to the following conditions:
14
+ *
15
+ * The above copyright notice and this permission notice shall be included in
16
+ * all copies or substantial portions of the Software.
17
+ *
18
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24
+ * THE SOFTWARE.
25
+ */
26
+
27
+ class Bitpay_Core_Model_Resource_Ipn_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
28
+ {
29
+
30
+ /**
31
+ */
32
+ protected function _construct()
33
+ {
34
+ parent::_construct();
35
+ $this->_init('bitpay/ipn');
36
+ }
37
+
38
+ public function delete()
39
+ {
40
+ foreach ($this->getItems() as $item) {
41
+ $item->delete();
42
+ }
43
+ }
44
+ }
app/code/community/Bitpay/Core/controllers/IndexController.php CHANGED
@@ -14,21 +14,16 @@ class Bitpay_Core_IndexController extends Mage_Core_Controller_Front_Action
14
  */
15
  public function indexAction()
16
  {
17
- $paid = false;
18
- $params = $this->getRequest()->getParams();
19
-
20
- if (true === isset($params['paid'])) {
21
- \Mage::helper('bitpay')->registerAutoloader();
22
- \Mage::helper('bitpay')->debugData($params);
23
- } else {
24
- \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_IndexController::indexAction(), Could not get parameters from HTTP request.');
25
- }
26
 
27
  $this->loadLayout();
28
 
29
  $this->getResponse()->setHeader('Content-type', 'application/json');
30
 
31
- // ?
32
  $this->getResponse()->setBody(json_encode(array('paid' => $paid)));
33
  }
34
  }
14
  */
15
  public function indexAction()
16
  {
17
+ $params = $this->getRequest()->getParams();
18
+ $quoteId = $params['quote'];
19
+ \Mage::helper('bitpay')->registerAutoloader();
20
+ \Mage::helper('bitpay')->debugData($params);
21
+ $paid = Mage::getModel('bitpay/ipn')->GetQuotePaid($quoteId);
 
 
 
 
22
 
23
  $this->loadLayout();
24
 
25
  $this->getResponse()->setHeader('Content-type', 'application/json');
26
 
 
27
  $this->getResponse()->setBody(json_encode(array('paid' => $paid)));
28
  }
29
  }
app/code/community/Bitpay/Core/controllers/IpnController.php CHANGED
@@ -69,7 +69,13 @@ class Bitpay_Core_IpnController extends Mage_Core_Controller_Front_Action
69
  )
70
  )->save();
71
 
72
- $order = \Mage::getModel('sales/order')->loadByIncrementId($ipn->posData->id);
 
 
 
 
 
 
73
 
74
  if (false === isset($order) || true === empty($order->getId())) {
75
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_IpnController::indexAction(), Invalid Bitpay IPN received.');
69
  )
70
  )->save();
71
 
72
+
73
+ // Order isn't being created for iframe...
74
+ if (isset($ipn->posData->orderId)) {
75
+ $order = \Mage::getModel('sales/order')->loadByIncrementId($ipn->posData->orderId);
76
+ } else {
77
+ $order = \Mage::getModel('sales/order')->load($ipn->posData->quoteId, 'quote_id');
78
+ }
79
 
80
  if (false === isset($order) || true === empty($order->getId())) {
81
  \Mage::helper('bitpay')->debugData('[ERROR] In Bitpay_Core_IpnController::indexAction(), Invalid Bitpay IPN received.');
app/code/community/Bitpay/Core/etc/config.xml CHANGED
@@ -8,7 +8,7 @@
8
  <config>
9
  <modules>
10
  <Bitpay_Core>
11
- <version>2.1.7</version>
12
  </Bitpay_Core>
13
  </modules>
14
 
@@ -118,6 +118,7 @@
118
  <notification_url>bitpay/ipn</notification_url>
119
  <redirect_url>checkout/onepage/success</redirect_url>
120
  <speed>medium</speed>
 
121
  <invoice_new>new</invoice_new>
122
  <invoice_paid>processing</invoice_paid>
123
  <invoice_confirmed>processing</invoice_confirmed>
8
  <config>
9
  <modules>
10
  <Bitpay_Core>
11
+ <version>2.1.8</version>
12
  </Bitpay_Core>
13
  </modules>
14
 
118
  <notification_url>bitpay/ipn</notification_url>
119
  <redirect_url>checkout/onepage/success</redirect_url>
120
  <speed>medium</speed>
121
+ <fullscreen>0</fullscreen>
122
  <invoice_new>new</invoice_new>
123
  <invoice_paid>processing</invoice_paid>
124
  <invoice_confirmed>processing</invoice_confirmed>
app/code/community/Bitpay/Core/etc/system.xml CHANGED
@@ -98,6 +98,15 @@
98
  <show_in_website>1</show_in_website>
99
  <show_in_store>1</show_in_store>
100
  </redirect_url>
 
 
 
 
 
 
 
 
 
101
  <speed translate="label">
102
  <label>Transaction Speed</label>
103
  <frontend_type>select</frontend_type>
98
  <show_in_website>1</show_in_website>
99
  <show_in_store>1</show_in_store>
100
  </redirect_url>
101
+ <fullscreen translate="label">
102
+ <label>Redirect Checkout</label>
103
+ <frontend_type>select</frontend_type>
104
+ <source_model>adminhtml/system_config_source_yesno</source_model>
105
+ <sort_order>2</sort_order>
106
+ <show_in_default>1</show_in_default>
107
+ <show_in_website>1</show_in_website>
108
+ <show_in_store>0</show_in_store>
109
+ </fullscreen>
110
  <speed translate="label">
111
  <label>Transaction Speed</label>
112
  <frontend_type>select</frontend_type>
app/design/frontend/base/default/layout/bitpay.xml CHANGED
@@ -6,4 +6,9 @@
6
  */
7
  -->
8
  <layout>
 
 
 
 
 
9
  </layout>
6
  */
7
  -->
8
  <layout>
9
+ <checkout_onepage_review>
10
+ <reference name="checkout.onepage.review.info.items.after">
11
+ <block name="iframe" type="bitpay/iframe"/>
12
+ </reference>
13
+ </checkout_onepage_review>
14
  </layout>
app/design/frontend/base/default/template/bitpay/form/bitpay.phtml CHANGED
@@ -9,8 +9,9 @@
9
  */
10
 
11
  $_code = $this->getMethodCode();
12
-
13
- echo '<ul class="form-list" id="payment_form_' . $_code . '" style="display:none;">' .
14
- '<li>You will be transfered to <a href="https://bitpay.com" target="_blank">BitPay</a> to complete your purchase when using this payment method.</li>' .
15
- '</ul>';
 
16
  ?>
9
  */
10
 
11
  $_code = $this->getMethodCode();
12
+ if (Mage::getStoreConfig('payment/bitpay/fullscreen')) {
13
+ echo '<ul class="form-list" id="payment_form_' . $_code . '" style="display:none;">' .
14
+ '<li>You will be transfered to <a href="https://bitpay.com" target="_blank">BitPay</a> to complete your purchase when using this payment method.</li>' .
15
+ '</ul>';
16
+ }
17
  ?>
app/design/frontend/base/default/template/bitpay/iframe.phtml CHANGED
@@ -37,14 +37,13 @@ new PeriodicalExecuter(function() {
37
  asynchronous: true,
38
  evalScripts: true,
39
  onComplete: function(request, json) {
40
- data = request.responseText.evalJSON();
41
  if (data.paid) {
42
- buttons = $$("button.btn-checkout");
43
- buttons.each(function(btn) { btn.click(); })
44
  }
45
  }
46
  }
47
- )
48
  }, 5);
49
  //]]>
50
  </script>
37
  asynchronous: true,
38
  evalScripts: true,
39
  onComplete: function(request, json) {
40
+ var data = request.responseText.evalJSON();
41
  if (data.paid) {
42
+ review.save();
 
43
  }
44
  }
45
  }
46
+ );
47
  }, 5);
48
  //]]>
49
  </script>
package.xml CHANGED
@@ -1,2 +1,2 @@
1
  <?xml version="1.0"?>
2
- <package><name>Bitpay_Core</name><version>2.1.7</version><stability>stable</stability><license uri="https://github.com/bitpay/magento-plugin/blob/master/LICENSE">MIT</license><channel>community</channel><extends/><summary/><description/><notes/><authors><author><name>Integrations Team</name><user>BitPayInc</user><email>support@bitpay.com</email></author></authors><date>2015-06-24</date><time>9:00:58</time><compatible/><dependencies/><required php_min="5.4.0" php_max="6.0.0">php</required><extensions><name>openssl<min/><max/></name><name>mcrypt<min/><max/></name></extensions><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="Bitpay"><dir name="Core"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Extension.php" hash="ce9dd3c24d090a4f3ecd10f0488eb635"/><file name="Header.php" hash="a1a0f427bfacfda6375acd345696262a"/></dir></dir></dir></dir></dir><dir name="Form"><file name="Bitpay.php" hash="c071d4a4f56b2c5cebaad25d21ad0645"/></dir><file name="Iframe.php" hash="4e30275678e7f53ee474ec4beeaa23c9"/><file name="Info.php" hash="3c8ca079710e5b8e5d176a0c15383400"/></dir><dir name="controllers"><file name="IndexController.php" hash="cccb8e613c6ddbc102c3f194d10bc17b"/><file name="IpnController.php" hash="dd139570b9c2e8afc5e9c536f1617462"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a3d6e1c3fb81e271a85260aba4f9f797"/><file name="config.xml" hash="7d4e4b19914cb6ee1e0065066ce261e0"/><file name="system.xml" hash="292e163d31c53b3586f9f319f236ff47"/></dir><dir name="Helper"><file name="Data.php" hash="fa70c9276b88f86abaec6939b39f1afd"/></dir><file name="LICENSE" hash="c443b0598a4770735bb68838f7d563a3"/><dir name="Model"><dir name="Config"><file name="PairingCode.php" hash="2a5e0ad5ff0713505e0369650e3666b6"/></dir><file name="Invoice.php" hash="aabfe84828f8bb9b5f49ea400987c545"/><file name="Ipn.php" hash="a4fbded43a0afe2285f2d474ae5bfe26"/><dir name="Method"><file name="Bitcoin.php" hash="2255adc27d7f1b3d6af77dddc73f7933"/></dir><dir name="Mysql4"><dir name="Invoice"><file name="Collection.php" hash="22be8a79edc2e1cd5b61f1800c4cfe53"/></dir><file name="Invoice.php" hash="9bbf44a18a28e74528bc68eee4c43832"/><dir name="Ipn"><file name="Collection.php" hash="8c9b4087793d674b47d08d62812cf9f5"/></dir><file name="Ipn.php" hash="428c133bd044253229ac7876aa08acbf"/></dir><file name="Network.php" hash="a02a268fac47fe19fed93828f28285e2"/><file name="Observer.php" hash="c0e6a80ae7cd484ac0221c5621533100"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="285ede9c3abd026784b1b20fff3a1913"/></dir></dir><file name="Status.php" hash="deba733eeb8127395e9f23677627e8c4"/><file name="TransactionSpeed.php" hash="444a8dfce8bdde09efa8daeafcef6cf9"/></dir><file name="README.md" hash="5de7be17a73016fe9c2f27219641c28d"/><dir name="sql"><dir name="bitpay_setup"><file name="install-2.1.4.php" hash="fb4684735bcb535cd05cca29af169274"/><file name="upgrade-2.1.2-2.1.4.php" hash="e3a67cc75ffe28e032da1324ca5aecf2"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bitpay.xml" hash="c7e3886904c20f44b58409968c4209f0"/></dir><dir name="template"><dir name="bitpay"><dir name="info"><file name="default.phtml" hash="7e31f22f964ccbbbdcd71504c60e0393"/></dir><dir name="system"><dir name="config"><dir name="field"><file name="header.phtml" hash="971ec034699d110f7842a2c8befb4c55"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="bitpay.xml" hash="c7e3886904c20f44b58409968c4209f0"/></dir><dir name="template"><dir name="bitpay"><dir name="form"><file name="bitpay.phtml" hash="c12ef983014d5a73906502d2031108e2"/></dir><file name="iframe.phtml" hash="84892655b0e807e905251b8763850bae"/><dir name="info"><file name="default.phtml" hash="a3bd6e183052b9d9181aaf96accfa42e"/></dir><file name="json.phtml" hash="cc43e25d0445d5ba15b448ba946dabfd"/></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Bitpay_Core.xml" hash="122aa83102518a01122aaddcafa8ea7f"/></dir></dir><dir name="locale"><dir name="en_US"><file name="Bitpay_Core.csv" hash="1f6198bdeee3f77f87c36b4e09b45be2"/></dir></dir></dir><dir name="lib"><dir name="Bitpay"><file name="AccessToken.php" hash="53208c069417fe70c0553ee0053a2fd9"/><file name="AccessTokenInterface.php" hash="05a21e15cb40068c9dccd707b6add3f1"/><file name="Application.php" hash="67d05a61a3e0535c32949c73425921cb"/><file name="ApplicationInterface.php" hash="8721d3fe85f80dbf71ead7df93eb3f82"/><file name="Autoloader.php" hash="ae31a6ee3b445751264cff7f2eb15609"/><file name="Bill.php" hash="d41fc149de27e026546cda7db6c060cb"/><file name="BillInterface.php" hash="4d4f7c1e6b8ea9421a5e6651c7bd0654"/><file name="Bitpay.php" hash="50120aeed758c3acb3bebfc4b202f168"/><file name="Buyer.php" hash="aa43ea51f57b00568e3827d1e7ba2025"/><file name="BuyerInterface.php" hash="749f9fc623ff65e5bce296a5b4dfdbbc"/><dir name="Client"><dir name="Adapter"><file name="AdapterInterface.php" hash="b85307a1bd110c08141a7eb29b305973"/><file name="ca-bundle.crt" hash="9025ca14554240fc05c4e919ae3f8923"/><file name="CurlAdapter.php" hash="267beddc7821db66f81a113c4d806a20"/></dir><file name="ArgumentException.php" hash="3dc6e11dfc71116cad8e843255a09d2b"/><file name="BitpayException.php" hash="f8de7190213f0fab975e44f29ffa17f1"/><file name="Client.php" hash="e488b4ce173990284a479bbeebe8cc0d"/><file name="ClientInterface.php" hash="365b7a595eb15705bd4bd88273d10293"/><file name="ConnectionException.php" hash="f5cd06c10cca143d3e7a4f6c24e2727b"/><file name="Request.php" hash="fbdd615774ab606df4062b3874c03496"/><file name="RequestInterface.php" hash="1a77530dddf63f24a78ce488c401f499"/><file name="Response.php" hash="195796fb21d235e1348caca2a990910d"/><file name="ResponseInterface.php" hash="1d53f3b84efc12e370c72ac7be0e8211"/></dir><dir name="Config"><file name="Configuration.php" hash="7cb0441f0dce52bab9f30f0cc3dee2fa"/></dir><dir name="Crypto"><file name="CryptoInterface.php" hash="13ac34aa5f26fe5640c037511c7789f4"/><file name="HashExtension.php" hash="62f5d49ddafbc7e7ca19aaaea76830ba"/><file name="McryptExtension.php" hash="160e7e94e6ec50b255742bb5366dea29"/><file name="OpenSSLExtension.php" hash="e8393638871fc2605dbd6ec58e7a7564"/></dir><file name="Currency.php" hash="032871dc2c1fa880f9583f50148563fb"/><file name="CurrencyInterface.php" hash="561ff6c529ab29813e751999e70fb166"/><dir name="DependencyInjection"><file name="BitpayExtension.php" hash="fc361f93a85be0b066dd1a60bb5d4a15"/><dir name="Loader"><file name="ArrayLoader.php" hash="5176febbc2ff9bf1646f623dccd54cd7"/></dir><file name="services.xml" hash="cda4e79bf0e6f6821e5b4c2e16c240cb"/></dir><file name="Invoice.php" hash="f93959d593e54c30f01ccae85f521168"/><file name="InvoiceInterface.php" hash="1e280dbf85d96ad462b47c087fbe6d9f"/><file name="Item.php" hash="a4fc84d7309cf44de812612ca2fa6c90"/><file name="ItemInterface.php" hash="94e9fc64fafde84425cb30f73b96dc48"/><file name="Key.php" hash="0c6bdce34e7b3a650914393c9da5c99d"/><file name="KeyInterface.php" hash="30253c1e42ee7b452bbb0a7451c88685"/><file name="KeyManager.php" hash="ad48cd3f5ddba0c47606659a32e85e7b"/><dir name="Math"><file name="BcEngine.php" hash="281c473a2cdbb73457c3f2c5ade514ae"/><file name="EngineInterface.php" hash="a0de5260325608e0911d4128fe3e52c2"/><file name="GmpEngine.php" hash="3136a8196599b00f097c15c0aa3a4c49"/><file name="Math.php" hash="98fb61ecc9379c625c9b970df7e0ac54"/></dir><dir name="Network"><file name="Customnet.php" hash="d2af606a4a63babf0a08d0e8abac72f5"/><file name="Livenet.php" hash="7107f34a87978e78588482e5b1f868d4"/><file name="NetworkAware.php" hash="d92aad1b38105078cd5055b295014a11"/><file name="NetworkAwareInterface.php" hash="1d1f87d25469a8ce2d0f1f2eaaf03ef1"/><file name="NetworkInterface.php" hash="998b026f803b4d99daec03b876d2d132"/><file name="Testnet.php" hash="98b315759b32549c558e143e50a365ad"/></dir><file name="Payout.php" hash="be6c641b0bfa64f809ea85fcab6da954"/><file name="PayoutInstruction.php" hash="ef96db181023671aecac43950b709001"/><file name="PayoutInstructionInterface.php" hash="5d6c51b0b6a980d84bfad21ecaecf92c"/><file name="PayoutInterface.php" hash="b9e264009a1738b8204572dafca97745"/><file name="PayoutTransaction.php" hash="80ed69aae8134c32caddbfd8e17a85e3"/><file name="PayoutTransactionInterface.php" hash="43a42bf47814d44b431328b5e70731a4"/><file name="Point.php" hash="605d50d4b9890f2e1a3120fb5b0c50d2"/><file name="PointInterface.php" hash="2a8fce4bbc8e84e221563c27ce7b57ce"/><file name="PrivateKey.php" hash="d3e6ec3b5c91eb9627509365b26fb744"/><file name="PublicKey.php" hash="dca40e9a5e8679f21d143d205cd2c389"/><file name="SinKey.php" hash="f126c1344247e87aa5c108d57f0ca354"/><dir name="Storage"><file name="EncryptedFilesystemStorage.php" hash="e42a3c81bd19393ae78c10fed77dfb75"/><file name="FilesystemStorage.php" hash="673528691f5b999fc5481ff112140dfe"/><file name="MagentoStorage.php" hash="d3b1610facee9d09858f288bb30956a2"/><file name="MockStorage.php" hash="2570dbf74083bb8a7117595a6c4aefb4"/><file name="StorageInterface.php" hash="bb136e52d599fdb59739f32d027a1602"/></dir><file name="Token.php" hash="1fa586a9e05b86f5f1f8ef288c32f2c9"/><file name="TokenInterface.php" hash="b4d63534c0f88f13dc251ea981d8113f"/><file name="User.php" hash="061f9f4dcff8d3090cb358ae1b87e259"/><file name="UserInterface.php" hash="7714dd84ab21eac77736a80d9e19f7c0"/><dir name="Util"><file name="Base58.php" hash="544526f4f89848bfb61f7bfcae348af6"/><file name="CurveParameterInterface.php" hash="72ca86056b4abfebbcfec87037478db7"/><file name="Error.php" hash="d4e4ba021b73f94467793043db14cc93"/><file name="Fingerprint.php" hash="0dde9668583a04391a2faf99d4b72914"/><file name="Secp256k1.php" hash="84d9a363e0f185200664c712832b8759"/><file name="SecureRandom.php" hash="9e699a6e383cb439a604f6e6e1837833"/><file name="Util.php" hash="5b9a5032ee1385587d12d5df958e5d05"/></dir></dir></dir></target></contents></package>
1
  <?xml version="1.0"?>
2
+ <package><name>Bitpay_Core</name><version>2.1.8</version><stability>stable</stability><license uri="https://github.com/bitpay/magento-plugin/blob/master/LICENSE">MIT</license><channel>community</channel><extends/><summary/><description/><notes/><authors><author><name>Integrations Team</name><user>BitPayInc</user><email>support@bitpay.com</email></author></authors><date>2015-07-08</date><time>14:47:10</time><compatible/><dependencies/><required php_min="5.4.0" php_max="6.0.0">php</required><extensions><name>openssl<min/><max/></name><name>mcrypt<min/><max/></name></extensions><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="Bitpay"><dir name="Core"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Extension.php" hash="ce9dd3c24d090a4f3ecd10f0488eb635"/><file name="Header.php" hash="a1a0f427bfacfda6375acd345696262a"/></dir></dir></dir></dir></dir><dir name="Form"><file name="Bitpay.php" hash="c071d4a4f56b2c5cebaad25d21ad0645"/></dir><file name="Iframe.php" hash="087c226666e2c6fabf3e42480ffbe289"/><file name="Info.php" hash="3c8ca079710e5b8e5d176a0c15383400"/></dir><dir name="controllers"><file name="IndexController.php" hash="b2f62d8686b98beac7299e11832f2287"/><file name="IpnController.php" hash="1ee1c2883168f0d11521d1dcc1072c61"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a3d6e1c3fb81e271a85260aba4f9f797"/><file name="config.xml" hash="68b85eb9b4181444156cf10ab8b1da93"/><file name="system.xml" hash="d6107d5818f8cd245d6da8f6e6973faf"/></dir><dir name="Helper"><file name="Data.php" hash="fa70c9276b88f86abaec6939b39f1afd"/></dir><file name="LICENSE" hash="c443b0598a4770735bb68838f7d563a3"/><dir name="Model"><dir name="Config"><file name="PairingCode.php" hash="2a5e0ad5ff0713505e0369650e3666b6"/></dir><file name="Invoice.php" hash="35b78f521dff67381d54af0800165c81"/><file name="Ipn.php" hash="647172b744dfbd0ec596a9c67ab6a8aa"/><dir name="Method"><file name="Bitcoin.php" hash="41328d1aa94e45ae0869ca41fe9adf79"/></dir><dir name="Mysql4"><dir name="Invoice"><file name="Collection.php" hash="22be8a79edc2e1cd5b61f1800c4cfe53"/></dir><file name="Invoice.php" hash="9bbf44a18a28e74528bc68eee4c43832"/><dir name="Ipn"><file name="Collection.php" hash="8c9b4087793d674b47d08d62812cf9f5"/></dir><file name="Ipn.php" hash="428c133bd044253229ac7876aa08acbf"/></dir><file name="Network.php" hash="a02a268fac47fe19fed93828f28285e2"/><file name="Observer.php" hash="c0e6a80ae7cd484ac0221c5621533100"/><dir name="Resource"><dir name="Ipn"><file name="Collection.php" hash="31d5b23b9060609fbd9cfcd3482b7567"/></dir><dir name="Mysql4"><file name="Setup.php" hash="285ede9c3abd026784b1b20fff3a1913"/></dir></dir><file name="Status.php" hash="deba733eeb8127395e9f23677627e8c4"/><file name="TransactionSpeed.php" hash="444a8dfce8bdde09efa8daeafcef6cf9"/></dir><file name="README.md" hash="5de7be17a73016fe9c2f27219641c28d"/><dir name="sql"><dir name="bitpay_setup"><file name="install-2.1.4.php" hash="fb4684735bcb535cd05cca29af169274"/><file name="upgrade-2.1.2-2.1.4.php" hash="e3a67cc75ffe28e032da1324ca5aecf2"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="bitpay.xml" hash="c7e3886904c20f44b58409968c4209f0"/></dir><dir name="template"><dir name="bitpay"><dir name="info"><file name="default.phtml" hash="7e31f22f964ccbbbdcd71504c60e0393"/></dir><dir name="system"><dir name="config"><dir name="field"><file name="header.phtml" hash="971ec034699d110f7842a2c8befb4c55"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="bitpay.xml" hash="d5a28c0d1c057f5e8fc5a25fb69add6c"/></dir><dir name="template"><dir name="bitpay"><dir name="form"><file name="bitpay.phtml" hash="e59191df21481af2db3254da0a518278"/></dir><file name="iframe.phtml" hash="d6210cbd0154c00ffa3de9d1196b49f1"/><dir name="info"><file name="default.phtml" hash="a3bd6e183052b9d9181aaf96accfa42e"/></dir><file name="json.phtml" hash="cc43e25d0445d5ba15b448ba946dabfd"/></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Bitpay_Core.xml" hash="122aa83102518a01122aaddcafa8ea7f"/></dir></dir><dir name="locale"><dir name="en_US"><file name="Bitpay_Core.csv" hash="1f6198bdeee3f77f87c36b4e09b45be2"/></dir></dir></dir><dir name="lib"><dir name="Bitpay"><file name="AccessToken.php" hash="53208c069417fe70c0553ee0053a2fd9"/><file name="AccessTokenInterface.php" hash="05a21e15cb40068c9dccd707b6add3f1"/><file name="Application.php" hash="67d05a61a3e0535c32949c73425921cb"/><file name="ApplicationInterface.php" hash="8721d3fe85f80dbf71ead7df93eb3f82"/><file name="Autoloader.php" hash="ae31a6ee3b445751264cff7f2eb15609"/><file name="Bill.php" hash="d41fc149de27e026546cda7db6c060cb"/><file name="BillInterface.php" hash="4d4f7c1e6b8ea9421a5e6651c7bd0654"/><file name="Bitpay.php" hash="50120aeed758c3acb3bebfc4b202f168"/><file name="Buyer.php" hash="aa43ea51f57b00568e3827d1e7ba2025"/><file name="BuyerInterface.php" hash="749f9fc623ff65e5bce296a5b4dfdbbc"/><dir name="Client"><dir name="Adapter"><file name="AdapterInterface.php" hash="b85307a1bd110c08141a7eb29b305973"/><file name="ca-bundle.crt" hash="9025ca14554240fc05c4e919ae3f8923"/><file name="CurlAdapter.php" hash="267beddc7821db66f81a113c4d806a20"/></dir><file name="ArgumentException.php" hash="3dc6e11dfc71116cad8e843255a09d2b"/><file name="BitpayException.php" hash="f8de7190213f0fab975e44f29ffa17f1"/><file name="Client.php" hash="e488b4ce173990284a479bbeebe8cc0d"/><file name="ClientInterface.php" hash="365b7a595eb15705bd4bd88273d10293"/><file name="ConnectionException.php" hash="f5cd06c10cca143d3e7a4f6c24e2727b"/><file name="Request.php" hash="fbdd615774ab606df4062b3874c03496"/><file name="RequestInterface.php" hash="1a77530dddf63f24a78ce488c401f499"/><file name="Response.php" hash="195796fb21d235e1348caca2a990910d"/><file name="ResponseInterface.php" hash="1d53f3b84efc12e370c72ac7be0e8211"/></dir><dir name="Config"><file name="Configuration.php" hash="7cb0441f0dce52bab9f30f0cc3dee2fa"/></dir><dir name="Crypto"><file name="CryptoInterface.php" hash="13ac34aa5f26fe5640c037511c7789f4"/><file name="HashExtension.php" hash="62f5d49ddafbc7e7ca19aaaea76830ba"/><file name="McryptExtension.php" hash="160e7e94e6ec50b255742bb5366dea29"/><file name="OpenSSLExtension.php" hash="e8393638871fc2605dbd6ec58e7a7564"/></dir><file name="Currency.php" hash="032871dc2c1fa880f9583f50148563fb"/><file name="CurrencyInterface.php" hash="561ff6c529ab29813e751999e70fb166"/><dir name="DependencyInjection"><file name="BitpayExtension.php" hash="fc361f93a85be0b066dd1a60bb5d4a15"/><dir name="Loader"><file name="ArrayLoader.php" hash="5176febbc2ff9bf1646f623dccd54cd7"/></dir><file name="services.xml" hash="cda4e79bf0e6f6821e5b4c2e16c240cb"/></dir><file name="Invoice.php" hash="f93959d593e54c30f01ccae85f521168"/><file name="InvoiceInterface.php" hash="1e280dbf85d96ad462b47c087fbe6d9f"/><file name="Item.php" hash="a4fc84d7309cf44de812612ca2fa6c90"/><file name="ItemInterface.php" hash="94e9fc64fafde84425cb30f73b96dc48"/><file name="Key.php" hash="0c6bdce34e7b3a650914393c9da5c99d"/><file name="KeyInterface.php" hash="30253c1e42ee7b452bbb0a7451c88685"/><file name="KeyManager.php" hash="ad48cd3f5ddba0c47606659a32e85e7b"/><dir name="Math"><file name="BcEngine.php" hash="281c473a2cdbb73457c3f2c5ade514ae"/><file name="EngineInterface.php" hash="a0de5260325608e0911d4128fe3e52c2"/><file name="GmpEngine.php" hash="3136a8196599b00f097c15c0aa3a4c49"/><file name="Math.php" hash="98fb61ecc9379c625c9b970df7e0ac54"/></dir><dir name="Network"><file name="Customnet.php" hash="d2af606a4a63babf0a08d0e8abac72f5"/><file name="Livenet.php" hash="7107f34a87978e78588482e5b1f868d4"/><file name="NetworkAware.php" hash="d92aad1b38105078cd5055b295014a11"/><file name="NetworkAwareInterface.php" hash="1d1f87d25469a8ce2d0f1f2eaaf03ef1"/><file name="NetworkInterface.php" hash="998b026f803b4d99daec03b876d2d132"/><file name="Testnet.php" hash="98b315759b32549c558e143e50a365ad"/></dir><file name="Payout.php" hash="be6c641b0bfa64f809ea85fcab6da954"/><file name="PayoutInstruction.php" hash="ef96db181023671aecac43950b709001"/><file name="PayoutInstructionInterface.php" hash="5d6c51b0b6a980d84bfad21ecaecf92c"/><file name="PayoutInterface.php" hash="b9e264009a1738b8204572dafca97745"/><file name="PayoutTransaction.php" hash="80ed69aae8134c32caddbfd8e17a85e3"/><file name="PayoutTransactionInterface.php" hash="43a42bf47814d44b431328b5e70731a4"/><file name="Point.php" hash="605d50d4b9890f2e1a3120fb5b0c50d2"/><file name="PointInterface.php" hash="2a8fce4bbc8e84e221563c27ce7b57ce"/><file name="PrivateKey.php" hash="d3e6ec3b5c91eb9627509365b26fb744"/><file name="PublicKey.php" hash="dca40e9a5e8679f21d143d205cd2c389"/><file name="SinKey.php" hash="f126c1344247e87aa5c108d57f0ca354"/><dir name="Storage"><file name="EncryptedFilesystemStorage.php" hash="e42a3c81bd19393ae78c10fed77dfb75"/><file name="FilesystemStorage.php" hash="673528691f5b999fc5481ff112140dfe"/><file name="MagentoStorage.php" hash="d3b1610facee9d09858f288bb30956a2"/><file name="MockStorage.php" hash="2570dbf74083bb8a7117595a6c4aefb4"/><file name="StorageInterface.php" hash="bb136e52d599fdb59739f32d027a1602"/></dir><file name="Token.php" hash="1fa586a9e05b86f5f1f8ef288c32f2c9"/><file name="TokenInterface.php" hash="b4d63534c0f88f13dc251ea981d8113f"/><file name="User.php" hash="061f9f4dcff8d3090cb358ae1b87e259"/><file name="UserInterface.php" hash="7714dd84ab21eac77736a80d9e19f7c0"/><dir name="Util"><file name="Base58.php" hash="544526f4f89848bfb61f7bfcae348af6"/><file name="CurveParameterInterface.php" hash="72ca86056b4abfebbcfec87037478db7"/><file name="Error.php" hash="d4e4ba021b73f94467793043db14cc93"/><file name="Fingerprint.php" hash="0dde9668583a04391a2faf99d4b72914"/><file name="Secp256k1.php" hash="84d9a363e0f185200664c712832b8759"/><file name="SecureRandom.php" hash="9e699a6e383cb439a604f6e6e1837833"/><file name="Util.php" hash="5b9a5032ee1385587d12d5df958e5d05"/></dir></dir></dir></target></contents></package>