$handle = fopen('php://input', 'r'); $jsonInput = fgets($handle); if (function_exists('json_decode')) { $decoded = json_decode($jsonInput, true); } else { $decoded = rmJSONdecode($jsonInput); } fclose($handle); if (function_exists('json_decode')) { $posData = json_decode($decoded['posData']); } else { $posData = rmJSONdecode($decoded['posData']); } $order = (int) Order::getOrderByCartId($posData->cart_id); if ($posData->hash == crypt($posData->cart_id, Configuration::get('bitpay_APIKEY'))) { $bitpay = new bitpay(); if (in_array($decoded['status'], array('paid', 'confirmed', 'complete'))) { if ($order == 0) { $key = $posData->key; $bitpay->validateOrder($posData->cart_id, Configuration::get('PS_OS_PAYMENT'), $decoded['price'], $bitpay->displayName, null, array(), null, false, $key); } else { if (empty(Context::getContext()->link)) { Context::getContext()->link = new Link(); } // workaround a prestashop bug so email is sent $key = $posData->key; $order = new Order((int) Order::getOrderByCartId($posData->cart_id)); $new_history = new OrderHistory(); $new_history->id_order = (int) $order->id; $order_status = (int) Configuration::get('PS_OS_PAYMENT'); $new_history->changeIdOrderState((int) $order_status, $order, true);
<?php /** * @deprecated 1.5.0 This file is deprecated, use moduleFrontController instead */ include dirname(__FILE__) . '/../../config/config.inc.php'; include dirname(__FILE__) . '/../../header.php'; include dirname(__FILE__) . '/bitpay.php'; $context = Context::getContext(); $cart = $context->cart; $bitpay = new bitpay(); if ($cart->id_customer == 0 or $cart->id_address_delivery == 0 or $cart->id_address_invoice == 0 or !$bitpay->active) { Tools::redirect('index.php?controller=order&step=1'); } // Check that this payment option is still available in case the customer // changed his address just before the end of the checkout process $authorized = false; foreach (Module::getPaymentModules() as $module) { if ($module['name'] == 'bitpay') { $authorized = true; break; } } if (!$authorized) { die($bitpay->l('This payment method is not available.', 'validation')); } echo $bitpay->execPayment($cart); include_once dirname(__FILE__) . '/../../footer.php';