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 +26 -45
- app/code/community/Bitpay/Core/Model/Invoice.php +4 -4
- app/code/community/Bitpay/Core/Model/Ipn.php +47 -0
- app/code/community/Bitpay/Core/Model/Method/Bitcoin.php +84 -7
- app/code/community/Bitpay/Core/Model/Resource/Ipn/Collection.php +44 -0
- app/code/community/Bitpay/Core/controllers/IndexController.php +5 -10
- app/code/community/Bitpay/Core/controllers/IpnController.php +7 -1
- app/code/community/Bitpay/Core/etc/config.xml +2 -1
- app/code/community/Bitpay/Core/etc/system.xml +9 -0
- app/design/frontend/base/default/layout/bitpay.xml +5 -0
- app/design/frontend/base/default/template/bitpay/form/bitpay.phtml +5 -4
- app/design/frontend/base/default/template/bitpay/iframe.phtml +3 -4
- package.xml +1 -1
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 |
-
$
|
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 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
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 |
-
|
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
|
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
|
70 |
-
'increment_id' => $order
|
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 |
-
->
|
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 |
-
$
|
251 |
-
$
|
252 |
|
253 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
$invoice = $this->addPriceInfo($invoice, $amount);
|
255 |
-
$invoice = $this->addBuyerInfo($invoice, $
|
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 |
-
$
|
18 |
-
$
|
19 |
-
|
20 |
-
|
21 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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 |
-
|
15 |
-
|
|
|
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 |
-
|
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>
|