Exemple #1
0
        if ($order_status == STATUS_INCOMPLETED_ORDER) {
            $pp_response = array();
            $pp_response['order_status'] = 'F';
            $pp_response['reason_text'] = __('merchant_response_was_not_received');
            $pp_response['transaction_id'] = '';
            fn_finish_payment($order_id, $pp_response);
        }
        fn_order_placement_routines('route', $order_id, false);
    } elseif ($mode == 'cancel') {
        $pp_response['order_status'] = 'N';
        $pp_response['reason_text'] = __('text_transaction_cancelled');
        fn_finish_payment($order_id, $pp_response, false);
        fn_order_placement_routines('route', $order_id);
    }
} else {
    $total = fn_rus_pay_format_price($order_info['total'], $processor_data['processor_params']['currency']);
    if ($processor_data['processor_params']['commission'] == 'admin') {
        $url = 'https://auth.robokassa.ru/Merchant/WebService/Service.asmx/CalcOutSumm';
        $data = array('MerchantLogin' => $processor_data['processor_params']['merchantid'], 'IncCurrLabel' => $processor_data['processor_params']['payment_method'], 'IncSum' => $total);
        $total_xml = Http::post($url, $data);
        $xml = @simplexml_load_string($total_xml);
        if (isset($xml->Result->Code) && $xml->Result->Code == 0) {
            $total = $xml->OutSum;
        }
    }
    $crc = md5($processor_data['processor_params']['merchantid'] . ':' . $total . ':' . $order_id . ':' . $processor_data['processor_params']['password1']);
    $url = $processor_data['processor_params']['mode'] == 'live' ? 'https://merchant.roboxchange.com/Index.aspx' : 'http://test.robokassa.ru/Index.aspx';
    $post_data = array('MrchLogin' => $processor_data['processor_params']['merchantid'], 'OutSum' => $total, 'InvId' => $order_id, 'Desc' => $processor_data['processor_params']['details'], 'SignatureValue' => $crc, 'Culture' => CART_LANGUAGE, 'IncCurrLabel' => $processor_data['processor_params']['payment_method']);
    fn_create_payment_form($url, $post_data, 'Robokassa server');
}
exit;
Exemple #2
0
            $pp_response['order_status'] = 'P';
            $pp_response['reason_text'] = __('approved');
        } else {
            $pp_response['order_status'] = 'F';
            $pp_response['reason_text'] = __('control_summ_wrong');
        }
        fn_finish_payment($order_id, $pp_response);
        die('OK' . $order_id);
    } elseif ($mode == 'return') {
        $order_info = fn_get_order_info($order_id);
        if ($order_info['status'] == 'O') {
            $pp_response = array();
            $pp_response['order_status'] = 'F';
            $pp_response['reason_text'] = __('merchant_response_was_not_received');
            $pp_response['transaction_id'] = '';
            fn_finish_payment($order_id, $pp_response);
        }
        fn_order_placement_routines('route', $order_id, false);
    } elseif ($mode == 'cancel') {
        $pp_response['order_status'] = 'N';
        $pp_response['reason_text'] = __('text_transaction_cancelled');
        fn_finish_payment($order_id, $pp_response, false);
        fn_order_placement_routines('route', $order_id);
    }
} else {
    $total = fn_rus_pay_format_price($order_info['total'], 'RUB');
    $url = 'https://partner.rficb.ru/a1lite/input/';
    $post_data = array('key' => $processor_data['processor_params']['rficbkey'], 'cost' => $total, 'order_id' => $order_id, 'name' => 'заказ ' . $order_id);
    fn_create_payment_form($url, $post_data, 'Rficb server');
}
exit;