Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2018, 17:45   #1
ArPanda
Новичок
Джуниор
 
Регистрация: 23.05.2018
Сообщений: 1
По умолчанию Редирект на страницу оплаты

Есть сайт wonderwander-shop.com на cms cs cart. На сайте 2 языка: русский и английский. При оплате заказа картой редиректит на русскую страницу оплаты тинькофф с обеих версий. Если в tinkoff.php присвоить language значение en, то с обеих версий будет редиректить на английскую. Как я понял, нужно зареквестить язык и добавить условие, но php знаком поверхностно, поэтому не знаю, как это прописать. Может кто помочь? Пишите, что нужно, скину.
PHP код:
<?php

use Tygh\Registry;

if (!
defined('BOOTSTRAP')) { die('Access denied'); }
// define('__PATH','/var/www/vhosts/wonderwander-shop.com/httpdocs/app/payments/tinkoff/');
define('__PATH',dirname(__FILE__) . '/tinkoff/');

file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' ' ."\r\n",FILE_APPEND);

/*


$order_id = '';
if(isset($_REQUEST['OrderId'])){
    $order_id = (int) $_REQUEST['OrderId'];
}
if(isset($_REQUEST['Success'])){
    $success = $_REQUEST['Success'];
}

file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' success ' .$success ."\r\n",FILE_APPEND);


if($success){
 
    file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' redirect ' .$order_id ."\r\n",FILE_APPEND);
    // $order_info = fn_get_order_info($order_id);

    print_r($auth);

        // echo " ";
        // fn_order_placement_routines('route', $order_id);

    // print_r(Tygh::$app['session']['cart']);
    // fn_clear_cart($_SESSION['cart']);
    // fn_clear_cart(Tygh::$app['session']['cart']);
    // header('Location:' . 'https://wonderwander-shop.com/index.php?dispatch=checkout.complete&order_id='.$order_id);
    die('...');
}
*/








require_once dirname(__FILE__) . '/tinkoff/TinkoffMerchantAPI.php';
require_once 
dirname(__FILE__) . '/tinkoff/Debug.php';

// file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' libs ' ."\r\n",FILE_APPEND);

if (!defined('BOOTSTRAP')) { die('Access denied'); }


// file_put_contents(__PATH.'log.txt', date('Y.m.d H:i:s') . ' BOOTSTRAP ' ."\r\n",FILE_APPEND);

if (defined('PAYMENT_NOTIFICATION')) {
 
 
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' PAYMENT_NOTIFICATION ' ."\r\n",FILE_APPEND);


    if(isset(
$_REQUEST['OrderId'])){
        
$order_id = (int) $_REQUEST['OrderId'];
    }
    else{
        
$order_id $_COOKIE['tinkoff_order_id'];
    }

    
$order_info fn_get_order_info($order_id);
    
$processor_data $order_info['payment_method'];

    if (
$mode == 'notification') {
        
$_POST['Password'] = $processor_data['processor_params']['secret_key'];
        
ksort($_POST);
        
$sorted $_POST;
        
$original_token $sorted['Token'];
        unset(
$sorted['Token']);
        
$values implode(''array_values($sorted));
        
$token hash('sha256'$values);

//    //log
   
$log $_POST;
   
$log['token'] = $token;
   
$log['original_token'] = $original_token;
   
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' ' json_encode($log)."\r\n",FILE_APPEND);
 
        if(
$token == $original_token){
            if(
$_POST['Status'] == 'AUTHORIZED' && $order_info['status'] == 'P'){
                
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' OK1'."\r\n",FILE_APPEND);
                die(
'OK');
            }
            switch (
$_POST['Status']) {
                case 
'AUTHORIZED'$order_status 'O'; break; /*Деньги на карте захолдированы. Корзина очищается.*/
                
case 'CONFIRMED'$order_status 'P'; break; /*Платеж подтвержден.*/
                
case 'CANCELED'$order_status 'I'; break; /*Платеж отменен*/
                
case 'REJECTED'$order_status 'F'; break; /*Платеж отклонен.*/
                
case 'REVERSED'$order_status 'D'; break; /*Платеж отменен*/
                
case 'REFUNDED'$order_status 'I'; break; /*Произведен возврат денег клиенту*/
            
}
            if(!isset(
$order_status)){
                
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' NOTOK1'."\r\n",FILE_APPEND);
                die(
'NOTOK');
            }
            
fn_change_order_status($order_id$order_status);
            if(
$order_status == 'P'){
                
$pp_response = array();
                
$pp_response['order_status'] = $order_status;
                
$pp_response['reason_text'] = 'Success payment';
                
// $pp_response['transaction_id'] = isset($_POST['paymentId']) ? $_POST['paymentId'] : '';
                
$pp_response['transaction_id'] = isset($_POST['PaymentId']) ? $_POST['PaymentId'] : '';
                
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' fn_finish_payment '$pp_response['transaction_id']."\r\n",FILE_APPEND);
                
fn_finish_payment($order_id$pp_response);
            }
            
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' OK2'."\r\n",FILE_APPEND);
            die(
'OK');
        }
        else{
            
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' NOTOK2'."\r\n",FILE_APPEND);
            die(
'NOTOK');
        }
    }
    elseif (
$mode == 'success' || $mode == 'failed') {
        
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' fn_order_placement_routines1'."\r\n",FILE_APPEND);
        
fn_order_placement_routines('route'$order_idfalse);
    }

} else {
 
    
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' NO PAYMENT_NOTIFICATION' ."\r\n",FILE_APPEND);

    
$order_info fn_get_order_info($order_id);
    
$arrFields = array(
        
'OrderId'  => $order_info['order_id'],
        
'Amount'   => $order_info['total'] * 100,
        
'DATA'     => 'Email='.$order_info['email'],
        
'Language' => 'en'
    
);

    
$Tinkoff = new TinkoffMerchantAPI$processor_data['processor_params']['merchant_id'], $processor_data['processor_params']['secret_key'], $processor_data['processor_params']['gateway'] );
    
$request $Tinkoff->buildQuery('Init'$arrFields);
    
$request json_decode($request);
    
setcookie('tinkoff_order_id'$order_id0'/');
    
setcookie('tinkoff_redirect', (isset($_SERVER['HTTPS']) ? 'https://' 'http://').$_SERVER['HTTP_HOST'].'/index.php?dispatch=payment_notification.success&payment=tinkoff'0'/');
    if(isset(
$request->PaymentURL)){
        
fn_change_order_status($order_id'O');
        
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' redirect '.$order_id ' '  $request->PaymentURL ."\r\n",FILE_APPEND);
        
header('Location: '$request->PaymentURL);
    }
    else{
        
fn_change_order_status($order_id'F');
        
file_put_contents(__PATH.'log.txt'date('Y.m.d H:i:s') . ' fn_order_placement_routines2'."\r\n",FILE_APPEND);
        
fn_order_placement_routines('route'$order_idfalse);
    }
}

exit;
ArPanda вне форума Ответить с цитированием
Старый 31.05.2018, 20:55   #2
Igor[Игорь]
Пользователь
 
Аватар для Igor[Игорь]
 
Регистрация: 25.11.2011
Сообщений: 52
По умолчанию

Передавай параметр с выбраным языком и подменяй его в tinkoff.php
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP
Примеры http://igorvn.ucoz.ru/

Последний раз редактировалось Igor[Игорь]; 31.05.2018 в 21:08.
Igor[Игорь] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать перенаправление, 301 редирект с сайта на страницу вконтакте и другие соц сети, через DNS СNAME .htaccess Alar Администрирование dedicated серверов, VPS/VDS, shared хостингов, IaaS, PaaS. 0 03.05.2018 20:43
Система оплаты с API для оплаты банковскими платежными картами dem66 Общие вопросы Web 2 16.09.2017 10:58
Нужно создать редирект сайта случайным образом, Случайный редирект на 1 из 3 сайтов Sanchez007 JavaScript, Ajax 1 24.11.2014 08:26
Терминалы оплаты Web-Gangsta Свободное общение 13 21.06.2010 13:39