Beispiel #1
0
$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';